Skip to content

Commit db72218

Browse files
authored
fix(metrics): contract sync metrics take home and replica labels (#210)
* fix(metrics): contract sync metrics take home and remote labels * chore(changelog): bump * fix(metrics): replica not remote * feat(template): add check for running PR in test env to PR template
1 parent 7740c33 commit db72218

File tree

7 files changed

+34
-23
lines changed

7 files changed

+34
-23
lines changed

.github/pull_request_template.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,4 @@ the code change.
2929
- [ ] Added Tests
3030
- [ ] Updated Documentation
3131
- [ ] Updated CHANGELOG.md for the appropriate package
32+
- [ ] Ran PR in local/dev/staging

agents/relayer/src/relayer.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ mod test {
232232
let home_sync = ContractSync::new(
233233
AGENT_NAME.to_owned(),
234234
"home_1".to_owned(),
235+
"replica_1".to_owned(),
235236
home_db.clone(),
236237
home_indexer.clone(),
237238
IndexSettings::default(),
@@ -273,6 +274,7 @@ mod test {
273274
let replica_db = NomadDB::new("replica_1", db.clone());
274275
let replica_sync = ContractSync::new(
275276
AGENT_NAME.to_owned(),
277+
"home_1".to_owned(),
276278
"replica_1".to_owned(),
277279
replica_db.clone(),
278280
replica_indexer.clone(),

agents/watcher/src/watcher.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,7 @@ mod test {
741741
let home_sync = ContractSync::new(
742742
AGENT_NAME.to_owned(),
743743
"home_1".to_owned(),
744+
"replica_1".to_owned(),
744745
nomad_db.clone(),
745746
home_indexer.clone(),
746747
IndexSettings::default(),
@@ -836,6 +837,7 @@ mod test {
836837
let home_sync = ContractSync::new(
837838
AGENT_NAME.to_owned(),
838839
"home_1".to_owned(),
840+
"replica_1".to_owned(),
839841
nomad_db.clone(),
840842
home_indexer.clone(),
841843
IndexSettings::default(),
@@ -938,6 +940,7 @@ mod test {
938940
let home_sync = ContractSync::new(
939941
AGENT_NAME.to_owned(),
940942
"home_1".to_owned(),
943+
"replica_1".to_owned(),
941944
nomad_db.clone(),
942945
home_indexer,
943946
IndexSettings::default(),
@@ -1147,6 +1150,7 @@ mod test {
11471150
let home_sync = ContractSync::new(
11481151
AGENT_NAME.to_owned(),
11491152
"home_1".to_owned(),
1153+
"replica_1".to_owned(),
11501154
home_db.clone(),
11511155
home_indexer.clone(),
11521156
IndexSettings::default(),
@@ -1157,6 +1161,7 @@ mod test {
11571161
let replica_1_sync = ContractSync::new(
11581162
AGENT_NAME.to_owned(),
11591163
"replica_1".to_owned(),
1164+
"replica_1".to_owned(),
11601165
replica_1_db.clone(),
11611166
replica_indexer.clone(),
11621167
IndexSettings::default(),
@@ -1166,6 +1171,7 @@ mod test {
11661171
);
11671172
let replica_2_sync = ContractSync::new(
11681173
AGENT_NAME.to_owned(),
1174+
"home_2".to_owned(),
11691175
"replica_2".to_owned(),
11701176
replica_2_db.clone(),
11711177
replica_indexer.clone(),
@@ -1340,6 +1346,7 @@ mod test {
13401346
let home_sync = ContractSync::new(
13411347
AGENT_NAME.to_owned(),
13421348
"home_1".to_owned(),
1349+
"replica_1".to_owned(),
13431350
home_db.clone(),
13441351
home_indexer.clone(),
13451352
IndexSettings::default(),
@@ -1349,6 +1356,7 @@ mod test {
13491356
);
13501357
let replica_1_sync = ContractSync::new(
13511358
AGENT_NAME.to_owned(),
1359+
"home_1".to_owned(),
13521360
"replica_1".to_owned(),
13531361
replica_1_db.clone(),
13541362
replica_indexer.clone(),
@@ -1359,6 +1367,7 @@ mod test {
13591367
);
13601368
let replica_2_sync = ContractSync::new(
13611369
AGENT_NAME.to_owned(),
1370+
"home_2".to_owned(),
13621371
"replica_2".to_owned(),
13631372
replica_2_db.clone(),
13641373
replica_indexer.clone(),

nomad-base/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
### Unreleased
44

5+
- add home and remote labels to contract sync metrics for event differentiation
56
- add `CONFIG_URL` check to `decl_settings` to optionally fetch config from a remote url
67
- bug: add checks for empty replica name arrays in `NomadAgent::run_many` and
78
`NomadAgent::run_all`

nomad-base/src/contract_sync/metrics.rs

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ pub struct ContractSyncMetrics {
1212
pub store_event_latency: HistogramVec,
1313
/// Events stored into DB (label values differentiate updates vs. messages)
1414
pub stored_events: IntGaugeVec,
15-
/// Unique occasions when agent missed an event (label values
16-
/// differentiate updates vs. messages)
17-
pub missed_events: IntGaugeVec,
1815
}
1916

2017
impl ContractSyncMetrics {
@@ -24,14 +21,14 @@ impl ContractSyncMetrics {
2421
.new_int_gauge_vec(
2522
"contract_sync_block_height",
2623
"Height of a recently observed block",
27-
&["data_type", "contract_name", "agent"],
24+
&["data_type", "home", "replica", "agent"],
2825
)
2926
.expect("failed to register block_height metric");
3027
let store_event_latency = metrics
3128
.new_histogram(
3229
"contract_sync_store_event_latency",
3330
"Latency between event emit and event store in db.",
34-
&["data_type", "contract_name", "agent"],
31+
&["data_type", "home", "replica", "agent"],
3532
&[
3633
0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 120.0, 140.0,
3734
160.0, 180.0, 200.0, 250.0, 300.0, 350.0, 400.0, 450.0, 500.0, 1000.0, 2000.0,
@@ -43,23 +40,14 @@ impl ContractSyncMetrics {
4340
.new_int_gauge_vec(
4441
"contract_sync_stored_events",
4542
"Number of events stored into db",
46-
&["data_type", "contract_name", "agent"],
43+
&["data_type", "home", "replica", "agent"],
4744
)
4845
.expect("failed to register stored_events metric");
4946

50-
let missed_events = metrics
51-
.new_int_gauge_vec(
52-
"contract_sync_missed_events",
53-
"Number of unique occasions when agent missed an event",
54-
&["data_type", "contract_name", "agent"],
55-
)
56-
.expect("failed to register missed_events metric");
57-
5847
ContractSyncMetrics {
5948
indexed_height,
6049
store_event_latency,
6150
stored_events,
62-
missed_events,
6351
}
6452
}
6553
}

nomad-base/src/contract_sync/mod.rs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ const MESSAGES_LABEL: &str = "messages";
2828
#[derive(Debug, Clone)]
2929
pub struct ContractSync<I> {
3030
agent_name: String,
31-
contract_name: String,
31+
home: String,
32+
replica: String,
3233
db: NomadDB,
3334
indexer: Arc<I>,
3435
index_settings: IndexSettings,
@@ -51,7 +52,8 @@ impl<I> ContractSync<I> {
5152
#[allow(clippy::too_many_arguments)]
5253
pub fn new(
5354
agent_name: String,
54-
contract_name: String,
55+
home: String,
56+
replica: String,
5557
db: NomadDB,
5658
indexer: Arc<I>,
5759
index_settings: IndexSettings,
@@ -61,7 +63,8 @@ impl<I> ContractSync<I> {
6163
) -> Self {
6264
Self {
6365
agent_name,
64-
contract_name,
66+
home,
67+
replica,
6568
db,
6669
indexer,
6770
index_settings,
@@ -93,18 +96,20 @@ where
9396
let indexer = self.indexer.clone();
9497
let indexed_height = self.metrics.indexed_height.with_label_values(&[
9598
UPDATES_LABEL,
96-
&self.contract_name,
99+
&self.home,
100+
&self.replica,
97101
&self.agent_name,
98102
]);
99103
let store_update_latency = self
100104
.metrics
101105
.store_event_latency
102106
.clone()
103-
.with_label_values(&[UPDATES_LABEL, &self.contract_name, &self.agent_name]);
107+
.with_label_values(&[UPDATES_LABEL, &self.home, &self.replica, &self.agent_name]);
104108

105109
let stored_updates = self.metrics.stored_events.with_label_values(&[
106110
UPDATES_LABEL,
107-
&self.contract_name,
111+
&self.home,
112+
&self.replica,
108113
&self.agent_name,
109114
]);
110115

@@ -247,13 +252,15 @@ where
247252
let indexer = self.indexer.clone();
248253
let indexed_height = self.metrics.indexed_height.with_label_values(&[
249254
MESSAGES_LABEL,
250-
&self.contract_name,
255+
&self.home,
256+
&self.replica,
251257
&self.agent_name,
252258
]);
253259

254260
let stored_messages = self.metrics.stored_events.with_label_values(&[
255261
MESSAGES_LABEL,
256-
&self.contract_name,
262+
&self.home,
263+
&self.replica,
257264
&self.agent_name,
258265
]);
259266

@@ -535,6 +542,7 @@ mod test {
535542
let contract_sync = ContractSync::new(
536543
"agent".to_owned(),
537544
"home_1".to_owned(),
545+
"replica_1".to_owned(),
538546
nomad_db.clone(),
539547
indexer.clone(),
540548
index_settings,

nomad-base/src/settings/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ impl Settings {
249249
Ok(ContractSync::new(
250250
agent_name.to_owned(),
251251
home_name.to_owned(),
252+
home_name.to_owned(),
252253
nomad_db,
253254
indexer,
254255
index_settings,
@@ -303,6 +304,7 @@ impl Settings {
303304

304305
Ok(ContractSync::new(
305306
agent_name.to_owned(),
307+
self.home.name.clone(),
306308
replica_name.to_owned(),
307309
nomad_db,
308310
indexer,

0 commit comments

Comments
 (0)