@@ -28,6 +28,17 @@ pub trait MeterProvider: fmt::Debug {
28
28
29
29
/// Meter is the OpenTelemetry metric API, based on a sdk-defined `MeterCore`
30
30
/// implementation and the `Meter` library name.
31
+ ///
32
+ /// # Instruments
33
+ ///
34
+ /// | **Name** | Instrument kind | Function(argument) | Default aggregation | Notes |
35
+ /// | ----------------------- | ----- | --------- | ------------- | --- |
36
+ /// | **Counter** | Synchronous adding monotonic | Add(increment) | Sum | Per-request, part of a monotonic sum |
37
+ /// | **UpDownCounter** | Synchronous adding | Add(increment) | Sum | Per-request, part of a non-monotonic sum |
38
+ /// | **ValueRecorder** | Synchronous | Record(value) | [TBD issue 636](https://github.com/open-telemetry/opentelemetry-specification/issues/636) | Per-request, any grouping measurement |
39
+ /// | **SumObserver** | Asynchronous adding monotonic | Observe(sum) | Sum | Per-interval, reporting a monotonic sum |
40
+ /// | **UpDownSumObserver** | Asynchronous adding | Observe(sum) | Sum | Per-interval, reporting a non-monotonic sum |
41
+ /// | **ValueObserver** | Asynchronous | Observe(value) | LastValue | Per-interval, any grouping measurement |
31
42
#[ derive( Debug ) ]
32
43
pub struct Meter {
33
44
instrumentation_library : InstrumentationLibrary ,
@@ -50,125 +61,98 @@ impl Meter {
50
61
}
51
62
}
52
63
53
- #[ deprecated( note = "use instrumentation_library() instead" ) ]
54
- #[ allow( dead_code) ]
55
- pub ( crate ) fn instrumentation_name ( & self ) -> & str {
56
- self . instrumentation_library . name
57
- }
58
-
59
64
pub ( crate ) fn instrumentation_library ( & self ) -> InstrumentationLibrary {
60
65
self . instrumentation_library
61
66
}
62
67
63
- /// Creates a new floating point `CounterBuilder` for `f64` values with the given name.
64
- pub fn f64_counter < T > ( & self , name : T ) -> CounterBuilder < ' _ , f64 >
65
- where
66
- T : Into < String > ,
67
- {
68
- CounterBuilder :: new ( self , name. into ( ) , NumberKind :: F64 )
69
- }
70
-
71
- /// Creates a new floating point `UpDownCounterBuilder` for an `f64` up down counter with the given name.
72
- pub fn f64_up_down_counter < T > ( & self , name : T ) -> UpDownCounterBuilder < ' _ , f64 >
68
+ /// Creates a new integer `CounterBuilder` for `u64` values with the given name.
69
+ pub fn u64_counter < T > ( & self , name : T ) -> CounterBuilder < ' _ , u64 >
73
70
where
74
71
T : Into < String > ,
75
72
{
76
- UpDownCounterBuilder :: new ( self , name. into ( ) , NumberKind :: F64 )
73
+ CounterBuilder :: new ( self , name. into ( ) , NumberKind :: U64 )
77
74
}
78
75
79
- /// Creates a new floating point `ValueRecorderBuilder ` for `f64` values with the given name.
80
- pub fn f64_value_recorder < T > ( & self , name : T ) -> ValueRecorderBuilder < ' _ , f64 >
76
+ /// Creates a new floating point `CounterBuilder ` for `f64` values with the given name.
77
+ pub fn f64_counter < T > ( & self , name : T ) -> CounterBuilder < ' _ , f64 >
81
78
where
82
79
T : Into < String > ,
83
80
{
84
- ValueRecorderBuilder :: new ( self , name. into ( ) , NumberKind :: F64 )
81
+ CounterBuilder :: new ( self , name. into ( ) , NumberKind :: F64 )
85
82
}
86
83
87
- /// Creates a new floating point `SumObserverBuilder ` for `f64` values with the given name and callback .
88
- pub fn f64_sum_observer < T , F > ( & self , name : T , callback : F ) -> SumObserverBuilder < ' _ , f64 >
84
+ /// Creates a new integer `UpDownCounterBuilder ` for an `i64` up down counter with the given name.
85
+ pub fn i64_up_down_counter < T > ( & self , name : T ) -> UpDownCounterBuilder < ' _ , i64 >
89
86
where
90
87
T : Into < String > ,
91
- F : Fn ( ObserverResult < f64 > ) + Send + Sync + ' static ,
92
88
{
93
- SumObserverBuilder :: new (
94
- self ,
95
- name. into ( ) ,
96
- Some ( AsyncRunner :: F64 ( Box :: new ( callback) ) ) ,
97
- NumberKind :: F64 ,
98
- )
89
+ UpDownCounterBuilder :: new ( self , name. into ( ) , NumberKind :: I64 )
99
90
}
100
91
101
- /// Creates a new floating point `UpDownSumObserverBuilder` for `f64` values with the given name and callback.
102
- pub fn f64_up_down_sum_observer < T , F > (
103
- & self ,
104
- name : T ,
105
- callback : F ,
106
- ) -> UpDownSumObserverBuilder < ' _ , f64 >
92
+ /// Creates a new floating point `UpDownCounterBuilder` for an `f64` up down counter with the given name.
93
+ pub fn f64_up_down_counter < T > ( & self , name : T ) -> UpDownCounterBuilder < ' _ , f64 >
107
94
where
108
95
T : Into < String > ,
109
- F : Fn ( ObserverResult < f64 > ) + Send + Sync + ' static ,
110
96
{
111
- UpDownSumObserverBuilder :: new (
112
- self ,
113
- name. into ( ) ,
114
- Some ( AsyncRunner :: F64 ( Box :: new ( callback) ) ) ,
115
- NumberKind :: F64 ,
116
- )
97
+ UpDownCounterBuilder :: new ( self , name. into ( ) , NumberKind :: F64 )
117
98
}
118
99
119
- /// Creates a new floating point `ValueObserverBuilder ` for `f64 ` values with the given name and callback .
120
- pub fn f64_value_observer < T , F > ( & self , name : T , callback : F ) -> ValueObserverBuilder < ' _ , f64 >
100
+ /// Creates a new `ValueRecorderBuilder ` for `i64 ` values with the given name.
101
+ pub fn i64_value_recorder < T > ( & self , name : T ) -> ValueRecorderBuilder < ' _ , i64 >
121
102
where
122
103
T : Into < String > ,
123
- F : Fn ( ObserverResult < f64 > ) + Send + Sync + ' static ,
124
104
{
125
- ValueObserverBuilder :: new (
126
- self ,
127
- name. into ( ) ,
128
- Some ( AsyncRunner :: F64 ( Box :: new ( callback) ) ) ,
129
- NumberKind :: F64 ,
130
- )
105
+ ValueRecorderBuilder :: new ( self , name. into ( ) , NumberKind :: I64 )
131
106
}
132
107
133
- /// Creates a new integer `CounterBuilder ` for `i64 ` values with the given name.
134
- pub fn i64_counter < T > ( & self , name : T ) -> CounterBuilder < ' _ , i64 >
108
+ /// Creates a new `ValueRecorderBuilder ` for `u64 ` values with the given name.
109
+ pub fn u64_value_recorder < T > ( & self , name : T ) -> ValueRecorderBuilder < ' _ , u64 >
135
110
where
136
111
T : Into < String > ,
137
112
{
138
- CounterBuilder :: new ( self , name. into ( ) , NumberKind :: I64 )
113
+ ValueRecorderBuilder :: new ( self , name. into ( ) , NumberKind :: U64 )
139
114
}
140
115
141
- /// Creates a new integer `UpDownCounterBuilder ` for an `i64` up down counter with the given name.
142
- pub fn i64_up_down_counter < T > ( & self , name : T ) -> UpDownCounterBuilder < ' _ , i64 >
116
+ /// Creates a new `ValueRecorderBuilder ` for `f64` values with the given name.
117
+ pub fn f64_value_recorder < T > ( & self , name : T ) -> ValueRecorderBuilder < ' _ , f64 >
143
118
where
144
119
T : Into < String > ,
145
120
{
146
- UpDownCounterBuilder :: new ( self , name. into ( ) , NumberKind :: I64 )
121
+ ValueRecorderBuilder :: new ( self , name. into ( ) , NumberKind :: F64 )
147
122
}
148
123
149
- /// Creates a new integer `ValueRecorderBuilder` for `i64` values with the given name.
150
- pub fn i64_value_recorder < T > ( & self , name : T ) -> ValueRecorderBuilder < ' _ , i64 >
124
+ /// Creates a new integer `SumObserverBuilder` for `u64` values with the given
125
+ /// name and callback
126
+ pub fn u64_sum_observer < T , F > ( & self , name : T , callback : F ) -> SumObserverBuilder < ' _ , u64 >
151
127
where
152
128
T : Into < String > ,
129
+ F : Fn ( ObserverResult < u64 > ) + Send + Sync + ' static ,
153
130
{
154
- ValueRecorderBuilder :: new ( self , name. into ( ) , NumberKind :: I64 )
131
+ SumObserverBuilder :: new (
132
+ self ,
133
+ name. into ( ) ,
134
+ Some ( AsyncRunner :: U64 ( Box :: new ( callback) ) ) ,
135
+ NumberKind :: U64 ,
136
+ )
155
137
}
156
138
157
- /// Creates a new integer `SumObserverBuilder` for `i64` values with the given name and callback.
158
- pub fn i64_sum_observer < T , F > ( & self , name : T , callback : F ) -> SumObserverBuilder < ' _ , i64 >
139
+ /// Creates a new floating point `SumObserverBuilder` for `f64` values with the
140
+ /// given name and callback
141
+ pub fn f64_sum_observer < T , F > ( & self , name : T , callback : F ) -> SumObserverBuilder < ' _ , f64 >
159
142
where
160
143
T : Into < String > ,
161
- F : Fn ( ObserverResult < i64 > ) + Send + Sync + ' static ,
144
+ F : Fn ( ObserverResult < f64 > ) + Send + Sync + ' static ,
162
145
{
163
146
SumObserverBuilder :: new (
164
147
self ,
165
148
name. into ( ) ,
166
- Some ( AsyncRunner :: I64 ( Box :: new ( callback) ) ) ,
167
- NumberKind :: I64 ,
149
+ Some ( AsyncRunner :: F64 ( Box :: new ( callback) ) ) ,
150
+ NumberKind :: F64 ,
168
151
)
169
152
}
170
153
171
- /// Creates a new integer `UpDownSumObserverBuilder` for `i64` values with the given name and callback.
154
+ /// Creates a new integer `UpDownSumObserverBuilder` for `i64` values with the
155
+ /// given name and callback.
172
156
pub fn i64_up_down_sum_observer < T , F > (
173
157
& self ,
174
158
name : T ,
@@ -186,87 +170,67 @@ impl Meter {
186
170
)
187
171
}
188
172
189
- /// Creates a new integer `ValueObserverBuilder` for `i64` values with the given name and callback.
190
- pub fn i64_value_observer < T , F > ( & self , name : T , callback : F ) -> ValueObserverBuilder < ' _ , i64 >
173
+ /// Creates a new floating point `UpDownSumObserverBuilder` for `f64` values
174
+ /// with the given name and callback
175
+ pub fn f64_up_down_sum_observer < T , F > (
176
+ & self ,
177
+ name : T ,
178
+ callback : F ,
179
+ ) -> UpDownSumObserverBuilder < ' _ , f64 >
191
180
where
192
181
T : Into < String > ,
193
- F : Fn ( ObserverResult < i64 > ) + Send + Sync + ' static ,
182
+ F : Fn ( ObserverResult < f64 > ) + Send + Sync + ' static ,
194
183
{
195
- ValueObserverBuilder :: new (
184
+ UpDownSumObserverBuilder :: new (
196
185
self ,
197
186
name. into ( ) ,
198
- Some ( AsyncRunner :: I64 ( Box :: new ( callback) ) ) ,
199
- NumberKind :: I64 ,
187
+ Some ( AsyncRunner :: F64 ( Box :: new ( callback) ) ) ,
188
+ NumberKind :: F64 ,
200
189
)
201
190
}
202
191
203
- /// Creates a new integer `CounterBuilder` for `u64` values with the given name.
204
- pub fn u64_counter < T > ( & self , name : T ) -> CounterBuilder < ' _ , u64 >
205
- where
206
- T : Into < String > ,
207
- {
208
- CounterBuilder :: new ( self , name. into ( ) , NumberKind :: U64 )
209
- }
210
-
211
- /// Creates a new integer `UpDownCounterBuilder` for an `u64` up down counter with the given name.
212
- pub fn u64_up_down_counter < T > ( & self , name : T ) -> UpDownCounterBuilder < ' _ , u64 >
213
- where
214
- T : Into < String > ,
215
- {
216
- UpDownCounterBuilder :: new ( self , name. into ( ) , NumberKind :: U64 )
217
- }
218
-
219
- /// Creates a new integer `ValueRecorderBuilder` for `u64` values with the given name.
220
- pub fn u64_value_recorder < T > ( & self , name : T ) -> ValueRecorderBuilder < ' _ , u64 >
221
- where
222
- T : Into < String > ,
223
- {
224
- ValueRecorderBuilder :: new ( self , name. into ( ) , NumberKind :: U64 )
225
- }
226
-
227
- /// Creates a new integer `SumObserverBuilder` for `u64` values with the given name and callback.
228
- pub fn u64_sum_observer < T , F > ( & self , name : T , callback : F ) -> SumObserverBuilder < ' _ , u64 >
192
+ /// Creates a new integer `ValueObserverBuilder` for `u64` values with the given
193
+ /// name and callback
194
+ pub fn u64_value_observer < T , F > ( & self , name : T , callback : F ) -> ValueObserverBuilder < ' _ , u64 >
229
195
where
230
196
T : Into < String > ,
231
197
F : Fn ( ObserverResult < u64 > ) + Send + Sync + ' static ,
232
198
{
233
- SumObserverBuilder :: new (
199
+ ValueObserverBuilder :: new (
234
200
self ,
235
201
name. into ( ) ,
236
202
Some ( AsyncRunner :: U64 ( Box :: new ( callback) ) ) ,
237
203
NumberKind :: U64 ,
238
204
)
239
205
}
240
206
241
- /// Creates a new integer `UpDownSumObserverBuilder` for `u64` values with the given name and callback.
242
- pub fn u64_up_down_sum_observer < T , F > (
243
- & self ,
244
- name : T ,
245
- callback : F ,
246
- ) -> UpDownSumObserverBuilder < ' _ , u64 >
207
+ /// Creates a new integer `ValueObserverBuilder` for `i64` values with the given
208
+ /// name and callback
209
+ pub fn i64_value_observer < T , F > ( & self , name : T , callback : F ) -> ValueObserverBuilder < ' _ , i64 >
247
210
where
248
211
T : Into < String > ,
249
- F : Fn ( ObserverResult < u64 > ) + Send + Sync + ' static ,
212
+ F : Fn ( ObserverResult < i64 > ) + Send + Sync + ' static ,
250
213
{
251
- UpDownSumObserverBuilder :: new (
214
+ ValueObserverBuilder :: new (
252
215
self ,
253
216
name. into ( ) ,
254
- Some ( AsyncRunner :: U64 ( Box :: new ( callback) ) ) ,
255
- NumberKind :: U64 ,
217
+ Some ( AsyncRunner :: I64 ( Box :: new ( callback) ) ) ,
218
+ NumberKind :: I64 ,
256
219
)
257
220
}
258
221
259
- /// Creates a new integer `ValueObserverBuilder` for `u64` values with the given name and callback.
260
- pub fn u64_value_observer < T , F > ( & self , name : T , callback : F ) -> ValueObserverBuilder < ' _ , u64 >
222
+ /// Creates a new floating point `ValueObserverBuilder` for `f64` values with
223
+ /// the given name and callback
224
+ pub fn f64_value_observer < T , F > ( & self , name : T , callback : F ) -> ValueObserverBuilder < ' _ , f64 >
261
225
where
262
226
T : Into < String > ,
263
- F : Fn ( ObserverResult < u64 > ) + Send + Sync + ' static ,
227
+ F : Fn ( ObserverResult < f64 > ) + Send + Sync + ' static ,
264
228
{
265
229
ValueObserverBuilder :: new (
266
230
self ,
267
231
name. into ( ) ,
268
- Some ( AsyncRunner :: U64 ( Box :: new ( callback) ) ) ,
269
- NumberKind :: U64 ,
232
+ Some ( AsyncRunner :: F64 ( Box :: new ( callback) ) ) ,
233
+ NumberKind :: F64 ,
270
234
)
271
235
}
272
236
0 commit comments