Prometheus: use int counters and gauges

solofilter
Frank Denis 5 years ago
parent 0e4de46963
commit 3cc28670cb

@ -24,7 +24,7 @@ env_logger = { version = "0.7.1", default-features = false, features = ["humanti
futures = { version = "0.3", features = ["async-await"] } futures = { version = "0.3", features = ["async-await"] }
ipext = "0.1.0" ipext = "0.1.0"
jemallocator = "0.3.2" jemallocator = "0.3.2"
libsodium-sys-stable="1.18.2" libsodium-sys-stable="1.19"
log = { version = "0.4.8", features = ["std", "release_max_level_debug"] } log = { version = "0.4.8", features = ["std", "release_max_level_debug"] }
net2 = "0.2.33" net2 = "0.2.33"
parking_lot = "0.10" parking_lot = "0.10"
@ -41,7 +41,7 @@ toml = "0.5.5"
[dependencies.hyper] [dependencies.hyper]
optional = true optional = true
git = "https://github.com/hyperium/hyper" git = "https://github.com/hyperium/hyper"
rev = "0b03b730531654b1b5f632099386ab27c94eb9f4" rev = "5a59875742500672f253719c1e1a16b4eddfacc7"
default_features = false default_features = false
[dependencies.prometheus] [dependencies.prometheus]

@ -275,8 +275,7 @@ async fn tcp_acceptor(globals: Arc<Globals>, mut tcp_listener: TcpListener) -> R
let varz = globals.varz.clone(); let varz = globals.varz.clone();
#[cfg(feature = "metrics")] #[cfg(feature = "metrics")]
{ {
varz.inflight_tcp_queries varz.inflight_tcp_queries.set(_count.saturating_add(1) as _);
.set(_count.saturating_add(1) as f64);
varz.client_queries_tcp.inc(); varz.client_queries_tcp.inc();
} }
client_connection.set_nodelay(true)?; client_connection.set_nodelay(true)?;
@ -304,8 +303,7 @@ async fn tcp_acceptor(globals: Arc<Globals>, mut tcp_listener: TcpListener) -> R
runtime_handle.spawn(fut_all.map(move |_| { runtime_handle.spawn(fut_all.map(move |_| {
let _count = concurrent_connections.fetch_sub(1, Ordering::Relaxed); let _count = concurrent_connections.fetch_sub(1, Ordering::Relaxed);
#[cfg(feature = "metrics")] #[cfg(feature = "metrics")]
varz.inflight_tcp_queries varz.inflight_tcp_queries.set(_count.saturating_sub(1) as _);
.set(_count.saturating_sub(1) as f64);
})); }));
} }
Ok(()) Ok(())
@ -347,8 +345,7 @@ async fn udp_acceptor(
let varz = globals.varz.clone(); let varz = globals.varz.clone();
#[cfg(feature = "metrics")] #[cfg(feature = "metrics")]
{ {
varz.inflight_udp_queries varz.inflight_udp_queries.set(_count.saturating_add(1) as _);
.set(_count.saturating_add(1) as f64);
varz.client_queries_udp.inc(); varz.client_queries_udp.inc();
} }
let globals = globals.clone(); let globals = globals.clone();
@ -359,8 +356,7 @@ async fn udp_acceptor(
runtime_handle.spawn(fut_all.map(move |_| { runtime_handle.spawn(fut_all.map(move |_| {
let _count = concurrent_connections.fetch_sub(1, Ordering::Relaxed); let _count = concurrent_connections.fetch_sub(1, Ordering::Relaxed);
#[cfg(feature = "metrics")] #[cfg(feature = "metrics")]
varz.inflight_udp_queries varz.inflight_udp_queries.set(_count.saturating_sub(1) as _);
.set(_count.saturating_sub(1) as f64);
})); }));
} }
} }

@ -33,7 +33,7 @@ async fn handle_client_connection(
} }
let StartInstant(start_instant) = varz.start_instant; let StartInstant(start_instant) = varz.start_instant;
let uptime = start_instant.elapsed().as_secs(); let uptime = start_instant.elapsed().as_secs();
varz.uptime.set(uptime as f64); varz.uptime.set(uptime as _);
let client_queries = varz.client_queries_udp.get() + varz.client_queries_tcp.get(); let client_queries = varz.client_queries_udp.get() + varz.client_queries_tcp.get();
varz.client_queries.set(client_queries); varz.client_queries.set(client_queries);
let metric_families = prometheus::gather(); let metric_families = prometheus::gather();

