1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/// A label that can be applied to metrics
///
/// For example, with the following label applied to a counter metric named
/// `requests`,
///
/// ```
/// # use hesione::Label;
/// let l = Label {
/// name: "response_code".to_string(),
/// value: "404".to_string(),
/// };
/// ```
///
/// The output Prometheus would see will look like this:
///
/// ```text
/// requests{response_code="404"} 1337
/// ```
/// Easily generate metric labels
///
/// ```
/// # use hesione::{Label, labels};
/// # let addr = "placeholder";
/// let labels = labels! {
/// "response_code": "404".to_string(),
/// "client_ip": addr.to_string(),
/// }.unwrap();
/// ```
///
/// This will generate a `Result<BTreeMap<Label>, NameError>` where the label
/// name is the string literal on the left of the `:` and the value is the
/// evaluated expression on the right.