Add an authority_discovery_known_authorities_count metric (#6614)

This commit is contained in:
Pierre Krieger
2020-07-09 14:32:55 +02:00
committed by GitHub
parent 389faaf5c8
commit ef8572f10d
2 changed files with 18 additions and 0 deletions
@@ -68,6 +68,11 @@ where
self.cache.insert(id, addresses);
}
/// Returns the number of authority IDs in the cache.
pub fn num_ids(&self) -> usize {
self.cache.len()
}
// Each node should connect to a subset of all authorities. In order to prevent hot spots, this
// selection is based on randomness. Selecting randomly each time we alter the address cache
// would result in connection churn. To reduce this churn a node generates a seed on startup and
@@ -481,6 +481,11 @@ where
if !remote_addresses.is_empty() {
self.addr_cache.insert(authority_id.clone(), remote_addresses);
if let Some(metrics) = &self.metrics {
metrics.known_authorities_count.set(
self.addr_cache.num_ids().try_into().unwrap_or(std::u64::MAX)
);
}
self.update_peer_set_priority_group()?;
}
@@ -651,6 +656,7 @@ pub(crate) struct Metrics {
request: Counter<U64>,
dht_event_received: CounterVec<U64>,
handle_value_found_event_failure: Counter<U64>,
known_authorities_count: Gauge<U64>,
priority_group_size: Gauge<U64>,
}
@@ -697,6 +703,13 @@ impl Metrics {
)?,
registry,
)?,
known_authorities_count: register(
Gauge::new(
"authority_discovery_known_authorities_count",
"Number of authorities known by authority discovery."
)?,
registry,
)?,
priority_group_size: register(
Gauge::new(
"authority_discovery_priority_group_size",