@ -1,27 +1,27 @@
use coarsetime::Instant; use coarsetime::Instant;
use prometheus::{Counter, Gauge, Histogram}; use prometheus::{Histogram, IntCounter, IntGauge};
use std::sync::Arc; use std::sync::Arc;
pub struct StartInstant(pub Instant); pub struct StartInstant(pub Instant);
pub struct Inner { pub struct Inner {
pub start_instant: StartInstant, pub start_instant: StartInstant,
pub uptime: Gauge, pub uptime: IntGauge,
pub anonymized_queries: Counter, pub anonymized_queries: IntCounter,
pub anonymized_responses: Counter, pub anonymized_responses: IntCounter,
pub client_queries: Gauge, pub client_queries: IntGauge,
pub client_queries_udp: Counter, pub client_queries_udp: IntCounter,
pub client_queries_tcp: Counter, pub client_queries_tcp: IntCounter,
pub client_queries_cached: Counter, pub client_queries_cached: IntCounter,
pub client_queries_expired: Counter, pub client_queries_expired: IntCounter,
pub client_queries_offline: Counter, pub client_queries_offline: IntCounter,
pub client_queries_errors: Counter, pub client_queries_errors: IntCounter,
pub client_queries_blocked: Counter, pub client_queries_blocked: IntCounter,
pub inflight_udp_queries: Gauge, pub inflight_udp_queries: IntGauge,
pub inflight_tcp_queries: Gauge, pub inflight_tcp_queries: IntGauge,
pub upstream_errors: Counter, pub upstream_errors: IntCounter,
pub upstream_sent: Counter, pub upstream_sent: IntCounter,
pub upstream_received: Counter, pub upstream_received: IntCounter,
pub upstream_response_sizes: Histogram, pub upstream_response_sizes: Histogram,
} }
@ -35,58 +35,58 @@ impl Inner {
pub fn new() -> Inner { pub fn new() -> Inner {
Inner { Inner {
start_instant: StartInstant::default(), start_instant: StartInstant::default(),
uptime: register_gauge!(opts!( uptime: register_int_gauge!(opts!(
"encrypted_dns_uptime", "encrypted_dns_uptime",
"Uptime", "Uptime",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
anonymized_queries: register_counter!(opts!( anonymized_queries: register_int_counter!(opts!(
"encrypted_dns_anonymized_queries", "encrypted_dns_anonymized_queries",
"Number of anomymized queries received", "Number of anomymized queries received",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
anonymized_responses: register_counter!(opts!( anonymized_responses: register_int_counter!(opts!(
"encrypted_dns_anonymized_responses", "encrypted_dns_anonymized_responses",
"Number of anomymized responses received", "Number of anomymized responses received",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
client_queries: register_gauge!(opts!( client_queries: register_int_gauge!(opts!(
"encrypted_dns_client_queries", "encrypted_dns_client_queries",
"Number of client queries received", "Number of client queries received",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
client_queries_udp: register_counter!(opts!( client_queries_udp: register_int_counter!(opts!(
"encrypted_dns_client_queries_udp", "encrypted_dns_client_queries_udp",
"Number of client queries received \ "Number of client queries received \
using UDP", using UDP",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
client_queries_tcp: register_counter!(opts!( client_queries_tcp: register_int_counter!(opts!(
"encrypted_dns_client_queries_tcp", "encrypted_dns_client_queries_tcp",
"Number of client queries received \ "Number of client queries received \
using TCP", using TCP",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
client_queries_cached: register_counter!(opts!( client_queries_cached: register_int_counter!(opts!(
"encrypted_dns_client_queries_cached", "encrypted_dns_client_queries_cached",
"Number of client queries sent from \ "Number of client queries sent from \
the cache", the cache",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
client_queries_expired: register_counter!(opts!( client_queries_expired: register_int_counter!(opts!(
"encrypted_dns_client_queries_expired", "encrypted_dns_client_queries_expired",
"Number of expired client queries", "Number of expired client queries",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
client_queries_offline: register_counter!(opts!( client_queries_offline: register_int_counter!(opts!(
"encrypted_dns_client_queries_offline", "encrypted_dns_client_queries_offline",
"Number of client queries answered \ "Number of client queries answered \
while upstream resolvers are \ while upstream resolvers are \
@ -94,43 +94,43 @@ impl Inner {
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
client_queries_errors: register_counter!(opts!( client_queries_errors: register_int_counter!(opts!(
"encrypted_dns_client_queries_errors", "encrypted_dns_client_queries_errors",
"Number of bogus client queries", "Number of bogus client queries",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
client_queries_blocked: register_counter!(opts!( client_queries_blocked: register_int_counter!(opts!(
"encrypted_dns_client_queries_blocked", "encrypted_dns_client_queries_blocked",
"Number of blocked client queries", "Number of blocked client queries",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
inflight_udp_queries: register_gauge!(opts!( inflight_udp_queries: register_int_gauge!(opts!(
"encrypted_dns_inflight_udp_queries", "encrypted_dns_inflight_udp_queries",
"Number of UDP queries currently waiting for a response", "Number of UDP queries currently waiting for a response",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
inflight_tcp_queries: register_gauge!(opts!( inflight_tcp_queries: register_int_gauge!(opts!(
"encrypted_dns_inflight_tcp_queries", "encrypted_dns_inflight_tcp_queries",
"Number of TCP queries currently waiting for a response", "Number of TCP queries currently waiting for a response",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
upstream_errors: register_counter!(opts!( upstream_errors: register_int_counter!(opts!(
"encrypted_dns_upstream_errors", "encrypted_dns_upstream_errors",
"Number of bogus upstream servers responses", "Number of bogus upstream servers responses",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
upstream_sent: register_counter!(opts!( upstream_sent: register_int_counter!(opts!(
"encrypted_dns_upstream_sent", "encrypted_dns_upstream_sent",
"Number of upstream servers queries sent", "Number of upstream servers queries sent",
labels! {"handler" => "all",} labels! {"handler" => "all",}
)) ))
.unwrap(), .unwrap(),
upstream_received: register_counter!(opts!( upstream_received: register_int_counter!(opts!(
"encrypted_dns_upstream_received", "encrypted_dns_upstream_received",
"Number of upstream servers responses received", "Number of upstream servers responses received",
labels! {"handler" => "all",} labels! {"handler" => "all",}

Loading…
Cancel
Save