prima_datadog/macros/
gauge.rs

1/// Report an arbitrary value as a gauge
2/// NOTE: Try to minimise variation in tag values (avoid things like timestamps or ids). See note in lib docs!
3#[macro_export]
4macro_rules! gauge {
5    ($stat:expr, $val:expr) => {
6        $crate::Datadog::gauge($stat, $val, $crate::EMPTY_TAGS);
7    };
8    ($stat:path, $val:expr) => {
9        $crate::Datadog::gauge($stat.as_ref(), $val, $crate::EMPTY_TAGS);
10    };
11    ($stat:expr, $val:expr; $( $key:literal => $value:literal ), *) => {
12        $crate::Datadog::gauge($stat, $val, &[$(::core::concat!($key, ":", $value)), *]);
13    };
14    ($stat:path, $val:expr; $( $key:literal => $value:literal ), *) => {
15        $crate::Datadog::gauge($stat.as_ref(), $val, &[$(::core::concat!($key, ":", $value)), *]);
16    };
17    ($stat:expr, $val:expr; $( $key:expr => $value:expr ), *) => {
18        $crate::Datadog::gauge($stat, $val, &[$(::std::format!("{}:{}", $key, $value).as_str()), *]);
19    };
20    ($stat:path, $val:expr; $( $key:expr => $value:expr ), *) => {
21        $crate::Datadog::gauge($stat.as_ref(), $val, &[$(::std::format!("{}:{}", $key, $value).as_str()), *]);
22    };
23}