104 lines
3.7 KiB
Rust
104 lines
3.7 KiB
Rust
![]() |
use futures::executor::block_on;
|
||
|
use prometheus::{Counter, Encoder, Opts, Registry, TextEncoder};
|
||
|
|
||
|
#[derive(Debug, Clone)]
|
||
|
pub struct Metrics {
|
||
|
pub open_inv_count: Counter,
|
||
|
pub trust_promo_count: Counter,
|
||
|
pub trust_mig_count: Counter,
|
||
|
pub level_up_count: Counter,
|
||
|
pub issue_invite_count: Counter,
|
||
|
pub redeem_invite_count: Counter,
|
||
|
pub check_blockage_count: Counter,
|
||
|
pub blockage_migration_count: Counter,
|
||
|
pub k_reset_count: Counter,
|
||
|
pub buckets_requested_today: Counter,
|
||
|
}
|
||
|
|
||
|
impl Default for Metrics {
|
||
|
fn default() -> Self {
|
||
|
// Create counters.
|
||
|
let open_inv_count = Counter::with_opts(Opts::new(
|
||
|
"open_inv_counter",
|
||
|
"number of open invitations distributed",
|
||
|
))
|
||
|
.unwrap();
|
||
|
let trust_promo_count = Counter::with_opts(Opts::new(
|
||
|
"trust_promo_counter",
|
||
|
"number of trust promotions requests",
|
||
|
))
|
||
|
.unwrap();
|
||
|
let trust_mig_count = Counter::with_opts(Opts::new(
|
||
|
"trust_mig_counter",
|
||
|
"number of trust migrations requests",
|
||
|
))
|
||
|
.unwrap();
|
||
|
let level_up_count =
|
||
|
Counter::with_opts(Opts::new("level_up_counter", "number of level up requests"))
|
||
|
.unwrap();
|
||
|
let issue_invite_count = Counter::with_opts(Opts::new(
|
||
|
"issue_invite_counter",
|
||
|
"number of issue invite requests",
|
||
|
))
|
||
|
.unwrap();
|
||
|
let redeem_invite_count =
|
||
|
Counter::with_opts(Opts::new("redeem_invite_counter", "number of level up requests"))
|
||
|
.unwrap();
|
||
|
let check_blockage_count = Counter::with_opts(Opts::new(
|
||
|
"check_blockage_counter",
|
||
|
"number of check blockage requests",
|
||
|
))
|
||
|
.unwrap();
|
||
|
let blockage_migration_count = Counter::with_opts(Opts::new(
|
||
|
"blockage_migration_counter",
|
||
|
"number of blockage migration requests",
|
||
|
))
|
||
|
.unwrap();
|
||
|
let k_reset_count = Counter::with_opts(Opts::new(
|
||
|
"k_reset_counter",
|
||
|
"number of times k has reset to 0",
|
||
|
))
|
||
|
.unwrap();
|
||
|
let buckets_requested_today = Counter::with_opts(Opts::new(
|
||
|
"buckets_requested_today",
|
||
|
"number of buckets used today",
|
||
|
))
|
||
|
.unwrap();
|
||
|
|
||
|
// Create a Registry and register Counter.
|
||
|
let r = Registry::new();
|
||
|
r.register(Box::new(open_inv_count.clone())).unwrap();
|
||
|
r.register(Box::new(trust_promo_count.clone())).unwrap();
|
||
|
r.register(Box::new(trust_mig_count.clone())).unwrap();
|
||
|
r.register(Box::new(level_up_count.clone())).unwrap();
|
||
|
r.register(Box::new(issue_invite_count.clone())).unwrap();
|
||
|
r.register(Box::new(redeem_invite_count.clone())).unwrap();
|
||
|
r.register(Box::new(check_blockage_count.clone())).unwrap();
|
||
|
r.register(Box::new(blockage_migration_count.clone())).unwrap();
|
||
|
r.register(Box::new(k_reset_count.clone())).unwrap();
|
||
|
r.register(Box::new(buckets_requested_today.clone())).unwrap();
|
||
|
|
||
|
// Gather the metrics.
|
||
|
/* let mut buffer = vec![];
|
||
|
let encoder = TextEncoder::new();
|
||
|
let metric_families = r.gather();
|
||
|
encoder.encode(&metric_families, &mut buffer).unwrap();
|
||
|
*/
|
||
|
|
||
|
// Output to the standard output.
|
||
|
// println!("{}", String::from_utf8(buffer).unwrap());
|
||
|
Metrics {
|
||
|
open_inv_count,
|
||
|
trust_promo_count,
|
||
|
trust_mig_count,
|
||
|
level_up_count,
|
||
|
issue_invite_count,
|
||
|
redeem_invite_count,
|
||
|
check_blockage_count,
|
||
|
blockage_migration_count,
|
||
|
k_reset_count,
|
||
|
buckets_requested_today,
|
||
|
}
|
||
|
}
|
||
|
}
|