@libp2p/prometheus-metrics 2.0.11 → 2.0.12-05b52d69c

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.
@@ -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 declare function prometheusMetrics(init?: Partial<PrometheusMetricsInit>): () => Metrics;
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2JG;AAIH,OAAO,EAAyB,KAAK,oCAAoC,EAAY,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMjJ,OAAO,KAAK,EAAE,uBAAuB,EAA6D,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQ5I,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;AAoND,wBAAgB,iBAAiB,CAAE,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,MAAM,OAAO,CAIvF"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
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.11",
3
+ "version": "2.0.12-05b52d69c",
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": "^0.1.5",
47
- "@libp2p/logger": "^3.0.5",
46
+ "@libp2p/interface": "0.1.6-05b52d69c",
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": "^4.1.4",
54
- "@libp2p/peer-id-factory": "^3.0.7",
55
- "@multiformats/multiaddr": "^12.1.3",
52
+ "@libp2p/interface-compliance-tests": "4.1.5-05b52d69c",
53
+ "@libp2p/logger": "3.1.0-05b52d69c",
54
+ "@libp2p/peer-id-factory": "3.0.8-05b52d69c",
55
+ "@multiformats/multiaddr": "^12.1.10",
56
56
  "aegir": "^41.0.2",
57
- "it-drain": "^3.0.2",
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
  }
@@ -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
- }