Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
Metric updates
Browse files Browse the repository at this point in the history
Signed-off-by: Andrei Sandu <[email protected]>
  • Loading branch information
sandreim committed Mar 10, 2023
1 parent e3598b1 commit 24db36c
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 7 deletions.
2 changes: 1 addition & 1 deletion node/network/approval-distribution/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1071,7 +1071,7 @@ impl State {
}

// Invariant: to our knowledge, none of the peers except for the `source` know about the assignment.
metrics.on_assignment_imported();
metrics.on_assignment_imported(&assignment.cert.kind);

let topology = self.topologies.get_topology(entry.session);
let local = source == MessageSource::Local;
Expand Down
30 changes: 24 additions & 6 deletions node/network/approval-distribution/src/metrics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.

use polkadot_node_metrics::metrics::{prometheus, Metrics as MetricsTrait};
use polkadot_node_primitives::approval::AssignmentCertKindV2;

/// Approval Distribution metrics.
#[derive(Default, Clone)]
pub struct Metrics(Option<MetricsInner>);

#[derive(Clone)]
struct MetricsInner {
assignments_imported_total: prometheus::Counter<prometheus::U64>,
assignments_imported_total: prometheus::CounterVec<prometheus::U64>,
approvals_imported_total: prometheus::Counter<prometheus::U64>,
unified_with_peer_total: prometheus::Counter<prometheus::U64>,
// aggression_l1_messages_total: prometheus::Counter<prometheus::U64>,
Expand All @@ -32,10 +33,24 @@ struct MetricsInner {
time_awaiting_approval_voting: prometheus::Histogram,
}

trait AsLabel {
fn as_label(&self) -> &str;
}

impl AsLabel for &AssignmentCertKindV2 {
fn as_label(&self) -> &str {
match self {
AssignmentCertKindV2::RelayVRFDelay { .. } => "VRF Delay",
AssignmentCertKindV2::RelayVRFModulo { .. } => "VRF Modulo",
AssignmentCertKindV2::RelayVRFModuloCompact { .. } => "VRF Modulo Compact",
}
}
}

impl Metrics {
pub(crate) fn on_assignment_imported(&self) {
pub(crate) fn on_assignment_imported(&self, kind: &AssignmentCertKindV2) {
if let Some(metrics) = &self.0 {
metrics.assignments_imported_total.inc();
metrics.assignments_imported_total.with_label_values(&[kind.as_label()]).inc();
}
}

Expand Down Expand Up @@ -88,9 +103,12 @@ impl MetricsTrait for Metrics {
fn try_register(registry: &prometheus::Registry) -> Result<Self, prometheus::PrometheusError> {
let metrics = MetricsInner {
assignments_imported_total: prometheus::register(
prometheus::Counter::new(
"polkadot_parachain_assignments_imported_total",
"Number of valid assignments imported locally or from other peers.",
prometheus::CounterVec::new(
prometheus::Opts::new(
"polkadot_parachain_assignments_imported_total",
"Number of valid assignments imported locally or from other peers.",
),
&["kind"],
)?,
registry,
)?,
Expand Down

0 comments on commit 24db36c

Please sign in to comment.