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);