@libp2p/prometheus-metrics 2.0.11 → 2.0.12-97ab31c0c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +17 -17
- package/dist/src/index.js.map +1 -1
- package/package.json +7 -7
- package/src/index.ts +23 -19
- package/dist/typedoc-urls.json +0 -8
package/dist/src/index.d.ts
CHANGED
|
@@ -155,6 +155,7 @@
|
|
|
155
155
|
* ```
|
|
156
156
|
*/
|
|
157
157
|
import { type DefaultMetricsCollectorConfiguration, type Registry, type RegistryContentType } from 'prom-client';
|
|
158
|
+
import type { ComponentLogger } from '@libp2p/interface';
|
|
158
159
|
import type { CalculatedMetricOptions, Metrics } from '@libp2p/interface/metrics';
|
|
159
160
|
export interface PrometheusMetricsInit {
|
|
160
161
|
/**
|
|
@@ -181,5 +182,8 @@ export interface PrometheusMetricsInit {
|
|
|
181
182
|
export interface PrometheusCalculatedMetricOptions<T = number> extends CalculatedMetricOptions<T> {
|
|
182
183
|
registry?: Registry;
|
|
183
184
|
}
|
|
184
|
-
export
|
|
185
|
+
export interface PrometheusMetricsComponents {
|
|
186
|
+
logger: ComponentLogger;
|
|
187
|
+
}
|
|
188
|
+
export declare function prometheusMetrics(init?: Partial<PrometheusMetricsInit>): (components: PrometheusMetricsComponents) => Metrics;
|
|
185
189
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2JG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2JG;AAGH,OAAO,EAAyB,KAAK,oCAAoC,EAAY,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAKjJ,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAEhE,OAAO,KAAK,EAAE,uBAAuB,EAA6D,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAM5I,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAEnB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,oCAAoC,CAAC,mBAAmB,CAAC,CAAA;IAE1E;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAED,MAAM,WAAW,iCAAiC,CAAC,CAAC,GAAC,MAAM,CAAE,SAAQ,uBAAuB,CAAC,CAAC,CAAC;IAC7F,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,eAAe,CAAA;CACxB;AAsND,wBAAgB,iBAAiB,CAAE,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE,2BAA2B,KAAK,OAAO,CAI9H"}
|
package/dist/src/index.js
CHANGED
|
@@ -154,33 +154,33 @@
|
|
|
154
154
|
* const streams = metrics.trackProtocolStream(stream)
|
|
155
155
|
* ```
|
|
156
156
|
*/
|
|
157
|
-
import { logger } from '@libp2p/logger';
|
|
158
157
|
import each from 'it-foreach';
|
|
159
158
|
import { collectDefaultMetrics, register } from 'prom-client';
|
|
160
159
|
import { PrometheusCounterGroup } from './counter-group.js';
|
|
161
160
|
import { PrometheusCounter } from './counter.js';
|
|
162
161
|
import { PrometheusMetricGroup } from './metric-group.js';
|
|
163
162
|
import { PrometheusMetric } from './metric.js';
|
|
164
|
-
const log = logger('libp2p:prometheus-metrics');
|
|
165
163
|
// prom-client metrics are global
|
|
166
164
|
const metrics = new Map();
|
|
167
165
|
class PrometheusMetrics {
|
|
166
|
+
log;
|
|
168
167
|
transferStats;
|
|
169
168
|
registry;
|
|
170
|
-
constructor(init) {
|
|
169
|
+
constructor(components, init) {
|
|
170
|
+
this.log = components.logger.forComponent('libp2p:prometheus-metrics');
|
|
171
171
|
this.registry = init?.registry;
|
|
172
172
|
if (init?.preserveExistingMetrics !== true) {
|
|
173
|
-
log('Clearing existing metrics');
|
|
173
|
+
this.log('Clearing existing metrics');
|
|
174
174
|
metrics.clear();
|
|
175
175
|
(this.registry ?? register).clear();
|
|
176
176
|
}
|
|
177
177
|
if (init?.collectDefaultMetrics !== false) {
|
|
178
|
-
log('Collecting default metrics');
|
|
178
|
+
this.log('Collecting default metrics');
|
|
179
179
|
collectDefaultMetrics({ ...init?.defaultMetrics, register: this.registry ?? init?.defaultMetrics?.register });
|
|
180
180
|
}
|
|
181
181
|
// holds global and per-protocol sent/received stats
|
|
182
182
|
this.transferStats = new Map();
|
|
183
|
-
log('Collecting data transfer metrics');
|
|
183
|
+
this.log('Collecting data transfer metrics');
|
|
184
184
|
this.registerCounterGroup('libp2p_data_transfer_bytes_total', {
|
|
185
185
|
label: 'protocol',
|
|
186
186
|
calculate: () => {
|
|
@@ -193,7 +193,7 @@ class PrometheusMetrics {
|
|
|
193
193
|
return output;
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
|
-
log('Collecting memory metrics');
|
|
196
|
+
this.log('Collecting memory metrics');
|
|
197
197
|
this.registerMetricGroup('nodejs_memory_usage_bytes', {
|
|
198
198
|
label: 'memory',
|
|
199
199
|
calculate: () => {
|
|
@@ -245,13 +245,13 @@ class PrometheusMetrics {
|
|
|
245
245
|
}
|
|
246
246
|
let metric = metrics.get(name);
|
|
247
247
|
if (metrics.has(name)) {
|
|
248
|
-
log('Reuse existing metric', name);
|
|
248
|
+
this.log('Reuse existing metric', name);
|
|
249
249
|
if (opts.calculate != null) {
|
|
250
250
|
metric.addCalculator(opts.calculate);
|
|
251
251
|
}
|
|
252
252
|
return metrics.get(name);
|
|
253
253
|
}
|
|
254
|
-
log('Register metric', name);
|
|
254
|
+
this.log('Register metric', name);
|
|
255
255
|
metric = new PrometheusMetric(name, { registry: this.registry, ...opts });
|
|
256
256
|
metrics.set(name, metric);
|
|
257
257
|
if (opts.calculate == null) {
|
|
@@ -264,13 +264,13 @@ class PrometheusMetrics {
|
|
|
264
264
|
}
|
|
265
265
|
let metricGroup = metrics.get(name);
|
|
266
266
|
if (metricGroup != null) {
|
|
267
|
-
log('Reuse existing metric group', name);
|
|
267
|
+
this.log('Reuse existing metric group', name);
|
|
268
268
|
if (opts.calculate != null) {
|
|
269
269
|
metricGroup.addCalculator(opts.calculate);
|
|
270
270
|
}
|
|
271
271
|
return metricGroup;
|
|
272
272
|
}
|
|
273
|
-
log('Register metric group', name);
|
|
273
|
+
this.log('Register metric group', name);
|
|
274
274
|
metricGroup = new PrometheusMetricGroup(name, { registry: this.registry, ...opts });
|
|
275
275
|
metrics.set(name, metricGroup);
|
|
276
276
|
if (opts.calculate == null) {
|
|
@@ -283,13 +283,13 @@ class PrometheusMetrics {
|
|
|
283
283
|
}
|
|
284
284
|
let counter = metrics.get(name);
|
|
285
285
|
if (counter != null) {
|
|
286
|
-
log('Reuse existing counter', name);
|
|
286
|
+
this.log('Reuse existing counter', name);
|
|
287
287
|
if (opts.calculate != null) {
|
|
288
288
|
counter.addCalculator(opts.calculate);
|
|
289
289
|
}
|
|
290
290
|
return metrics.get(name);
|
|
291
291
|
}
|
|
292
|
-
log('Register counter', name);
|
|
292
|
+
this.log('Register counter', name);
|
|
293
293
|
counter = new PrometheusCounter(name, { registry: this.registry, ...opts });
|
|
294
294
|
metrics.set(name, counter);
|
|
295
295
|
if (opts.calculate == null) {
|
|
@@ -302,13 +302,13 @@ class PrometheusMetrics {
|
|
|
302
302
|
}
|
|
303
303
|
let counterGroup = metrics.get(name);
|
|
304
304
|
if (counterGroup != null) {
|
|
305
|
-
log('Reuse existing counter group', name);
|
|
305
|
+
this.log('Reuse existing counter group', name);
|
|
306
306
|
if (opts.calculate != null) {
|
|
307
307
|
counterGroup.addCalculator(opts.calculate);
|
|
308
308
|
}
|
|
309
309
|
return counterGroup;
|
|
310
310
|
}
|
|
311
|
-
log('Register counter group', name);
|
|
311
|
+
this.log('Register counter group', name);
|
|
312
312
|
counterGroup = new PrometheusCounterGroup(name, { registry: this.registry, ...opts });
|
|
313
313
|
metrics.set(name, counterGroup);
|
|
314
314
|
if (opts.calculate == null) {
|
|
@@ -317,8 +317,8 @@ class PrometheusMetrics {
|
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
319
|
export function prometheusMetrics(init) {
|
|
320
|
-
return () => {
|
|
321
|
-
return new PrometheusMetrics(init);
|
|
320
|
+
return (components) => {
|
|
321
|
+
return new PrometheusMetrics(components, init);
|
|
322
322
|
};
|
|
323
323
|
}
|
|
324
324
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2JG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/prometheus-metrics",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.12-97ab31c0c",
|
|
4
4
|
"description": "Collect libp2p metrics for scraping by Prometheus or Graphana",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "Apache-2.0 OR MIT",
|
|
@@ -43,18 +43,18 @@
|
|
|
43
43
|
"test:electron-main": "aegir test -t electron-main --cov"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@libp2p/interface": "
|
|
47
|
-
"@libp2p/logger": "^3.0.5",
|
|
46
|
+
"@libp2p/interface": "0.1.6-97ab31c0c",
|
|
48
47
|
"it-foreach": "^2.0.3",
|
|
49
48
|
"it-stream-types": "^2.0.1",
|
|
50
49
|
"prom-client": "^15.0.0"
|
|
51
50
|
},
|
|
52
51
|
"devDependencies": {
|
|
53
|
-
"@libp2p/interface-compliance-tests": "
|
|
54
|
-
"@libp2p/
|
|
55
|
-
"@
|
|
52
|
+
"@libp2p/interface-compliance-tests": "4.1.5-97ab31c0c",
|
|
53
|
+
"@libp2p/logger": "3.1.0-97ab31c0c",
|
|
54
|
+
"@libp2p/peer-id-factory": "3.0.8-97ab31c0c",
|
|
55
|
+
"@multiformats/multiaddr": "^12.1.10",
|
|
56
56
|
"aegir": "^41.0.2",
|
|
57
|
-
"it-drain": "^3.0.
|
|
57
|
+
"it-drain": "^3.0.3",
|
|
58
58
|
"it-pipe": "^3.0.1",
|
|
59
59
|
"p-defer": "^4.0.0"
|
|
60
60
|
}
|
package/src/index.ts
CHANGED
|
@@ -155,19 +155,17 @@
|
|
|
155
155
|
* ```
|
|
156
156
|
*/
|
|
157
157
|
|
|
158
|
-
import { logger } from '@libp2p/logger'
|
|
159
158
|
import each from 'it-foreach'
|
|
160
159
|
import { collectDefaultMetrics, type DefaultMetricsCollectorConfiguration, register, type Registry, type RegistryContentType } from 'prom-client'
|
|
161
160
|
import { PrometheusCounterGroup } from './counter-group.js'
|
|
162
161
|
import { PrometheusCounter } from './counter.js'
|
|
163
162
|
import { PrometheusMetricGroup } from './metric-group.js'
|
|
164
163
|
import { PrometheusMetric } from './metric.js'
|
|
164
|
+
import type { ComponentLogger, Logger } from '@libp2p/interface'
|
|
165
165
|
import type { MultiaddrConnection, Stream, Connection } from '@libp2p/interface/connection'
|
|
166
166
|
import type { CalculatedMetricOptions, Counter, CounterGroup, Metric, MetricGroup, MetricOptions, Metrics } from '@libp2p/interface/metrics'
|
|
167
167
|
import type { Duplex, Source } from 'it-stream-types'
|
|
168
168
|
|
|
169
|
-
const log = logger('libp2p:prometheus-metrics')
|
|
170
|
-
|
|
171
169
|
// prom-client metrics are global
|
|
172
170
|
const metrics = new Map<string, any>()
|
|
173
171
|
|
|
@@ -201,28 +199,34 @@ export interface PrometheusCalculatedMetricOptions<T=number> extends CalculatedM
|
|
|
201
199
|
registry?: Registry
|
|
202
200
|
}
|
|
203
201
|
|
|
202
|
+
export interface PrometheusMetricsComponents {
|
|
203
|
+
logger: ComponentLogger
|
|
204
|
+
}
|
|
205
|
+
|
|
204
206
|
class PrometheusMetrics implements Metrics {
|
|
207
|
+
private readonly log: Logger
|
|
205
208
|
private transferStats: Map<string, number>
|
|
206
209
|
private readonly registry?: Registry
|
|
207
210
|
|
|
208
|
-
constructor (init?: Partial<PrometheusMetricsInit>) {
|
|
211
|
+
constructor (components: PrometheusMetricsComponents, init?: Partial<PrometheusMetricsInit>) {
|
|
212
|
+
this.log = components.logger.forComponent('libp2p:prometheus-metrics')
|
|
209
213
|
this.registry = init?.registry
|
|
210
214
|
|
|
211
215
|
if (init?.preserveExistingMetrics !== true) {
|
|
212
|
-
log('Clearing existing metrics')
|
|
216
|
+
this.log('Clearing existing metrics')
|
|
213
217
|
metrics.clear()
|
|
214
218
|
;(this.registry ?? register).clear()
|
|
215
219
|
}
|
|
216
220
|
|
|
217
221
|
if (init?.collectDefaultMetrics !== false) {
|
|
218
|
-
log('Collecting default metrics')
|
|
222
|
+
this.log('Collecting default metrics')
|
|
219
223
|
collectDefaultMetrics({ ...init?.defaultMetrics, register: this.registry ?? init?.defaultMetrics?.register })
|
|
220
224
|
}
|
|
221
225
|
|
|
222
226
|
// holds global and per-protocol sent/received stats
|
|
223
227
|
this.transferStats = new Map()
|
|
224
228
|
|
|
225
|
-
log('Collecting data transfer metrics')
|
|
229
|
+
this.log('Collecting data transfer metrics')
|
|
226
230
|
this.registerCounterGroup('libp2p_data_transfer_bytes_total', {
|
|
227
231
|
label: 'protocol',
|
|
228
232
|
calculate: () => {
|
|
@@ -239,7 +243,7 @@ class PrometheusMetrics implements Metrics {
|
|
|
239
243
|
}
|
|
240
244
|
})
|
|
241
245
|
|
|
242
|
-
log('Collecting memory metrics')
|
|
246
|
+
this.log('Collecting memory metrics')
|
|
243
247
|
this.registerMetricGroup('nodejs_memory_usage_bytes', {
|
|
244
248
|
label: 'memory',
|
|
245
249
|
calculate: () => {
|
|
@@ -304,7 +308,7 @@ class PrometheusMetrics implements Metrics {
|
|
|
304
308
|
let metric = metrics.get(name)
|
|
305
309
|
|
|
306
310
|
if (metrics.has(name)) {
|
|
307
|
-
log('Reuse existing metric', name)
|
|
311
|
+
this.log('Reuse existing metric', name)
|
|
308
312
|
|
|
309
313
|
if (opts.calculate != null) {
|
|
310
314
|
metric.addCalculator(opts.calculate)
|
|
@@ -313,7 +317,7 @@ class PrometheusMetrics implements Metrics {
|
|
|
313
317
|
return metrics.get(name)
|
|
314
318
|
}
|
|
315
319
|
|
|
316
|
-
log('Register metric', name)
|
|
320
|
+
this.log('Register metric', name)
|
|
317
321
|
metric = new PrometheusMetric(name, { registry: this.registry, ...opts })
|
|
318
322
|
|
|
319
323
|
metrics.set(name, metric)
|
|
@@ -333,7 +337,7 @@ class PrometheusMetrics implements Metrics {
|
|
|
333
337
|
let metricGroup = metrics.get(name)
|
|
334
338
|
|
|
335
339
|
if (metricGroup != null) {
|
|
336
|
-
log('Reuse existing metric group', name)
|
|
340
|
+
this.log('Reuse existing metric group', name)
|
|
337
341
|
|
|
338
342
|
if (opts.calculate != null) {
|
|
339
343
|
metricGroup.addCalculator(opts.calculate)
|
|
@@ -342,7 +346,7 @@ class PrometheusMetrics implements Metrics {
|
|
|
342
346
|
return metricGroup
|
|
343
347
|
}
|
|
344
348
|
|
|
345
|
-
log('Register metric group', name)
|
|
349
|
+
this.log('Register metric group', name)
|
|
346
350
|
metricGroup = new PrometheusMetricGroup(name, { registry: this.registry, ...opts })
|
|
347
351
|
|
|
348
352
|
metrics.set(name, metricGroup)
|
|
@@ -362,7 +366,7 @@ class PrometheusMetrics implements Metrics {
|
|
|
362
366
|
let counter = metrics.get(name)
|
|
363
367
|
|
|
364
368
|
if (counter != null) {
|
|
365
|
-
log('Reuse existing counter', name)
|
|
369
|
+
this.log('Reuse existing counter', name)
|
|
366
370
|
|
|
367
371
|
if (opts.calculate != null) {
|
|
368
372
|
counter.addCalculator(opts.calculate)
|
|
@@ -371,7 +375,7 @@ class PrometheusMetrics implements Metrics {
|
|
|
371
375
|
return metrics.get(name)
|
|
372
376
|
}
|
|
373
377
|
|
|
374
|
-
log('Register counter', name)
|
|
378
|
+
this.log('Register counter', name)
|
|
375
379
|
counter = new PrometheusCounter(name, { registry: this.registry, ...opts })
|
|
376
380
|
|
|
377
381
|
metrics.set(name, counter)
|
|
@@ -391,7 +395,7 @@ class PrometheusMetrics implements Metrics {
|
|
|
391
395
|
let counterGroup = metrics.get(name)
|
|
392
396
|
|
|
393
397
|
if (counterGroup != null) {
|
|
394
|
-
log('Reuse existing counter group', name)
|
|
398
|
+
this.log('Reuse existing counter group', name)
|
|
395
399
|
|
|
396
400
|
if (opts.calculate != null) {
|
|
397
401
|
counterGroup.addCalculator(opts.calculate)
|
|
@@ -400,7 +404,7 @@ class PrometheusMetrics implements Metrics {
|
|
|
400
404
|
return counterGroup
|
|
401
405
|
}
|
|
402
406
|
|
|
403
|
-
log('Register counter group', name)
|
|
407
|
+
this.log('Register counter group', name)
|
|
404
408
|
counterGroup = new PrometheusCounterGroup(name, { registry: this.registry, ...opts })
|
|
405
409
|
|
|
406
410
|
metrics.set(name, counterGroup)
|
|
@@ -411,8 +415,8 @@ class PrometheusMetrics implements Metrics {
|
|
|
411
415
|
}
|
|
412
416
|
}
|
|
413
417
|
|
|
414
|
-
export function prometheusMetrics (init?: Partial<PrometheusMetricsInit>): () => Metrics {
|
|
415
|
-
return () => {
|
|
416
|
-
return new PrometheusMetrics(init)
|
|
418
|
+
export function prometheusMetrics (init?: Partial<PrometheusMetricsInit>): (components: PrometheusMetricsComponents) => Metrics {
|
|
419
|
+
return (components) => {
|
|
420
|
+
return new PrometheusMetrics(components, init)
|
|
417
421
|
}
|
|
418
422
|
}
|
package/dist/typedoc-urls.json
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"PrometheusCalculatedMetricOptions": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_prometheus_metrics.PrometheusCalculatedMetricOptions.html",
|
|
3
|
-
".:PrometheusCalculatedMetricOptions": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_prometheus_metrics.PrometheusCalculatedMetricOptions.html",
|
|
4
|
-
"PrometheusMetricsInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_prometheus_metrics.PrometheusMetricsInit.html",
|
|
5
|
-
".:PrometheusMetricsInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_prometheus_metrics.PrometheusMetricsInit.html",
|
|
6
|
-
"prometheusMetrics": "https://libp2p.github.io/js-libp2p/functions/_libp2p_prometheus_metrics.prometheusMetrics.html",
|
|
7
|
-
".:prometheusMetrics": "https://libp2p.github.io/js-libp2p/functions/_libp2p_prometheus_metrics.prometheusMetrics.html"
|
|
8
|
-
}
|