Merge pull request #6014 from daira/upgrade-metrics
Upgrade to metrics 0.19.x and metrics-exporter-prometheus 0.10.x
This commit is contained in:
commit
bb64e895c2
|
@ -49,15 +49,6 @@ dependencies = [
|
|||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "0.7.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ansi_term"
|
||||
version = "0.12.1"
|
||||
|
@ -475,16 +466,6 @@ dependencies = [
|
|||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dashmap"
|
||||
version = "4.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"num_cpus",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.9.0"
|
||||
|
@ -555,12 +536,6 @@ version = "1.6.1"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
|
||||
|
||||
[[package]]
|
||||
name = "endian-type"
|
||||
version = "0.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
|
||||
|
||||
[[package]]
|
||||
name = "equihash"
|
||||
version = "0.2.0"
|
||||
|
@ -1087,9 +1062,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "metrics"
|
||||
version = "0.17.1"
|
||||
version = "0.19.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "55586aa936c35f34ba8aa5d97356d554311206e1ce1f9e68fe7b07288e5ad827"
|
||||
checksum = "142c53885123b68d94108295a09d4afe1a1388ed95b54d5dacd9a454753030f2"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"metrics-macros",
|
||||
|
@ -1097,11 +1072,12 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "metrics-exporter-prometheus"
|
||||
version = "0.6.1"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "343a5ceb38235928e7a5687412590f07e6d281522dcd9ff51246f8856eef5fe5"
|
||||
checksum = "953cbbb6f9ba4b9304f4df79b98cdc9d14071ed93065a9fca11c00c5d9181b66"
|
||||
dependencies = [
|
||||
"hyper",
|
||||
"indexmap",
|
||||
"ipnet",
|
||||
"metrics",
|
||||
"metrics-util",
|
||||
|
@ -1109,41 +1085,34 @@ dependencies = [
|
|||
"quanta",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "metrics-macros"
|
||||
version = "0.4.1"
|
||||
version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0daa0ab3a0ae956d0e2c1f42511422850e577d36a255357d1a7d08d45ee3a2f1"
|
||||
checksum = "49e30813093f757be5cf21e50389a24dc7dbb22c49f23b7e8f51d69b508a5ffa"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"regex",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "metrics-util"
|
||||
version = "0.10.2"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1174223789e331d9d47a4a953dac36e397db60fa8d2a111ac505388c6c7fe32e"
|
||||
checksum = "fd1f4b69bef1e2b392b2d4a12902f2af90bb438ba4a66aa222d1023fa6561b50"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"aho-corasick",
|
||||
"atomic-shim",
|
||||
"crossbeam-epoch",
|
||||
"crossbeam-utils",
|
||||
"dashmap",
|
||||
"hashbrown",
|
||||
"indexmap",
|
||||
"metrics",
|
||||
"num_cpus",
|
||||
"ordered-float",
|
||||
"parking_lot",
|
||||
"quanta",
|
||||
"radix_trie",
|
||||
"sketches-ddsketch",
|
||||
]
|
||||
|
||||
|
@ -1180,15 +1149,6 @@ dependencies = [
|
|||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nibble_vec"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43"
|
||||
dependencies = [
|
||||
"smallvec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nix"
|
||||
version = "0.22.3"
|
||||
|
@ -1325,15 +1285,6 @@ dependencies = [
|
|||
"zcash_note_encryption",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ordered-float"
|
||||
version = "2.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
|
||||
dependencies = [
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pairing"
|
||||
version = "0.22.0"
|
||||
|
@ -1558,16 +1509,6 @@ version = "0.7.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
|
||||
|
||||
[[package]]
|
||||
name = "radix_trie"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd"
|
||||
dependencies = [
|
||||
"endian-type",
|
||||
"nibble_vec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.7.3"
|
||||
|
@ -1726,8 +1667,6 @@ version = "1.5.5"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"memchr",
|
||||
"regex-syntax",
|
||||
]
|
||||
|
||||
|
@ -1865,9 +1804,9 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
|
|||
|
||||
[[package]]
|
||||
name = "sketches-ddsketch"
|
||||
version = "0.1.2"
|
||||
version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "76a77a8fd93886010f05e7ea0720e569d6d16c65329dbe3ec033bbbccccb017b"
|
||||
checksum = "04d2ecae5fcf33b122e2e6bd520a57ccf152d2dde3b38c71039df1a6867264ee"
|
||||
|
||||
[[package]]
|
||||
name = "smallvec"
|
||||
|
@ -2017,21 +1956,9 @@ dependencies = [
|
|||
"mio",
|
||||
"pin-project-lite",
|
||||
"socket2",
|
||||
"tokio-macros",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tokio-macros"
|
||||
version = "1.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml"
|
||||
version = "0.5.9"
|
||||
|
|
|
@ -69,8 +69,8 @@ rayon = "1.5"
|
|||
|
||||
# Metrics
|
||||
ipnet = "2"
|
||||
metrics = "0.17"
|
||||
metrics-exporter-prometheus = "0.6"
|
||||
metrics = "0.19"
|
||||
metrics-exporter-prometheus = "0.10"
|
||||
|
||||
# Wallet tool
|
||||
# (also depends on tracing, and tracing-subscriber with "env-filter" and "fmt" features)
|
||||
|
|
|
@ -20,10 +20,6 @@ criteria = "safe-to-deploy"
|
|||
version = "0.7.6"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.aho-corasick]]
|
||||
version = "0.7.18"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.ansi_term]]
|
||||
version = "0.12.1"
|
||||
criteria = "safe-to-deploy"
|
||||
|
@ -212,10 +208,6 @@ criteria = "safe-to-deploy"
|
|||
version = "1.0.68"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.dashmap]]
|
||||
version = "4.0.2"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.digest]]
|
||||
version = "0.9.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
@ -244,10 +236,6 @@ criteria = "safe-to-deploy"
|
|||
version = "1.6.1"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.endian-type]]
|
||||
version = "0.1.2"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.ff]]
|
||||
version = "0.12.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
@ -433,19 +421,19 @@ version = "0.2.0"
|
|||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.metrics]]
|
||||
version = "0.17.1"
|
||||
version = "0.19.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.metrics-exporter-prometheus]]
|
||||
version = "0.6.1"
|
||||
version = "0.10.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.metrics-macros]]
|
||||
version = "0.4.1"
|
||||
version = "0.5.1"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.metrics-util]]
|
||||
version = "0.10.2"
|
||||
version = "0.13.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.miniz_oxide]]
|
||||
|
@ -460,10 +448,6 @@ criteria = "safe-to-deploy"
|
|||
version = "0.3.7"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.nibble_vec]]
|
||||
version = "0.1.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.nix]]
|
||||
version = "0.22.3"
|
||||
criteria = "safe-to-deploy"
|
||||
|
@ -512,10 +496,6 @@ criteria = "safe-to-deploy"
|
|||
version = "0.3.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.ordered-float]]
|
||||
version = "2.10.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.pairing]]
|
||||
version = "0.22.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
@ -604,10 +584,6 @@ criteria = "safe-to-deploy"
|
|||
version = "0.7.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.radix_trie]]
|
||||
version = "0.2.1"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.rand]]
|
||||
version = "0.7.3"
|
||||
criteria = "safe-to-deploy"
|
||||
|
@ -729,7 +705,7 @@ version = "0.3.10"
|
|||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.sketches-ddsketch]]
|
||||
version = "0.1.2"
|
||||
version = "0.1.3"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.smallvec]]
|
||||
|
@ -800,10 +776,6 @@ criteria = "safe-to-deploy"
|
|||
version = "1.17.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.tokio-macros]]
|
||||
version = "1.7.0"
|
||||
criteria = "safe-to-deploy"
|
||||
|
||||
[[unaudited.toml]]
|
||||
version = "0.5.9"
|
||||
criteria = "safe-to-deploy"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use libc::{c_char, c_double};
|
||||
use metrics::{try_recorder, GaugeValue, Key, Label};
|
||||
use metrics::{try_recorder, Key, Label};
|
||||
use metrics_exporter_prometheus::PrometheusBuilder;
|
||||
use std::ffi::CStr;
|
||||
use std::net::{IpAddr, SocketAddr};
|
||||
|
@ -14,20 +14,12 @@ pub extern "C" fn metrics_run(
|
|||
allow_ips_len: usize,
|
||||
prometheus_port: u16,
|
||||
) -> bool {
|
||||
// Parse any allowed IPs.
|
||||
// Convert the C string IPs to Rust strings.
|
||||
let allow_ips = unsafe { slice::from_raw_parts(allow_ips, allow_ips_len) };
|
||||
let mut allow_ips: Vec<ipnet::IpNet> = match allow_ips
|
||||
let mut allow_ips: Vec<&str> = match allow_ips
|
||||
.iter()
|
||||
.map(|&p| unsafe { CStr::from_ptr(p) })
|
||||
.map(|s| {
|
||||
s.to_str().ok().and_then(|s| {
|
||||
s.parse()
|
||||
.map_err(|e| {
|
||||
error!("Invalid -metricsallowip argument '{}': {}", s, e);
|
||||
})
|
||||
.ok()
|
||||
})
|
||||
})
|
||||
.map(|s| s.to_str().ok())
|
||||
.collect()
|
||||
{
|
||||
Some(ips) => ips,
|
||||
|
@ -36,7 +28,7 @@ pub extern "C" fn metrics_run(
|
|||
}
|
||||
};
|
||||
// We always allow localhost.
|
||||
allow_ips.extend(&["127.0.0.0/8".parse().unwrap(), "::1/128".parse().unwrap()]);
|
||||
allow_ips.extend(&["127.0.0.0/8", "::1/128"]);
|
||||
|
||||
// Parse the address to bind to.
|
||||
let bind_address = SocketAddr::new(
|
||||
|
@ -64,11 +56,21 @@ pub extern "C" fn metrics_run(
|
|||
|
||||
allow_ips
|
||||
.into_iter()
|
||||
.fold(
|
||||
PrometheusBuilder::new().listen_address(bind_address),
|
||||
|builder, subnet| builder.add_allowed(subnet),
|
||||
.try_fold(
|
||||
PrometheusBuilder::new().with_http_listener(bind_address),
|
||||
|builder, subnet| {
|
||||
builder.add_allowed_address(subnet).map_err(|e| {
|
||||
error!("Invalid -metricsallowip argument '{}': {}", subnet, e);
|
||||
e
|
||||
})
|
||||
},
|
||||
)
|
||||
.install()
|
||||
.and_then(|builder| {
|
||||
builder.install().map_err(|e| {
|
||||
error!("Could not install Prometheus exporter: {}", e);
|
||||
e
|
||||
})
|
||||
})
|
||||
.is_ok()
|
||||
}
|
||||
|
||||
|
@ -153,7 +155,7 @@ pub extern "C" fn metrics_key(
|
|||
pub extern "C" fn metrics_static_increment_counter(callsite: *const FfiCallsite, value: u64) {
|
||||
if let Some(recorder) = try_recorder() {
|
||||
let callsite = unsafe { callsite.as_ref().unwrap() };
|
||||
recorder.increment_counter(&callsite.key, value);
|
||||
recorder.register_counter(&callsite.key).increment(value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -162,7 +164,7 @@ pub extern "C" fn metrics_increment_counter(key: *mut FfiKey, value: u64) {
|
|||
if let Some(recorder) = try_recorder() {
|
||||
if !key.is_null() {
|
||||
let key = unsafe { Box::from_raw(key) };
|
||||
recorder.increment_counter(&key.inner, value);
|
||||
recorder.register_counter(&key.inner).increment(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -171,7 +173,7 @@ pub extern "C" fn metrics_increment_counter(key: *mut FfiKey, value: u64) {
|
|||
pub extern "C" fn metrics_static_update_gauge(callsite: *const FfiCallsite, value: c_double) {
|
||||
if let Some(recorder) = try_recorder() {
|
||||
let callsite = unsafe { callsite.as_ref().unwrap() };
|
||||
recorder.update_gauge(&callsite.key, GaugeValue::Absolute(value));
|
||||
recorder.register_gauge(&callsite.key).set(value as f64);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -180,7 +182,7 @@ pub extern "C" fn metrics_update_gauge(key: *mut FfiKey, value: c_double) {
|
|||
if let Some(recorder) = try_recorder() {
|
||||
if !key.is_null() {
|
||||
let key = unsafe { Box::from_raw(key) };
|
||||
recorder.update_gauge(&key.inner, GaugeValue::Absolute(value));
|
||||
recorder.register_gauge(&key.inner).set(value as f64);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -189,7 +191,9 @@ pub extern "C" fn metrics_update_gauge(key: *mut FfiKey, value: c_double) {
|
|||
pub extern "C" fn metrics_static_increment_gauge(callsite: *const FfiCallsite, value: c_double) {
|
||||
if let Some(recorder) = try_recorder() {
|
||||
let callsite = unsafe { callsite.as_ref().unwrap() };
|
||||
recorder.update_gauge(&callsite.key, GaugeValue::Increment(value));
|
||||
recorder
|
||||
.register_gauge(&callsite.key)
|
||||
.increment(value as f64);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -198,7 +202,7 @@ pub extern "C" fn metrics_increment_gauge(key: *mut FfiKey, value: c_double) {
|
|||
if let Some(recorder) = try_recorder() {
|
||||
if !key.is_null() {
|
||||
let key = unsafe { Box::from_raw(key) };
|
||||
recorder.update_gauge(&key.inner, GaugeValue::Increment(value));
|
||||
recorder.register_gauge(&key.inner).increment(value as f64);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -207,7 +211,9 @@ pub extern "C" fn metrics_increment_gauge(key: *mut FfiKey, value: c_double) {
|
|||
pub extern "C" fn metrics_static_decrement_gauge(callsite: *const FfiCallsite, value: c_double) {
|
||||
if let Some(recorder) = try_recorder() {
|
||||
let callsite = unsafe { callsite.as_ref().unwrap() };
|
||||
recorder.update_gauge(&callsite.key, GaugeValue::Decrement(value));
|
||||
recorder
|
||||
.register_gauge(&callsite.key)
|
||||
.decrement(value as f64);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -216,7 +222,7 @@ pub extern "C" fn metrics_decrement_gauge(key: *mut FfiKey, value: c_double) {
|
|||
if let Some(recorder) = try_recorder() {
|
||||
if !key.is_null() {
|
||||
let key = unsafe { Box::from_raw(key) };
|
||||
recorder.update_gauge(&key.inner, GaugeValue::Decrement(value));
|
||||
recorder.register_gauge(&key.inner).decrement(value as f64);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -225,7 +231,9 @@ pub extern "C" fn metrics_decrement_gauge(key: *mut FfiKey, value: c_double) {
|
|||
pub extern "C" fn metrics_static_record_histogram(callsite: *const FfiCallsite, value: c_double) {
|
||||
if let Some(recorder) = try_recorder() {
|
||||
let callsite = unsafe { callsite.as_ref().unwrap() };
|
||||
recorder.record_histogram(&callsite.key, value);
|
||||
recorder
|
||||
.register_histogram(&callsite.key)
|
||||
.record(value as f64);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -234,7 +242,7 @@ pub extern "C" fn metrics_record_histogram(key: *mut FfiKey, value: c_double) {
|
|||
if let Some(recorder) = try_recorder() {
|
||||
if !key.is_null() {
|
||||
let key = unsafe { Box::from_raw(key) };
|
||||
recorder.record_histogram(&key.inner, value);
|
||||
recorder.register_histogram(&key.inner).record(value as f64);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue