Skip to content

Commit 700d51a

Browse files
Merge pull request anza-xyz#6 from igalaxy-tech/tvc-rank
fix tvc rank
2 parents b9ad10c + 798e629 commit 700d51a

File tree

3 files changed

+38
-54
lines changed

3 files changed

+38
-54
lines changed

sentinel/src/main.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ async fn main() -> anyhow::Result<()> {
7979
Some(Ok(reports)) => {
8080
tracing::info!("Computed TVC ranks!");
8181
tvc_ranks_report_state.update_status(TVCRanksReportStatus::Completed);
82-
for (rank, (validator, total_credits, epoch_credits)) in reports.validators.into_iter().enumerate() {
83-
tvc_reports.insert(validator, (rank, total_credits, epoch_credits));
82+
for (rank, (validator, tvc_credits)) in reports.validators.into_iter().enumerate() {
83+
tvc_reports.insert(validator, (rank, tvc_credits));
8484
}
8585
//TODO: Store reports in db
8686
}

sentinel/src/prometheus.rs

Lines changed: 32 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use url::Url;
99

1010
#[derive(Debug)]
1111
pub enum Report {
12-
Validator((Box<ValidatorReport>, SmolStr, Option<(usize, u64, u64)>)),
12+
Validator((Box<ValidatorReport>, SmolStr, Option<(usize, u64)>)),
1313
}
1414

1515
#[derive(Debug)]
@@ -22,48 +22,46 @@ pub struct ValidatorMetrics {
2222
vote_latency: GaugeVec,
2323
tvc_rank: IntGaugeVec,
2424
steward_rank: IntGaugeVec,
25-
total_credits: IntGaugeVec,
26-
epoch_credits: IntGaugeVec,
25+
tvc_credits: IntGaugeVec,
2726
}
2827

2928
impl ValidatorMetrics {
3029
pub fn new(registry: &mut Registry) -> anyhow::Result<ValidatorMetrics> {
31-
let epoch = IntGaugeVec::new(Opts::new("epoch", "Epoch"), &["pubkey", "data_center"])?;
30+
let epoch = IntGaugeVec::new(
31+
Opts::new("epoch", "Epoch"),
32+
&["vote_account", "data_center"],
33+
)?;
3234
let rank_by_stake = IntGaugeVec::new(
3335
Opts::new("rank_by_stake", "Rank by stake"),
34-
&["pubkey", "data_center"],
36+
&["vote_account", "data_center"],
3537
)?;
3638
let score = GaugeVec::new(
3739
Opts::new("score", "Steward Score"),
38-
&["pubkey", "data_center"],
40+
&["vote_account", "data_center"],
3941
)?;
4042
let yield_score = GaugeVec::new(
4143
Opts::new("yield_score", "Yield Score"),
42-
&["pubkey", "data_center"],
44+
&["vote_account", "data_center"],
4345
)?;
4446
let vote_credits_ratio = GaugeVec::new(
4547
Opts::new("vote_credits_ratio", "Vote credits ratio"),
46-
&["pubkey", "data_center"],
48+
&["vote_account", "data_center"],
4749
)?;
4850
let vote_latency = GaugeVec::new(
4951
Opts::new("vote_latency", "Vote latency"),
50-
&["pubkey", "data_center"],
52+
&["vote_account", "data_center"],
5153
)?;
5254
let tvc_rank = IntGaugeVec::new(
5355
Opts::new("tvc_rank", "TVC rank"),
54-
&["pubkey", "data_center"],
56+
&["vote_account", "data_center"],
5557
)?;
5658
let steward_rank = IntGaugeVec::new(
5759
Opts::new("steward_rank", "Steward Rank"),
58-
&["pubkey", "data_center"],
59-
)?;
60-
let total_credits = IntGaugeVec::new(
61-
Opts::new("total_credits", "Total Credits"),
62-
&["pubkey", "data_center"],
60+
&["vote_account", "data_center"],
6361
)?;
64-
let epoch_credits = IntGaugeVec::new(
65-
Opts::new("epoch_credits", "Epoch Credits"),
66-
&["pubkey", "data_center"],
62+
let tvc_credits = IntGaugeVec::new(
63+
Opts::new("tvc_credits", "Tvc credits for current epoch"),
64+
&["vote_account", "data_center"],
6765
)?;
6866

6967
registry.register(Box::new(epoch.clone()))?;
@@ -74,8 +72,7 @@ impl ValidatorMetrics {
7472
registry.register(Box::new(vote_latency.clone()))?;
7573
registry.register(Box::new(tvc_rank.clone()))?;
7674
registry.register(Box::new(steward_rank.clone()))?;
77-
registry.register(Box::new(total_credits.clone()))?;
78-
registry.register(Box::new(epoch_credits.clone()))?;
75+
registry.register(Box::new(tvc_credits.clone()))?;
7976

8077
Ok(ValidatorMetrics {
8178
epoch,
@@ -86,52 +83,44 @@ impl ValidatorMetrics {
8683
vote_latency,
8784
tvc_rank,
8885
steward_rank,
89-
total_credits,
90-
epoch_credits,
86+
tvc_credits,
9187
})
9288
}
9389

9490
pub fn update_report(
9591
&self,
96-
(report, data_center, tvc_report): (
97-
Box<ValidatorReport>,
98-
SmolStr,
99-
Option<(usize, u64, u64)>,
100-
),
92+
(report, data_center, tvc_report): (Box<ValidatorReport>, SmolStr, Option<(usize, u64)>),
10193
) {
102-
let pubkey = report.validator_score.vote_account.to_string();
103-
let (tvc_rank, total_credits, epoch_credits) = tvc_report.unwrap_or_default();
94+
let vote_account = report.validator_score.vote_account.to_string();
95+
let (tvc_rank, tvc_credits) = tvc_report.unwrap_or_default();
10496

10597
self.epoch
106-
.with_label_values(&[&pubkey, &data_center])
98+
.with_label_values(&[&vote_account, &data_center])
10799
.set(report.history_entry.epoch as i64);
108100
self.rank_by_stake
109-
.with_label_values(&[&pubkey, &data_center])
101+
.with_label_values(&[&vote_account, &data_center])
110102
.set(report.history_entry.rank as i64);
111103
self.score
112-
.with_label_values(&[&pubkey, &data_center])
104+
.with_label_values(&[&vote_account, &data_center])
113105
.set(report.validator_score.score);
114106
self.yield_score
115-
.with_label_values(&[&pubkey, &data_center])
107+
.with_label_values(&[&vote_account, &data_center])
116108
.set(report.validator_score.yield_score);
117109
self.vote_credits_ratio
118-
.with_label_values(&[&pubkey, &data_center])
110+
.with_label_values(&[&vote_account, &data_center])
119111
.set(report.validator_score.vote_credits_ratio);
120112
self.vote_latency
121-
.with_label_values(&[&pubkey, &data_center])
113+
.with_label_values(&[&vote_account, &data_center])
122114
.set(report.vote_latency);
123115
self.steward_rank
124-
.with_label_values(&[&pubkey, &data_center])
116+
.with_label_values(&[&vote_account, &data_center])
125117
.set((report.rank as i64) + 1);
126118
self.tvc_rank
127-
.with_label_values(&[&pubkey, &data_center])
119+
.with_label_values(&[&vote_account, &data_center])
128120
.set((tvc_rank as i64) + 1);
129-
self.total_credits
130-
.with_label_values(&[&pubkey, &data_center])
131-
.set(total_credits as i64);
132-
self.epoch_credits
133-
.with_label_values(&[&pubkey, &data_center])
134-
.set(epoch_credits as i64);
121+
self.tvc_credits
122+
.with_label_values(&[&vote_account, &data_center])
123+
.set(tvc_credits as i64);
135124
}
136125
}
137126

sentinel/src/tvc_ranks.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use crate::{
1616

1717
#[derive(Debug)]
1818
pub struct TVCRanksReport {
19-
pub validators: Vec<(Pubkey, u64, u64)>,
19+
pub validators: Vec<(Pubkey, u64)>,
2020
}
2121

2222
pub struct TVCRanksReportState {
@@ -93,11 +93,6 @@ impl TVCRanksReportState {
9393
.current
9494
.into_iter()
9595
.map(|info| {
96-
let total_credits = info
97-
.epoch_credits
98-
.iter()
99-
.fold(0, |acc, (_, credits, _)| acc + credits);
100-
10196
let latest_credits = info
10297
.epoch_credits
10398
.into_iter()
@@ -107,12 +102,12 @@ impl TVCRanksReportState {
107102

108103
info.vote_pubkey
109104
.parse()
110-
.map(|pk| (pk, total_credits, latest_credits))
105+
.map(|pk| (pk, latest_credits))
111106
.map_err(anyhow::Error::from)
112107
})
113-
.collect::<anyhow::Result<Vec<(Pubkey, _, _)>>>()?;
108+
.collect::<anyhow::Result<Vec<(Pubkey, _)>>>()?;
114109

115-
validators_with_credits.sort_by(|(_, l, _), (_, r, _)| r.cmp(l));
110+
validators_with_credits.sort_by(|(_, l), (_, r)| r.cmp(l));
116111

117112
Ok(TVCRanksReport {
118113
validators: validators_with_credits,

0 commit comments

Comments
 (0)