pub struct MetricGroups {Show 14 fields
pub default: MetricLevel,
pub consensus: MetricLevel,
pub execution: MetricLevel,
pub checkpoints: MetricLevel,
pub transactions: MetricLevel,
pub authority: MetricLevel,
pub traffic_control: MetricLevel,
pub network: MetricLevel,
pub p2p: MetricLevel,
pub storage: MetricLevel,
pub rpc: MetricLevel,
pub epoch: MetricLevel,
pub runtime: MetricLevel,
pub hardware: MetricLevel,
}Expand description
Per-group verbosity levels for the node’s predefined Prometheus metric groups.
Fields§
§default: MetricLevelExposure threshold for metrics whose module belongs to no group.
consensus: MetricLevelConsensus and block production.
Modules: starfish_core, iota_core::consensus_adapter,
iota_core::consensus_manager, iota_core::consensus_validator,
iota_core::epoch::consensus_store_pruner.
execution: MetricLevelTransaction execution and caching, including the Move bytecode verifier and execution-limit meters.
Modules: iota_core::execution_cache, iota_core::global_state_hasher,
iota_core::module_cache_metrics, iota_types::metrics.
checkpoints: MetricLevelCheckpoint building, certification, and execution.
Modules: iota_core::checkpoints.
transactions: MetricLevelTransaction submission and finality.
Modules: iota_core::quorum_driver, iota_core::transaction_driver,
iota_core::transaction_orchestrator,
iota_core::validator_tx_finalizer.
Authority request handling and validation.
Modules: iota_core::authority (incl. the authority store and pruner),
iota_core::safe_client, iota_core::signature_verifier,
iota_core::validator_client_monitor. Also the authority_grpc_*
transport metrics of the validator gRPC server, matched by name prefix
because their module (iota_node::metrics) is shared with the epoch
group’s protocol-version gauges.
The iota_core::authority directive is a module-path prefix, so it also
covers the sibling modules iota_core::authority_aggregator,
iota_core::authority_client, and iota_core::authority_server.
traffic_control: MetricLevelSpam/abuse traffic control, including the transaction-deny config gauges.
Modules: iota_core::traffic_controller,
iota_config::node_config_metrics.
network: MetricLevelPeer-to-peer networking and state sync.
Modules: iota_network::discovery, iota_network::randomness,
iota_network::state_sync.
p2p: MetricLevelThe anemo P2P transport underneath the network group’s subsystems.
Kept separate from network because most of these are per-peer
(connection/RTT/packet-loss gauges) and therefore high-cardinality, so
they can be silenced independently.
Modules: iota_metrics::metrics_network.
storage: MetricLevelPersistent storage, including archive writes/reads and state snapshot
uploads. The authority object store is part of the authority group,
not this one.
Modules: typed_store, iota_storage,
iota_core::db_checkpoint_handler, iota_snapshot.
rpc: MetricLevelAPI servers and RPC-facing indexes.
Modules: iota_json_rpc, iota_grpc_server, iota_graphql_rpc,
iota_core::jsonrpc_index, iota_core::subscription_handler.
epoch: MetricLevelEpoch reconfiguration and protocol versioning.
Modules: iota_core::epoch::epoch_metrics. Also the
iota_current/binary/configured_max_protocol_version gauges, matched by
name because their module (iota_node::metrics) is shared with the
authority group’s gRPC transport metrics.
runtime: MetricLevelAsync-runtime and process health: monitored tokio tasks, channels, and scopes, thread stalls, invariant violations, and tracing span latencies.
Modules: iota_metrics (except the hardware and p2p group
submodules), telemetry_subscribers.
hardware: MetricLevelHost hardware metrics (CPU / memory / disk). Registered as a collector,
so individual metrics cannot be level-filtered: off skips the whole
group and every other level registers it, at startup only.
Rendered as an iota_metrics::hardware_metrics directive, the module
where the collector is registered.
Implementations§
Source§impl MetricGroups
impl MetricGroups
Sourcepub fn modules_for_group(group: &str) -> Option<&'static [&'static str]>
pub fn modules_for_group(group: &str) -> Option<&'static [&'static str]>
Returns the filter patterns a group covers — keyed
by the group’s config key. None for unknown groups.
Sourcepub fn to_filter_string(&self) -> String
pub fn to_filter_string(&self) -> String
Renders the levels into a METRICS_FILTER-style directive string: the
default threshold as the leading catch-all directive, then one
directive per group module (including the hardware group’s). Later
directives win, so the group levels override the catch-all for their
modules.
Trait Implementations§
Source§impl Clone for MetricGroups
impl Clone for MetricGroups
Source§fn clone(&self) -> MetricGroups
fn clone(&self) -> MetricGroups
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MetricGroups
impl Debug for MetricGroups
Source§impl Default for MetricGroups
impl Default for MetricGroups
Source§impl<'de> Deserialize<'de> for MetricGroupswhere
MetricGroups: Default,
impl<'de> Deserialize<'de> for MetricGroupswhere
MetricGroups: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for MetricGroups
impl RefUnwindSafe for MetricGroups
impl Send for MetricGroups
impl Sync for MetricGroups
impl Unpin for MetricGroups
impl UnsafeUnpin for MetricGroups
impl UnwindSafe for MetricGroups
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a Request§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.