diff --git a/Cargo.lock b/Cargo.lock index f6aef61b1..7677bd88e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -82,9 +82,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "const-random", @@ -1244,7 +1244,7 @@ checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ "async-trait", "axum-core 0.3.4", - "bitflags", + "bitflags 1.3.2", "bytes", "futures-util", "http 0.2.11", @@ -1431,7 +1431,7 @@ dependencies = [ "rand_chacha 0.3.0", "rust_decimal", "serde", - "sha2 0.9.9", + "sha2 0.10.6", "thiserror", ] @@ -1471,6 +1471,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + [[package]] name = "bitmaps" version = "2.1.0" @@ -1604,7 +1610,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" dependencies = [ "borsh-derive 0.10.3", - "hashbrown 0.13.1", + "hashbrown 0.11.2", ] [[package]] @@ -1860,7 +1866,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "ansi_term", "atty", - "bitflags", + "bitflags 1.3.2", "strsim 0.8.0", "textwrap 0.11.0", "unicode-width", @@ -1874,7 +1880,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", - "bitflags", + "bitflags 1.3.2", "clap_lex 0.2.4", "indexmap 1.9.3", "once_cell", @@ -2935,6 +2941,21 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.1.0" @@ -3233,7 +3254,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6fb938100651db317719f46877a3cd82105920be4ea2ff49d55d1d65fa7bec1" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.11", "auto_ops", "either", "float_eq", @@ -3277,7 +3298,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.11", ] [[package]] @@ -3285,6 +3306,9 @@ name = "hashbrown" version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +dependencies = [ + "ahash 0.8.11", +] [[package]] name = "hashlink" @@ -3616,7 +3640,7 @@ dependencies = [ "httpdate", "itoa 1.0.9", "pin-project-lite", - "socket2 0.5.5", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -3685,6 +3709,19 @@ dependencies = [ "tokio-io-timeout", ] +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.28", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "hyper-util" version = "0.1.2" @@ -4268,15 +4305,6 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" -[[package]] -name = "mach2" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" -dependencies = [ - "libc", -] - [[package]] name = "matchers" version = "0.1.0" @@ -4364,23 +4392,23 @@ dependencies = [ [[package]] name = "metrics" -version = "0.21.1" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" +checksum = "2be3cbd384d4e955b231c895ce10685e3d8260c5ccffae898c96c723b0772835" dependencies = [ - "ahash 0.8.7", - "metrics-macros", + "ahash 0.8.11", "portable-atomic", ] [[package]] name = "metrics-exporter-prometheus" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a4964177ddfdab1e3a2b37aec7cf320e14169abb0ed73999f558136409178d5" +checksum = "83a4c4718a371ddfb7806378f23617876eea8b82e5ff1324516bcd283249d9ea" dependencies = [ "base64 0.21.7", "hyper 0.14.28", + "hyper-tls", "indexmap 1.9.3", "ipnet", "metrics", @@ -4391,26 +4419,15 @@ dependencies = [ "tracing", ] -[[package]] -name = "metrics-macros" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" -dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.38", -] - [[package]] name = "metrics-util" -version = "0.15.1" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de2ed6e491ed114b40b732e4d1659a9d53992ebd87490c44a6ffe23739d973e" +checksum = "8b07a5eb561b8cbc16be2d216faf7757f9baf3bfb94dbb0fae3df8387a5bb47f" dependencies = [ "crossbeam-epoch", "crossbeam-utils", - "hashbrown 0.13.1", + "hashbrown 0.14.1", "metrics", "num_cpus", "quanta", @@ -4656,6 +4673,24 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "nb" version = "0.1.3" @@ -4677,7 +4712,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.7.1", @@ -4899,12 +4934,50 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.5.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 2.0.38", +] + [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-sys" +version = "0.9.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "os_str_bytes" version = "6.4.1" @@ -5406,13 +5479,12 @@ dependencies = [ [[package]] name = "quanta" -version = "0.11.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" dependencies = [ "crossbeam-utils", "libc", - "mach2", "once_cell", "raw-cpuid", "wasi 0.11.0+wasi-snapshot-preview1", @@ -5570,11 +5642,11 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "10.7.0" +version = "11.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" dependencies = [ - "bitflags", + "bitflags 2.5.0", ] [[package]] @@ -5617,7 +5689,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -5626,7 +5698,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -6148,7 +6220,7 @@ version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -6621,7 +6693,7 @@ version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "361cc834e5fbbe1a73f1d904fcb8ab052a665e5be6061bd1ba7ab478d7d17c9c" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.11", "blake3", "block-buffer 0.10.4", "bs58 0.4.0", @@ -6723,7 +6795,7 @@ version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4d44a4998ba6d9b37e89399d9ce2812e84489dd4665df619fb23366e1c2ec1b" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.11", "bincode", "bv", "caps", @@ -6757,7 +6829,7 @@ dependencies = [ "array-bytes", "base64 0.21.7", "bincode", - "bitflags", + "bitflags 1.3.2", "blake3", "borsh 0.10.3", "borsh 0.9.3", @@ -6979,7 +7051,7 @@ dependencies = [ "assert_matches", "base64 0.21.7", "bincode", - "bitflags", + "bitflags 1.3.2", "borsh 0.10.3", "bs58 0.4.0", "bytemuck", @@ -7347,7 +7419,7 @@ dependencies = [ "ahash 0.7.6", "atoi", "base64 0.13.1", - "bitflags", + "bitflags 1.3.2", "byteorder", "bytes", "chrono", @@ -7542,7 +7614,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -7745,6 +7817,16 @@ dependencies = [ "syn 2.0.38", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.23.4" @@ -7886,7 +7968,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bytes", "futures-core", "futures-util", @@ -8009,7 +8091,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", - "rand 0.7.3", + "rand 0.8.5", "static_assertions", ] @@ -8168,6 +8250,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "vec_map" version = "0.8.2" @@ -8677,7 +8765,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", - "sha2 0.9.9", + "sha2 0.10.6", "thiserror", "twox-hash", "xorf", diff --git a/Cargo.toml b/Cargo.toml index 721b4919c..08e3cbc8b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ spl-token = "3.5.0" reqwest = {version = "0", default-features=false, features = ["gzip", "json", "rustls-tls"]} beacon = { git = "https://github.com/helium/proto", branch = "master" } humantime = "2" -metrics = "0.21" +metrics = ">=0.22" metrics-exporter-prometheus = "0" tracing = "0" tracing-subscriber = { version = "0", default-features=false, features = ["env-filter", "registry", "fmt"] } diff --git a/boost_manager/src/telemetry.rs b/boost_manager/src/telemetry.rs index 7589b68df..4437b9ed1 100644 --- a/boost_manager/src/telemetry.rs +++ b/boost_manager/src/telemetry.rs @@ -16,7 +16,7 @@ pub async fn last_reward_processed_time( db: &Pool, datetime: DateTime, ) -> anyhow::Result<()> { - metrics::gauge!(LAST_REWARD_PROCESSED_TIME, datetime.timestamp() as f64); + metrics::gauge!(LAST_REWARD_PROCESSED_TIME).set(datetime.timestamp() as f64); meta::store(db, LAST_REWARD_PROCESSED_TIME, datetime.timestamp()).await?; Ok(()) diff --git a/boost_manager/src/updater.rs b/boost_manager/src/updater.rs index 02b0350a1..22eafda50 100644 --- a/boost_manager/src/updater.rs +++ b/boost_manager/src/updater.rs @@ -143,9 +143,9 @@ where async fn check_failed_activations(&self) -> Result<()> { let num_marked_failed = db::update_failed_activations(&self.pool).await?; - metrics::counter!("failed_activations", num_marked_failed); + metrics::counter!("failed_activations").increment(num_marked_failed); let total_failed_count = db::get_failed_activations_count(&self.pool).await?; - metrics::gauge!("db_failed_row_count", total_failed_count as f64); + metrics::gauge!("db_failed_row_count").set(total_failed_count as f64); if total_failed_count > 0 { tracing::warn!("{} failed status activations ", total_failed_count); }; @@ -159,7 +159,7 @@ where summed_activations_count: u64, ) -> Result<()> { tracing::info!("processed batch of {} activations successfully", batch_size); - metrics::counter!("success_activations", summed_activations_count); + metrics::counter!("success_activations").increment(summed_activations_count); db::update_success_batch(&self.pool, ids).await?; Ok(()) } diff --git a/db_store/src/meta.rs b/db_store/src/meta.rs index d4dfc73b0..ffaa99aa6 100644 --- a/db_store/src/meta.rs +++ b/db_store/src/meta.rs @@ -6,11 +6,11 @@ macro_rules! query_exec_timed { ( $name:literal, $query:expr, $meth:ident, $exec:expr ) => {{ match poc_metrics::record_duration!(concat!($name, "_duration"), $query.$meth($exec).await) { Ok(x) => { - metrics::increment_counter!(concat!($name, "_count"), "status" => "ok"); + metrics::counter!(concat!($name, "_count"), "status" => "ok").increment(1); Ok(x) } Err(e) => { - metrics::increment_counter!(concat!($name, "_count"), "status" => "error"); + metrics::counter!(concat!($name, "_count"), "status" => "error").increment(1); Err(Error::SqlError(e)) } } diff --git a/db_store/src/metric_tracker.rs b/db_store/src/metric_tracker.rs index 19357c237..b0be3db2c 100644 --- a/db_store/src/metric_tracker.rs +++ b/db_store/src/metric_tracker.rs @@ -14,7 +14,7 @@ async fn run(size_name: String, idle_name: String, pool: sqlx::Pool self.file_info.prefix.clone(), "process-name" => self.process_name.clone(), - ); + ).set(latency.num_seconds() as f64); recorder.record(&self.process_name, &self.file_info).await?; Ok(futures::stream::iter(self.data.into_iter()).boxed()) diff --git a/file_store/src/file_sink.rs b/file_store/src/file_sink.rs index 13d512608..0081e53ca 100644 --- a/file_store/src/file_sink.rs +++ b/file_store/src/file_sink.rs @@ -127,7 +127,7 @@ impl FileSinkBuilder { metric: self.metric, }; - metrics::register_counter!(client.metric, vec![OK_LABEL]); + metrics::counter!(client.metric, vec![OK_LABEL]); let mut sink = FileSink { target_path: self.target_path, @@ -172,22 +172,22 @@ impl FileSinkClient { tokio::select! { result = self.sender.send_timeout(Message::Data(on_write_tx, bytes), SEND_TIMEOUT) => match result { Ok(_) => { - metrics::increment_counter!( + metrics::counter!( self.metric, labels .chain(std::iter::once(OK_LABEL)) .collect::>() - ); + ).increment(1); tracing::debug!("file_sink write succeeded for {:?}", self.metric); Ok(on_write_rx) } Err(SendTimeoutError::Closed(_)) => { - metrics::increment_counter!( + metrics::counter!( self.metric, labels .chain(std::iter::once(ERROR_LABEL)) .collect::>() - ); + ).increment(1); tracing::error!("file_sink write failed for {:?} channel closed", self.metric); Err(Error::channel()) } diff --git a/iot_config/src/telemetry.rs b/iot_config/src/telemetry.rs index 883c91f73..d55a8adc5 100644 --- a/iot_config/src/telemetry.rs +++ b/iot_config/src/telemetry.rs @@ -14,19 +14,19 @@ const GATEWAY_CHAIN_LOOKUP_DURATION_METRIC: &str = concat!(env!("CARGO_PKG_NAME"), "-", "gateway-info-lookup-duration"); pub fn initialize() { - metrics::gauge!(STREAM_METRIC, 0.0); + metrics::gauge!(STREAM_METRIC).set(0.0); } pub fn count_request(service: &'static str, rpc: &'static str) { - metrics::increment_counter!(RPC_METRIC, "service" => service, "rpc" => rpc); + metrics::counter!(RPC_METRIC, "service" => service, "rpc" => rpc).increment(1); } pub fn count_gateway_info_lookup(result: &'static str) { - metrics::increment_counter!(GATEWAY_CHAIN_LOOKUP_METRIC, "result" => result); + metrics::counter!(GATEWAY_CHAIN_LOOKUP_METRIC, "result" => result).increment(1); } pub fn gauge_hexes(cells: usize) { - metrics::gauge!(REGION_HEX_METRIC, cells as f64); + metrics::gauge!(REGION_HEX_METRIC).set(cells as f64); } pub fn count_region_lookup( @@ -35,37 +35,38 @@ pub fn count_region_lookup( ) { let reported_region = reported_region.map_or_else(|| "LOOKUP_FAILED".to_string(), |region| region.to_string()); - metrics::increment_counter!( + metrics::counter!( REGION_LOOKUP_METRIC, // per metrics docs, &str should be preferred for performance; should the regions be // mapped through a match of region => &'static str of the name? "default_region" => default_region.to_string(), "reported_region" => reported_region - ); + ) + .increment(1); } pub fn duration_gateway_info_lookup(start: std::time::Instant) { - metrics::histogram!(GATEWAY_CHAIN_LOOKUP_DURATION_METRIC, start.elapsed()); + metrics::histogram!(GATEWAY_CHAIN_LOOKUP_DURATION_METRIC).record(start.elapsed()); } pub fn count_skf_updates(adds: usize, removes: usize) { - metrics::counter!(SKF_ADD_COUNT_METRIC, adds as u64); - metrics::counter!(SKF_REMOVE_COUNT_METRIC, removes as u64); + metrics::counter!(SKF_ADD_COUNT_METRIC).increment(adds as u64); + metrics::counter!(SKF_REMOVE_COUNT_METRIC).increment(removes as u64); } pub fn count_eui_updates(adds: usize, removes: usize) { - metrics::counter!(EUI_ADD_COUNT_METRIC, adds as u64); - metrics::counter!(EUI_REMOVE_COUNT_METRIC, removes as u64); + metrics::counter!(EUI_ADD_COUNT_METRIC).increment(adds as u64); + metrics::counter!(EUI_REMOVE_COUNT_METRIC).increment(removes as u64); } pub fn count_devaddr_updates(adds: usize, removes: usize) { - metrics::counter!(DEVADDR_ADD_COUNT_METRIC, adds as u64); - metrics::counter!(DEVADDR_REMOVE_COUNT_METRIC, removes as u64); + metrics::counter!(DEVADDR_ADD_COUNT_METRIC).increment(adds as u64); + metrics::counter!(DEVADDR_REMOVE_COUNT_METRIC).increment(removes as u64); } pub fn route_stream_subscribe() { - metrics::increment_gauge!(STREAM_METRIC, 1.0); + metrics::gauge!(STREAM_METRIC).increment(1.0); } pub fn route_stream_unsubscribe() { - metrics::decrement_gauge!(STREAM_METRIC, 1.0); + metrics::gauge!(STREAM_METRIC).decrement(1.0); } diff --git a/iot_packet_verifier/src/burner.rs b/iot_packet_verifier/src/burner.rs index 9c8950cdf..4f0dda388 100644 --- a/iot_packet_verifier/src/burner.rs +++ b/iot_packet_verifier/src/burner.rs @@ -131,7 +131,7 @@ where payer_account.burned = payer_account.burned.saturating_sub(amount); payer_account.balance = payer_account.balance.saturating_sub(amount); - metrics::counter!("burned", amount, "payer" => payer.to_string()); + metrics::counter!("burned", "payer" => payer.to_string()).increment(amount); Ok(()) } diff --git a/iot_verifier/src/entropy_loader.rs b/iot_verifier/src/entropy_loader.rs index 5f858cf22..3fddb31e2 100644 --- a/iot_verifier/src/entropy_loader.rs +++ b/iot_verifier/src/entropy_loader.rs @@ -63,7 +63,7 @@ impl EntropyLoader { report.version as i32, ) .await?; - metrics::increment_counter!("oracles_iot_verifier_loader_entropy"); + metrics::counter!("oracles_iot_verifier_loader_entropy").increment(1); Ok(transaction) }) .await? diff --git a/iot_verifier/src/gateway_cache.rs b/iot_verifier/src/gateway_cache.rs index 4b76018e8..fe2ef2afe 100644 --- a/iot_verifier/src/gateway_cache.rs +++ b/iot_verifier/src/gateway_cache.rs @@ -26,11 +26,11 @@ impl GatewayCache { ) -> Result { match self.gateway_cache_receiver.borrow().get(address) { Some(hit) => { - metrics::increment_counter!("oracles_iot_verifier_gateway_cache_hit"); + metrics::counter!("oracles_iot_verifier_gateway_cache_hit").increment(1); Ok(hit.clone()) } None => { - metrics::increment_counter!("oracles_iot_verifier_gateway_cache_miss"); + metrics::counter!("oracles_iot_verifier_gateway_cache_miss").increment(1); Err(GatewayCacheError::GatewayNotFound(address.clone())) } } diff --git a/iot_verifier/src/region_cache.rs b/iot_verifier/src/region_cache.rs index 127e2be0e..ceab85a2c 100644 --- a/iot_verifier/src/region_cache.rs +++ b/iot_verifier/src/region_cache.rs @@ -49,12 +49,12 @@ where ) -> Result> { match self.cache.get(®ion).await { Some(hit) => { - metrics::increment_counter!("oracles_iot_verifier_region_params_cache_hit"); + metrics::counter!("oracles_iot_verifier_region_params_cache_hit").increment(1); Ok(hit.value().clone()) } _ => match self.gateways.clone().resolve_region_params(region).await { Ok(res) => { - metrics::increment_counter!("oracles_iot_verifier_region_params_cache_miss"); + metrics::counter!("oracles_iot_verifier_region_params_cache_miss").increment(1); self.cache .insert(region, res.clone(), self.refresh_interval) .await; diff --git a/iot_verifier/src/telemetry.rs b/iot_verifier/src/telemetry.rs index 2629a6a7e..8f0a110c7 100644 --- a/iot_verifier/src/telemetry.rs +++ b/iot_verifier/src/telemetry.rs @@ -26,47 +26,47 @@ pub async fn initialize(db: &Pool) -> anyhow::Result<()> { } pub fn count_packets(count: u64) { - metrics::counter!(PACKET_COUNTER, count); + metrics::counter!(PACKET_COUNTER).increment(count); } pub fn count_non_rewardable_packets(count: u64) { - metrics::counter!(NON_REWARDABLE_PACKET_COUNTER, count); + metrics::counter!(NON_REWARDABLE_PACKET_COUNTER).increment(count); } pub fn count_loader_beacons(count: u64) { - metrics::counter!(LOADER_BEACON_COUNTER, count); + metrics::counter!(LOADER_BEACON_COUNTER).increment(count); } pub fn count_loader_witnesses(count: u64) { - metrics::counter!(LOADER_WITNESS_COUNTER, count); + metrics::counter!(LOADER_WITNESS_COUNTER).increment(count); } pub fn count_loader_dropped_beacons(count: u64, labels: &[(&'static str, &'static str)]) { - metrics::counter!(LOADER_DROPPED_BEACON_COUNTER, count, labels); + metrics::counter!(LOADER_DROPPED_BEACON_COUNTER, labels).increment(count); } pub fn count_loader_dropped_witnesses(count: u64, labels: &[(&'static str, &'static str)]) { - metrics::counter!(LOADER_DROPPED_WITNESS_COUNTER, count, labels); + metrics::counter!(LOADER_DROPPED_WITNESS_COUNTER, labels).increment(count); } pub fn num_beacons(count: u64) { - metrics::gauge!(BEACON_GUAGE, count as f64); + metrics::gauge!(BEACON_GUAGE).set(count as f64); } pub fn increment_num_beacons_by(count: u64) { - metrics::increment_gauge!(BEACON_GUAGE, count as f64); + metrics::gauge!(BEACON_GUAGE).increment(count as f64); } pub fn decrement_num_beacons() { - metrics::decrement_gauge!(BEACON_GUAGE, 1.0) + metrics::gauge!(BEACON_GUAGE).decrement(1.0) } pub fn increment_invalid_witnesses(labels: &[(&'static str, &'static str)]) { - metrics::increment_counter!(INVALID_WITNESS_COUNTER, labels); + metrics::counter!(INVALID_WITNESS_COUNTER, labels).increment(1); } pub fn last_rewarded_end_time(datetime: DateTime) { - metrics::gauge!(LAST_REWARDED_END_TIME, datetime.timestamp() as f64); + metrics::gauge!(LAST_REWARDED_END_TIME).set(datetime.timestamp() as f64); } #[derive(Default)] diff --git a/iot_verifier/src/witness_updater.rs b/iot_verifier/src/witness_updater.rs index d1fa912c0..661653d06 100644 --- a/iot_verifier/src/witness_updater.rs +++ b/iot_verifier/src/witness_updater.rs @@ -24,7 +24,7 @@ struct Telemetry { impl Telemetry { fn new() -> Self { - let gauge = metrics::register_gauge!("iot_verifier_witness_updater_queue"); + let gauge = metrics::gauge!("iot_verifier_witness_updater_queue"); gauge.set(0.0); Self { queue_gauge: gauge } } diff --git a/metrics/src/client_requests.rs b/metrics/src/client_requests.rs index 247c770fa..26863b5a9 100644 --- a/metrics/src/client_requests.rs +++ b/metrics/src/client_requests.rs @@ -93,10 +93,10 @@ impl Timing { if let Some(name) = self.name { metrics::histogram!( histogram_name, - self.start.elapsed().as_secs_f64(), "name" => name, "result" => self.result ) + .record(self.start.elapsed().as_secs_f64()) } } } diff --git a/metrics/src/lib.rs b/metrics/src/lib.rs index 02ddbc4f2..b427a4817 100644 --- a/metrics/src/lib.rs +++ b/metrics/src/lib.rs @@ -43,7 +43,7 @@ macro_rules! record_duration { ( $metric_name:expr, $e:expr ) => {{ let timer = std::time::Instant::now(); let res = $e; - ::metrics::histogram!($metric_name, timer.elapsed()); + ::metrics::histogram!($metric_name).record(timer.elapsed()); res }}; } @@ -120,7 +120,7 @@ where let metric_name_time = self.metric_name_time; let timer = std::time::Instant::now(); - metrics::increment_gauge!(metric_name_count, 1.0); + metrics::gauge!(metric_name_count).increment(1.0); let clone = self.inner.clone(); // take the service that was ready @@ -128,11 +128,11 @@ where Box::pin(async move { let res = inner.call(req).await; - metrics::decrement_gauge!(metric_name_count, 1.0); + metrics::gauge!(metric_name_count).decrement(1.0); let elapsed_time = timer.elapsed(); tracing::debug!("request processed in {elapsed_time:?}"); // TODO What units to use? Is f64 seconds appropriate? - ::metrics::histogram!(metric_name_time, elapsed_time.as_secs_f64()); + metrics::histogram!(metric_name_time).record(elapsed_time.as_secs_f64()); res }) } diff --git a/mobile_config/src/telemetry.rs b/mobile_config/src/telemetry.rs index 3238d8748..550b2df21 100644 --- a/mobile_config/src/telemetry.rs +++ b/mobile_config/src/telemetry.rs @@ -3,9 +3,9 @@ const GATEWAY_CHAIN_LOOKUP_METRIC: &str = concat!(env!("CARGO_PKG_NAME"), "-", "gateway-chain-lookup"); pub fn count_request(service: &'static str, rpc: &'static str) { - metrics::increment_counter!(RPC_METRIC, "service" => service, "rpc" => rpc); + metrics::counter!(RPC_METRIC, "service" => service, "rpc" => rpc).increment(1); } pub fn count_gateway_chain_lookup(result: &'static str) { - metrics::increment_counter!(GATEWAY_CHAIN_LOOKUP_METRIC, "result" => result); + metrics::counter!(GATEWAY_CHAIN_LOOKUP_METRIC, "result" => result).increment(1); } diff --git a/mobile_packet_verifier/src/burner.rs b/mobile_packet_verifier/src/burner.rs index ffb6a0c0f..6cf3c7f41 100644 --- a/mobile_packet_verifier/src/burner.rs +++ b/mobile_packet_verifier/src/burner.rs @@ -96,13 +96,15 @@ where tracing::info!(%total_dcs, %payer, "Burning DC"); if self.burn_data_credits(&payer, total_dcs).await.is_err() { // We have failed to burn data credits: - metrics::counter!("burned", total_dcs, "payer" => payer.to_string(), "success" => "false"); + metrics::counter!("burned", "payer" => payer.to_string(), "success" => "false") + .increment(total_dcs); continue; } // We succesfully managed to burn data credits: - metrics::counter!("burned", total_dcs, "payer" => payer.to_string(), "success" => "true"); + metrics::counter!("burned", "payer" => payer.to_string(), "success" => "true") + .increment(total_dcs); // Delete from the data transfer session and write out to S3 diff --git a/mobile_verifier/src/coverage.rs b/mobile_verifier/src/coverage.rs index 3290abe94..860005154 100644 --- a/mobile_verifier/src/coverage.rs +++ b/mobile_verifier/src/coverage.rs @@ -178,16 +178,16 @@ impl CoverageDaemon { self.oracle_boosting_sink.commit().await?; loop { - #[rustfmt::skip] tokio::select! { _ = shutdown.clone() => { tracing::info!("CoverageDaemon shutting down"); break; } Some(file) = self.coverage_objs.recv() => { - let start = Instant::now(); - self.process_file(file).await?; - metrics::histogram!("coverage_object_processing_time", start.elapsed()); + let start = Instant::now(); + self.process_file(file).await?; + metrics::histogram!("coverage_object_processing_time") + .record(start.elapsed()); } } } diff --git a/mobile_verifier/src/data_session.rs b/mobile_verifier/src/data_session.rs index 9873febc3..2aa744177 100644 --- a/mobile_verifier/src/data_session.rs +++ b/mobile_verifier/src/data_session.rs @@ -73,7 +73,6 @@ impl DataSessionIngestor { tracing::info!("starting DataSessionIngestor"); tokio::spawn(async move { loop { - #[rustfmt::skip] tokio::select! { biased; _ = shutdown.clone() => { @@ -81,12 +80,10 @@ impl DataSessionIngestor { break; } Some(file) = self.receiver.recv() => { - let start = Instant::now(); - self.process_file(file).await?; - metrics::histogram!( - "valid_data_transfer_session_processing_time", - start.elapsed() - ); + let start = Instant::now(); + self.process_file(file).await?; + metrics::histogram!("valid_data_transfer_session_processing_time") + .record(start.elapsed()); } } } @@ -115,7 +112,8 @@ impl DataSessionIngestor { .try_fold(transaction, |mut transaction, report| async move { let data_session = HotspotDataSession::from_valid_data_session(report, file_ts); data_session.save(&mut transaction).await?; - metrics::increment_counter!("oracles_mobile_verifier_ingest_hotspot_data_session"); + metrics::counter!("oracles_mobile_verifier_ingest_hotspot_data_session") + .increment(1); Ok(transaction) }) .await? diff --git a/mobile_verifier/src/heartbeats/cbrs.rs b/mobile_verifier/src/heartbeats/cbrs.rs index e8b0a097e..3560c1e60 100644 --- a/mobile_verifier/src/heartbeats/cbrs.rs +++ b/mobile_verifier/src/heartbeats/cbrs.rs @@ -122,7 +122,6 @@ where let location_cache = LocationCache::new(&self.pool); loop { - #[rustfmt::skip] tokio::select! { biased; _ = shutdown.clone() => { @@ -130,15 +129,16 @@ where break; } Some(file) = self.heartbeats.recv() => { - let start = Instant::now(); - self.process_file( + let start = Instant::now(); + self.process_file( file, &heartbeat_cache, &coverage_claim_time_cache, &coverage_object_cache, &location_cache, - ).await?; - metrics::histogram!("cbrs_heartbeat_processing_time", start.elapsed()); + ).await?; + metrics::histogram!("cbrs_heartbeat_processing_time") + .record(start.elapsed()); } } } diff --git a/mobile_verifier/src/heartbeats/wifi.rs b/mobile_verifier/src/heartbeats/wifi.rs index bd5337a6d..03a3701a2 100644 --- a/mobile_verifier/src/heartbeats/wifi.rs +++ b/mobile_verifier/src/heartbeats/wifi.rs @@ -119,7 +119,6 @@ where let location_cache = LocationCache::new(&self.pool); loop { - #[rustfmt::skip] tokio::select! { biased; _ = shutdown.clone() => { @@ -127,15 +126,16 @@ where break; } Some(file) = self.heartbeats.recv() => { - let start = Instant::now(); - self.process_file( + let start = Instant::now(); + self.process_file( file, &heartbeat_cache, &coverage_claim_time_cache, &coverage_object_cache, &location_cache - ).await?; - metrics::histogram!("wifi_heartbeat_processing_time", start.elapsed()); + ).await?; + metrics::histogram!("wifi_heartbeat_processing_time") + .record(start.elapsed()); } } } diff --git a/mobile_verifier/src/speedtests.rs b/mobile_verifier/src/speedtests.rs index 9f6bc3d1d..2704e2da4 100644 --- a/mobile_verifier/src/speedtests.rs +++ b/mobile_verifier/src/speedtests.rs @@ -123,7 +123,6 @@ where pub async fn run(mut self, shutdown: triggered::Listener) -> anyhow::Result<()> { loop { - #[rustfmt::skip] tokio::select! { biased; _ = shutdown.clone() => { @@ -131,9 +130,10 @@ where break; } Some(file) = self.speedtests.recv() => { - let start = Instant::now(); - self.process_file(file).await?; - metrics::histogram!("speedtest_processing_time", start.elapsed()); + let start = Instant::now(); + self.process_file(file).await?; + metrics::histogram!("speedtest_processing_time") + .record(start.elapsed()); } } } diff --git a/mobile_verifier/src/subscriber_location.rs b/mobile_verifier/src/subscriber_location.rs index 13ca7de01..066006a57 100644 --- a/mobile_verifier/src/subscriber_location.rs +++ b/mobile_verifier/src/subscriber_location.rs @@ -105,17 +105,14 @@ where async fn run(mut self, shutdown: triggered::Listener) -> anyhow::Result<()> { loop { - #[rustfmt::skip] tokio::select! { biased; _ = shutdown.clone() => break, Some(file) = self.reports_receiver.recv() => { - let start = Instant::now(); + let start = Instant::now(); self.process_file(file).await?; - metrics::histogram!( - "subscriber_location_processing_time", - start.elapsed() - ); + metrics::histogram!("subscriber_location_processing_time") + .record(start.elapsed()); } } } diff --git a/mobile_verifier/src/telemetry.rs b/mobile_verifier/src/telemetry.rs index 4bfe3be2a..224fc3ab3 100644 --- a/mobile_verifier/src/telemetry.rs +++ b/mobile_verifier/src/telemetry.rs @@ -13,9 +13,9 @@ pub async fn initialize(db: &Pool) -> anyhow::Result<()> { } pub fn last_rewarded_end_time(timestamp: DateTime) { - metrics::gauge!(LAST_REWARDED_END_TIME, timestamp.timestamp() as f64); + metrics::gauge!(LAST_REWARDED_END_TIME).set(timestamp.timestamp() as f64); } pub fn data_transfer_rewards_scale(scale: f64) { - metrics::gauge!(DATA_TRANSFER_REWARDS_SCALE, scale); + metrics::gauge!(DATA_TRANSFER_REWARDS_SCALE).set(scale); } diff --git a/poc_entropy/src/server.rs b/poc_entropy/src/server.rs index be1843a26..e771afffb 100644 --- a/poc_entropy/src/server.rs +++ b/poc_entropy/src/server.rs @@ -18,7 +18,7 @@ impl PocEntropy for EntropyServer { _request: tonic::Request, ) -> Result, tonic::Status> { let entropy = &*self.entropy_watch.borrow(); - metrics::increment_counter!("entropy_server_get_count"); + metrics::counter!("entropy_server_get_count").increment(1); Ok(tonic::Response::new(entropy.into())) } } diff --git a/price/src/metrics.rs b/price/src/metrics.rs index f13813e8a..c39b53996 100644 --- a/price/src/metrics.rs +++ b/price/src/metrics.rs @@ -12,9 +12,9 @@ impl Metrics { } fn increment_counter(counter: String, token_type: BlockchainTokenTypeV1) { - metrics::increment_counter!(counter, "token_type" => token_type.as_str_name()); + metrics::counter!(counter, "token_type" => token_type.as_str_name()).increment(1); } fn set_gauge(token_type: BlockchainTokenTypeV1, value: f64) { - metrics::gauge!(PRICE_GAUGE, value, "token_type" => token_type.as_str_name()); + metrics::gauge!(PRICE_GAUGE, "token_type" => token_type.as_str_name()).set(value); } diff --git a/reward_index/src/telemetry.rs b/reward_index/src/telemetry.rs index 7589b68df..4437b9ed1 100644 --- a/reward_index/src/telemetry.rs +++ b/reward_index/src/telemetry.rs @@ -16,7 +16,7 @@ pub async fn last_reward_processed_time( db: &Pool, datetime: DateTime, ) -> anyhow::Result<()> { - metrics::gauge!(LAST_REWARD_PROCESSED_TIME, datetime.timestamp() as f64); + metrics::gauge!(LAST_REWARD_PROCESSED_TIME).set(datetime.timestamp() as f64); meta::store(db, LAST_REWARD_PROCESSED_TIME, datetime.timestamp()).await?; Ok(()) diff --git a/solana/src/burn.rs b/solana/src/burn.rs index d31db7233..3103a4cc2 100644 --- a/solana/src/burn.rs +++ b/solana/src/burn.rs @@ -141,9 +141,9 @@ impl SolanaNetwork for SolanaRpc { if self.payers_to_monitor.contains(payer) { metrics::gauge!( "balance", - account_layout.amount as f64, "payer" => payer.to_string() - ); + ) + .set(account_layout.amount as f64); } Ok(account_layout.amount)