Skip to content

Commit 4ef705d

Browse files
authored
Merge branch 'main' into log-attributes-update
2 parents 34c5fc2 + ff9d50b commit 4ef705d

File tree

10 files changed

+39
-40
lines changed

10 files changed

+39
-40
lines changed

opentelemetry-sdk/src/metrics/internal/aggregate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ pub(crate) struct AggregateBuilder<T> {
7171

7272
type Filter = Arc<dyn Fn(&KeyValue) -> bool + Send + Sync>;
7373

74-
impl<T: Number<T>> AggregateBuilder<T> {
74+
impl<T: Number> AggregateBuilder<T> {
7575
pub(crate) fn new(temporality: Option<Temporality>, filter: Option<Filter>) -> Self {
7676
AggregateBuilder {
7777
temporality,

opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ struct ExpoHistogramDataPoint<T> {
3232
zero_count: u64,
3333
}
3434

35-
impl<T: Number<T>> ExpoHistogramDataPoint<T> {
35+
impl<T: Number> ExpoHistogramDataPoint<T> {
3636
fn new(max_size: i32, max_scale: i8, record_min_max: bool, record_sum: bool) -> Self {
3737
ExpoHistogramDataPoint {
3838
count: 0,
@@ -50,7 +50,7 @@ impl<T: Number<T>> ExpoHistogramDataPoint<T> {
5050
}
5151
}
5252

53-
impl<T: Number<T>> ExpoHistogramDataPoint<T> {
53+
impl<T: Number> ExpoHistogramDataPoint<T> {
5454
/// Adds a new measurement to the histogram.
5555
///
5656
/// It will rescale the buckets if needed.
@@ -322,7 +322,7 @@ pub(crate) struct ExpoHistogram<T> {
322322
start: Mutex<SystemTime>,
323323
}
324324

325-
impl<T: Number<T>> ExpoHistogram<T> {
325+
impl<T: Number> ExpoHistogram<T> {
326326
/// Create a new exponential histogram.
327327
pub(crate) fn new(
328328
max_size: u32,
@@ -535,7 +535,7 @@ mod tests {
535535
run_data_point_record::<i64>();
536536
}
537537

538-
fn run_data_point_record<T: Number<T> + Neg<Output = T> + From<u32>>() {
538+
fn run_data_point_record<T: Number + Neg<Output = T> + From<u32>>() {
539539
struct TestCase<T> {
540540
max_size: i32,
541541
values: Vec<T>,
@@ -695,15 +695,15 @@ mod tests {
695695
}
696696
}
697697

698-
fn run_min_max_sum<T: Number<T> + From<u32>>() {
698+
fn run_min_max_sum<T: Number + From<u32>>() {
699699
let alice = &[KeyValue::new("user", "alice")][..];
700700
struct Expected<T> {
701701
min: T,
702702
max: T,
703703
sum: T,
704704
count: usize,
705705
}
706-
impl<T: Number<T>> Expected<T> {
706+
impl<T: Number> Expected<T> {
707707
fn new(min: T, max: T, sum: T, count: usize) -> Self {
708708
Expected {
709709
min,
@@ -1229,7 +1229,7 @@ mod tests {
12291229
(Box::new(m), Box::new(ca))
12301230
}
12311231

1232-
fn hist_aggregation<T: Number<T> + From<u32>>() {
1232+
fn hist_aggregation<T: Number + From<u32>>() {
12331233
let max_size = 4;
12341234
let max_scale = 20;
12351235
let record_min_max = true;
@@ -1449,7 +1449,7 @@ mod tests {
14491449
}
14501450
}
14511451

1452-
fn assert_aggregation_eq<T: Number<T> + PartialEq>(
1452+
fn assert_aggregation_eq<T: Number + PartialEq>(
14531453
a: Box<dyn Aggregation>,
14541454
b: Box<dyn Aggregation>,
14551455
ignore_timestamp: bool,
@@ -1558,7 +1558,7 @@ mod tests {
15581558
}
15591559
}
15601560

1561-
fn assert_data_points_eq<T: Number<T>>(
1561+
fn assert_data_points_eq<T: Number>(
15621562
a: &data::DataPoint<T>,
15631563
b: &data::DataPoint<T>,
15641564
ignore_timestamp: bool,
@@ -1582,7 +1582,7 @@ mod tests {
15821582
}
15831583
}
15841584

1585-
fn assert_hist_data_points_eq<T: Number<T>>(
1585+
fn assert_hist_data_points_eq<T: Number>(
15861586
a: &data::HistogramDataPoint<T>,
15871587
b: &data::HistogramDataPoint<T>,
15881588
ignore_timestamp: bool,
@@ -1615,7 +1615,7 @@ mod tests {
16151615
}
16161616
}
16171617

1618-
fn assert_exponential_hist_data_points_eq<T: Number<T>>(
1618+
fn assert_exponential_hist_data_points_eq<T: Number>(
16191619
a: &data::ExponentialHistogramDataPoint<T>,
16201620
b: &data::ExponentialHistogramDataPoint<T>,
16211621
ignore_timestamp: bool,

opentelemetry-sdk/src/metrics/internal/histogram.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ struct HistogramTracker<T> {
2222
buckets: Mutex<Buckets<T>>,
2323
}
2424

25-
impl<T: Number<T>> AtomicTracker<T> for HistogramTracker<T> {
25+
impl<T: Number> AtomicTracker<T> for HistogramTracker<T> {
2626
fn update_histogram(&self, index: usize, value: T) {
2727
let mut buckets = match self.buckets.lock() {
2828
Ok(guard) => guard,
@@ -34,7 +34,7 @@ impl<T: Number<T>> AtomicTracker<T> for HistogramTracker<T> {
3434
}
3535
}
3636

37-
impl<T: Number<T>> AtomicallyUpdate<T> for HistogramTracker<T> {
37+
impl<T: Number> AtomicallyUpdate<T> for HistogramTracker<T> {
3838
type AtomicTracker = HistogramTracker<T>;
3939

4040
fn new_atomic_tracker(buckets_count: Option<usize>) -> Self::AtomicTracker {
@@ -54,7 +54,7 @@ struct Buckets<T> {
5454
max: T,
5555
}
5656

57-
impl<T: Number<T>> Buckets<T> {
57+
impl<T: Number> Buckets<T> {
5858
/// returns buckets with `n` bins.
5959
fn new(n: usize) -> Buckets<T> {
6060
Buckets {
@@ -93,15 +93,15 @@ impl<T: Number<T>> Buckets<T> {
9393

9494
/// Summarizes a set of measurements as a histogram with explicitly defined
9595
/// buckets.
96-
pub(crate) struct Histogram<T: Number<T>> {
96+
pub(crate) struct Histogram<T: Number> {
9797
value_map: ValueMap<HistogramTracker<T>, T, HistogramUpdate>,
9898
bounds: Vec<f64>,
9999
record_min_max: bool,
100100
record_sum: bool,
101101
start: Mutex<SystemTime>,
102102
}
103103

104-
impl<T: Number<T>> Histogram<T> {
104+
impl<T: Number> Histogram<T> {
105105
pub(crate) fn new(boundaries: Vec<f64>, record_min_max: bool, record_sum: bool) -> Self {
106106
let buckets_count = boundaries.len() + 1;
107107
let mut histogram = Histogram {

opentelemetry-sdk/src/metrics/internal/last_value.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ use opentelemetry::KeyValue;
1010
use super::{Assign, AtomicTracker, Number, ValueMap};
1111

1212
/// Summarizes a set of measurements as the last one made.
13-
pub(crate) struct LastValue<T: Number<T>> {
13+
pub(crate) struct LastValue<T: Number> {
1414
value_map: ValueMap<T, T, Assign>,
1515
start: Mutex<SystemTime>,
1616
}
1717

18-
impl<T: Number<T>> LastValue<T> {
18+
impl<T: Number> LastValue<T> {
1919
pub(crate) fn new() -> Self {
2020
LastValue {
2121
value_map: ValueMap::new(),

opentelemetry-sdk/src/metrics/internal/mod.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ impl Operation for Assign {
4949
///
5050
/// This structure is parametrized by an `Operation` that indicates how
5151
/// updates to the underlying value trackers should be performed.
52-
pub(crate) struct ValueMap<AU: AtomicallyUpdate<T>, T: Number<T>, O> {
52+
pub(crate) struct ValueMap<AU: AtomicallyUpdate<T>, T: Number, O> {
5353
/// Trackers store the values associated with different attribute sets.
5454
trackers: RwLock<HashMap<Vec<KeyValue>, Arc<AU::AtomicTracker>>>,
5555
/// Number of different attribute set stored in the `trackers` map.
@@ -63,13 +63,13 @@ pub(crate) struct ValueMap<AU: AtomicallyUpdate<T>, T: Number<T>, O> {
6363
phantom: PhantomData<O>,
6464
}
6565

66-
impl<AU: AtomicallyUpdate<T>, T: Number<T>, O> Default for ValueMap<AU, T, O> {
66+
impl<AU: AtomicallyUpdate<T>, T: Number, O> Default for ValueMap<AU, T, O> {
6767
fn default() -> Self {
6868
ValueMap::new()
6969
}
7070
}
7171

72-
impl<AU: AtomicallyUpdate<T>, T: Number<T>, O> ValueMap<AU, T, O> {
72+
impl<AU: AtomicallyUpdate<T>, T: Number, O> ValueMap<AU, T, O> {
7373
fn new() -> Self {
7474
ValueMap {
7575
trackers: RwLock::new(HashMap::new()),
@@ -93,7 +93,7 @@ impl<AU: AtomicallyUpdate<T>, T: Number<T>, O> ValueMap<AU, T, O> {
9393
}
9494
}
9595

96-
impl<AU: AtomicallyUpdate<T>, T: Number<T>, O: Operation> ValueMap<AU, T, O> {
96+
impl<AU: AtomicallyUpdate<T>, T: Number, O: Operation> ValueMap<AU, T, O> {
9797
fn measure(&self, measurement: T, attributes: &[KeyValue], index: usize) {
9898
if attributes.is_empty() {
9999
O::update_tracker(&self.no_attribute_tracker, measurement, index);
@@ -171,10 +171,10 @@ pub(crate) trait AtomicallyUpdate<T: Default> {
171171
fn new_atomic_tracker(buckets_count: Option<usize>) -> Self::AtomicTracker;
172172
}
173173

174-
pub(crate) trait Number<T: Default>:
175-
Add<Output = T>
174+
pub(crate) trait Number:
175+
Add<Output = Self>
176176
+ AddAssign
177-
+ Sub<Output = T>
177+
+ Sub<Output = Self>
178178
+ PartialOrd
179179
+ fmt::Debug
180180
+ Clone
@@ -184,15 +184,15 @@ pub(crate) trait Number<T: Default>:
184184
+ Send
185185
+ Sync
186186
+ 'static
187-
+ AtomicallyUpdate<T>
187+
+ AtomicallyUpdate<Self>
188188
{
189189
fn min() -> Self;
190190
fn max() -> Self;
191191

192192
fn into_float(self) -> f64;
193193
}
194194

195-
impl Number<i64> for i64 {
195+
impl Number for i64 {
196196
fn min() -> Self {
197197
i64::MIN
198198
}
@@ -206,7 +206,7 @@ impl Number<i64> for i64 {
206206
self as f64
207207
}
208208
}
209-
impl Number<u64> for u64 {
209+
impl Number for u64 {
210210
fn min() -> Self {
211211
u64::MIN
212212
}
@@ -220,7 +220,7 @@ impl Number<u64> for u64 {
220220
self as f64
221221
}
222222
}
223-
impl Number<f64> for f64 {
223+
impl Number for f64 {
224224
fn min() -> Self {
225225
f64::MIN
226226
}

opentelemetry-sdk/src/metrics/internal/precomputed_sum.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ use std::{
1010
};
1111

1212
/// Summarizes a set of pre-computed sums as their arithmetic sum.
13-
pub(crate) struct PrecomputedSum<T: Number<T>> {
13+
pub(crate) struct PrecomputedSum<T: Number> {
1414
value_map: ValueMap<T, T, Assign>,
1515
monotonic: bool,
1616
start: Mutex<SystemTime>,
1717
reported: Mutex<HashMap<Vec<KeyValue>, T>>,
1818
}
1919

20-
impl<T: Number<T>> PrecomputedSum<T> {
20+
impl<T: Number> PrecomputedSum<T> {
2121
pub(crate) fn new(monotonic: bool) -> Self {
2222
PrecomputedSum {
2323
value_map: ValueMap::new(),

opentelemetry-sdk/src/metrics/internal/sum.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ use super::{AtomicTracker, Number};
1111
use super::{Increment, ValueMap};
1212

1313
/// Summarizes a set of measurements made as their arithmetic sum.
14-
pub(crate) struct Sum<T: Number<T>> {
14+
pub(crate) struct Sum<T: Number> {
1515
value_map: ValueMap<T, T, Increment>,
1616
monotonic: bool,
1717
start: Mutex<SystemTime>,
1818
}
1919

20-
impl<T: Number<T>> Sum<T> {
20+
impl<T: Number> Sum<T> {
2121
/// Returns an aggregator that summarizes a set of measurements as their
2222
/// arithmetic sum.
2323
///

opentelemetry-sdk/src/metrics/meter.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ const INSTRUMENT_UNIT_INVALID_CHAR: &str = "characters in instrument unit must b
4242
/// See the [Meter API] docs for usage.
4343
///
4444
/// [Meter API]: opentelemetry::metrics::Meter
45-
pub struct SdkMeter {
45+
pub(crate) struct SdkMeter {
4646
scope: Scope,
4747
pipes: Arc<Pipelines>,
4848
u64_resolver: Resolver<u64>,
@@ -481,7 +481,7 @@ struct InstrumentResolver<'a, T> {
481481

482482
impl<'a, T> InstrumentResolver<'a, T>
483483
where
484-
T: Number<T>,
484+
T: Number,
485485
{
486486
fn new(meter: &'a SdkMeter, resolve: &'a Resolver<T>) -> Self {
487487
InstrumentResolver { meter, resolve }

opentelemetry-sdk/src/metrics/mod.rs

-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ pub(crate) mod view;
5555
pub use aggregation::*;
5656
pub use instrument::*;
5757
pub use manual_reader::*;
58-
pub use meter::*;
5958
pub use meter_provider::*;
6059
pub use periodic_reader::*;
6160
pub use pipeline::Pipeline;

opentelemetry-sdk/src/metrics/pipeline.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ struct Inserter<T> {
211211

212212
impl<T> Inserter<T>
213213
where
214-
T: Number<T>,
214+
T: Number,
215215
{
216216
fn new(p: Arc<Pipeline>, vc: Arc<Mutex<HashMap<Cow<'static, str>, InstrumentId>>>) -> Self {
217217
Inserter {
@@ -465,7 +465,7 @@ type AggregateFns<T> = (
465465
/// Returns new aggregate functions for the given params.
466466
///
467467
/// If the aggregation is unknown or temporality is invalid, an error is returned.
468-
fn aggregate_fn<T: Number<T>>(
468+
fn aggregate_fn<T: Number>(
469469
b: AggregateBuilder<T>,
470470
agg: &aggregation::Aggregation,
471471
kind: InstrumentKind,
@@ -668,7 +668,7 @@ pub(crate) struct Resolver<T> {
668668

669669
impl<T> Resolver<T>
670670
where
671-
T: Number<T>,
671+
T: Number,
672672
{
673673
pub(crate) fn new(
674674
pipelines: Arc<Pipelines>,

0 commit comments

Comments
 (0)