Fix duplicate metric labels (#518)

pull/519/head v0.0.0-testnet.0
Mattie Conover 3 years ago committed by GitHub
parent 404b4ae115
commit 71ce3e285b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      rust/abacus-base/src/contract_sync/metrics.rs
  2. 39
      rust/abacus-base/src/contract_sync/mod.rs
  3. 2
      rust/abacus-base/src/inbox.rs
  4. 2
      rust/abacus-base/src/outbox.rs
  5. 8
      rust/agents/relayer/src/relayer.rs

@ -24,7 +24,7 @@ impl ContractSyncMetrics {
.new_int_gauge( .new_int_gauge(
"contract_sync_block_height", "contract_sync_block_height",
"Height of a recently observed block", "Height of a recently observed block",
&["data_type", "contract_name", "agent"], &["data_type", "contract_name"],
) )
.expect("failed to register block_height metric"); .expect("failed to register block_height metric");
@ -32,7 +32,7 @@ impl ContractSyncMetrics {
.new_int_gauge( .new_int_gauge(
"contract_sync_stored_events", "contract_sync_stored_events",
"Number of events stored into db", "Number of events stored into db",
&["data_type", "contract_name", "agent"], &["data_type", "contract_name"],
) )
.expect("failed to register stored_events metric"); .expect("failed to register stored_events metric");
@ -40,7 +40,7 @@ impl ContractSyncMetrics {
.new_int_counter( .new_int_counter(
"contract_sync_missed_events", "contract_sync_missed_events",
"Number of unique occasions when agent missed an event", "Number of unique occasions when agent missed an event",
&["data_type", "contract_name", "agent"], &["data_type", "contract_name"],
) )
.expect("failed to register missed_events metric"); .expect("failed to register missed_events metric");

@ -30,7 +30,6 @@ const MESSAGES_LABEL: &str = "messages";
/// db up-to-date. /// db up-to-date.
#[derive(Debug)] #[derive(Debug)]
pub struct ContractSync<I> { pub struct ContractSync<I> {
agent_name: String,
contract_name: String, contract_name: String,
db: AbacusDB, db: AbacusDB,
indexer: Arc<I>, indexer: Arc<I>,
@ -41,7 +40,6 @@ pub struct ContractSync<I> {
impl<I> ContractSync<I> { impl<I> ContractSync<I> {
/// Instantiate new ContractSync /// Instantiate new ContractSync
pub fn new( pub fn new(
agent_name: String,
contract_name: String, contract_name: String,
db: AbacusDB, db: AbacusDB,
indexer: Arc<I>, indexer: Arc<I>,
@ -49,7 +47,6 @@ impl<I> ContractSync<I> {
metrics: ContractSyncMetrics, metrics: ContractSyncMetrics,
) -> Self { ) -> Self {
Self { Self {
agent_name,
contract_name, contract_name,
db, db,
indexer, indexer,
@ -86,23 +83,23 @@ where
let db = self.db.clone(); let db = self.db.clone();
let indexer = self.indexer.clone(); let indexer = self.indexer.clone();
let indexed_height = self.metrics.indexed_height.clone().with_label_values(&[ let indexed_height = self
MESSAGES_LABEL, .metrics
&self.contract_name, .indexed_height
&self.agent_name, .clone()
]); .with_label_values(&[MESSAGES_LABEL, &self.contract_name]);
let stored_messages = self.metrics.stored_events.clone().with_label_values(&[ let stored_messages = self
MESSAGES_LABEL, .metrics
&self.contract_name, .stored_events
&self.agent_name, .clone()
]); .with_label_values(&[MESSAGES_LABEL, &self.contract_name]);
let missed_messages = self.metrics.missed_events.clone().with_label_values(&[ let missed_messages = self
MESSAGES_LABEL, .metrics
&self.contract_name, .missed_events
&self.agent_name, .clone()
]); .with_label_values(&[MESSAGES_LABEL, &self.contract_name]);
let message_leaf_index = self.metrics.message_leaf_index.clone(); let message_leaf_index = self.metrics.message_leaf_index.clone();
@ -519,7 +516,6 @@ mod test {
let sync_metrics = ContractSyncMetrics::new(metrics, None); let sync_metrics = ContractSyncMetrics::new(metrics, None);
let contract_sync = ContractSync::new( let contract_sync = ContractSync::new(
"agent".to_owned(),
"outbox_1".to_owned(), "outbox_1".to_owned(),
abacus_db.clone(), abacus_db.clone(),
indexer.clone(), indexer.clone(),
@ -822,7 +818,6 @@ mod test {
let sync_metrics = ContractSyncMetrics::new(metrics, None); let sync_metrics = ContractSyncMetrics::new(metrics, None);
let contract_sync = ContractSync::new( let contract_sync = ContractSync::new(
"agent".to_owned(),
"outbox_1".to_owned(), "outbox_1".to_owned(),
abacus_db.clone(), abacus_db.clone(),
indexer.clone(), indexer.clone(),

@ -50,14 +50,12 @@ impl CachingInbox {
/// data /// data
pub fn sync( pub fn sync(
&self, &self,
agent_name: String,
index_settings: IndexSettings, index_settings: IndexSettings,
metrics: ContractSyncMetrics, metrics: ContractSyncMetrics,
) -> Instrumented<JoinHandle<Result<()>>> { ) -> Instrumented<JoinHandle<Result<()>>> {
let span = info_span!("InboxContractSync", self = %self); let span = info_span!("InboxContractSync", self = %self);
let sync = ContractSync::new( let sync = ContractSync::new(
agent_name,
String::from_str(self.inbox.name()).expect("!string"), String::from_str(self.inbox.name()).expect("!string"),
self.db.clone(), self.db.clone(),
self.indexer.clone(), self.indexer.clone(),

@ -57,14 +57,12 @@ impl CachingOutbox {
/// data /// data
pub fn sync( pub fn sync(
&self, &self,
agent_name: String,
index_settings: IndexSettings, index_settings: IndexSettings,
metrics: ContractSyncMetrics, metrics: ContractSyncMetrics,
) -> Instrumented<JoinHandle<Result<()>>> { ) -> Instrumented<JoinHandle<Result<()>>> {
let span = info_span!("OutboxContractSync", self = %self); let span = info_span!("OutboxContractSync", self = %self);
let sync = ContractSync::new( let sync = ContractSync::new(
agent_name,
String::from_str(self.outbox.name()).expect("!string"), String::from_str(self.outbox.name()).expect("!string"),
self.db.clone(), self.db.clone(),
self.indexer.clone(), self.indexer.clone(),

@ -86,11 +86,9 @@ impl Relayer {
let outbox_name = outbox.name(); let outbox_name = outbox.name();
let sync_metrics = let sync_metrics =
ContractSyncMetrics::new(self.metrics(), Some(&["dispatch", outbox_name, "unknown"])); ContractSyncMetrics::new(self.metrics(), Some(&["dispatch", outbox_name, "unknown"]));
let sync = self.outbox().sync( let sync = self
Self::AGENT_NAME.to_string(), .outbox()
self.as_ref().indexer.clone(), .sync(self.as_ref().indexer.clone(), sync_metrics);
sync_metrics,
);
sync sync
} }

Loading…
Cancel
Save