@libp2p/kad-dht 13.1.1-d9c7e0f7e → 13.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,7 +5,7 @@ import { pbStream } from 'it-protobuf-stream'
5
5
  import { Message, MessageType } from '../message/dht.js'
6
6
  import * as utils from '../utils.js'
7
7
  import { KBucket, isLeafBucket, type Bucket, type PingEventDetails } from './k-bucket.js'
8
- import type { ComponentLogger, Logger, Metric, Metrics, PeerId, PeerStore, Startable, Stream } from '@libp2p/interface'
8
+ import type { ComponentLogger, CounterGroup, Logger, Metric, Metrics, PeerId, PeerStore, Startable, Stream } from '@libp2p/interface'
9
9
  import type { ConnectionManager } from '@libp2p/interface-internal'
10
10
 
11
11
  export const KAD_CLOSE_TAG_NAME = 'kad-close'
@@ -64,6 +64,7 @@ export class RoutingTable extends TypedEventEmitter<RoutingTableEvents> implemen
64
64
  routingTableKadBucketTotal: Metric
65
65
  routingTableKadBucketAverageOccupancy: Metric
66
66
  routingTableKadBucketMaxDepth: Metric
67
+ kadBucketEvents: CounterGroup<'ping' | 'ping_error' | 'peer_added' | 'peer_removed'>
67
68
  }
68
69
 
69
70
  constructor (components: RoutingTableComponents, init: RoutingTableInit) {
@@ -95,7 +96,8 @@ export class RoutingTable extends TypedEventEmitter<RoutingTableEvents> implemen
95
96
  routingTableSize: this.components.metrics.registerMetric(`${init.logPrefix.replaceAll(':', '_')}_routing_table_size`),
96
97
  routingTableKadBucketTotal: this.components.metrics.registerMetric(`${init.logPrefix.replaceAll(':', '_')}_routing_table_kad_bucket_total`),
97
98
  routingTableKadBucketAverageOccupancy: this.components.metrics.registerMetric(`${init.logPrefix.replaceAll(':', '_')}_routing_table_kad_bucket_average_occupancy`),
98
- routingTableKadBucketMaxDepth: this.components.metrics.registerMetric(`${init.logPrefix.replaceAll(':', '_')}_routing_table_kad_bucket_max_depth`)
99
+ routingTableKadBucketMaxDepth: this.components.metrics.registerMetric(`${init.logPrefix.replaceAll(':', '_')}_routing_table_kad_bucket_max_depth`),
100
+ kadBucketEvents: this.components.metrics.registerCounterGroup(`${init.logPrefix.replaceAll(':', '_')}_kad_bucket_events_total`)
99
101
  }
100
102
  }
101
103
  }
@@ -121,7 +123,10 @@ export class RoutingTable extends TypedEventEmitter<RoutingTableEvents> implemen
121
123
 
122
124
  // test whether to evict peers
123
125
  kBuck.addEventListener('ping', (evt) => {
126
+ this.metrics?.kadBucketEvents.increment({ ping: true })
127
+
124
128
  this._onPing(evt).catch(err => {
129
+ this.metrics?.kadBucketEvents.increment({ ping_error: true })
125
130
  this.log.error('could not process k-bucket ping event', err)
126
131
  })
127
132
  })
@@ -195,11 +200,13 @@ export class RoutingTable extends TypedEventEmitter<RoutingTableEvents> implemen
195
200
  kBuck.addEventListener('added', (evt) => {
196
201
  updatePeerTags()
197
202
 
203
+ this.metrics?.kadBucketEvents.increment({ peer_added: true })
198
204
  this.safeDispatchEvent('peer:add', { detail: evt.detail.peerId })
199
205
  })
200
206
  kBuck.addEventListener('removed', (evt) => {
201
207
  updatePeerTags()
202
208
 
209
+ this.metrics?.kadBucketEvents.increment({ peer_removed: true })
203
210
  this.safeDispatchEvent('peer:remove', { detail: evt.detail.peerId })
204
211
  })
205
212
  }
@@ -271,7 +278,7 @@ export class RoutingTable extends TypedEventEmitter<RoutingTableEvents> implemen
271
278
 
272
279
  return false
273
280
  } finally {
274
- this.metrics?.routingTableSize.update(this.size)
281
+ this.updateMetrics()
275
282
  }
276
283
  }, {
277
284
  peerId: oldContact.peerId