prometheus::histogram_opts
[−]
[src]
macro_rules! histogram_opts { ( $ NAME : expr , $ HELP : expr , [ $ ( $ BUCKETS : expr ) , * ] ) => { ... }; ( $ NAME : expr , $ HELP : expr , $ CONST_LABELS : expr , [ $ ( $ BUCKETS : expr ) , + ] ) => { ... }; ( $ NAME : expr , $ HELP : expr $ ( , $ CONST_LABELS : expr ) * ) => { ... }; }
Create a HistogramOpts
Examples
let name = "test_histogram_opts"; let help = "test opts help"; let opts = histogram_opts!(name, help); assert_eq!(opts.common_opts.name, name); assert_eq!(opts.common_opts.help, help); let opts = histogram_opts!(name, help, labels!{"test" => "hello", "foo" => "bar",}); assert_eq!(opts.common_opts.const_labels.len(), 2); assert!(opts.common_opts.const_labels.get("foo").is_some()); assert_eq!(opts.common_opts.const_labels.get("foo").unwrap(), "bar"); let opts = histogram_opts!(name, help, labels!{"test" => "hello", "foo" => "bar",}); assert_eq!(opts.common_opts.const_labels.len(), 2); assert!(opts.common_opts.const_labels.get("test").is_some()); assert_eq!(opts.common_opts.const_labels.get("test").unwrap(), "hello"); let opts = histogram_opts!(name, help, []); assert_eq!(opts.buckets.len(), 0); let opts = histogram_opts!(name, help, [Vec::from(&[1.0, 2.0] as &[f64])]); assert_eq!(opts.buckets.len(), 2); let opts = histogram_opts!(name, help, labels!{"a" => "c",}, [Vec::from(&[1.0, 2.0] as &[f64]), Vec::from(&[3.0] as &[f64])]); assert_eq!(opts.buckets.len(), 3); let opts = histogram_opts!(name, help, labels!{"a" => "c",}, [linear_buckets(1.0, 0.5, 4).unwrap(), exponential_buckets(4.0, 1.1, 4).unwrap()]); assert_eq!(opts.buckets.len(), 8);