diff --git a/opentelemetry-proto/src/transform/metrics.rs b/opentelemetry-proto/src/transform/metrics.rs index fdc5ef80de..333922bb7b 100644 --- a/opentelemetry-proto/src/transform/metrics.rs +++ b/opentelemetry-proto/src/transform/metrics.rs @@ -295,8 +295,8 @@ pub mod tonic { .iter() .map(|dp| TonicNumberDataPoint { attributes: dp.attributes.iter().map(Into::into).collect(), - start_time_unix_nano: dp.start_time.map(to_nanos).unwrap_or_default(), - time_unix_nano: dp.time.map(to_nanos).unwrap_or_default(), + start_time_unix_nano: to_nanos(dp.start_time), + time_unix_nano: to_nanos(dp.time), exemplars: dp.exemplars.iter().map(Into::into).collect(), flags: TonicDataPointFlags::default() as u32, value: Some(dp.value.into()), @@ -319,8 +319,8 @@ pub mod tonic { .iter() .map(|dp| TonicNumberDataPoint { attributes: dp.attributes.iter().map(Into::into).collect(), - start_time_unix_nano: dp.start_time.map(to_nanos).unwrap_or_default(), - time_unix_nano: dp.time.map(to_nanos).unwrap_or_default(), + start_time_unix_nano: to_nanos(dp.start_time), + time_unix_nano: to_nanos(dp.time), exemplars: dp.exemplars.iter().map(Into::into).collect(), flags: TonicDataPointFlags::default() as u32, value: Some(dp.value.into()), diff --git a/opentelemetry-sdk/src/metrics/data/mod.rs b/opentelemetry-sdk/src/metrics/data/mod.rs index 4df366b868..bc1fe4d4af 100644 --- a/opentelemetry-sdk/src/metrics/data/mod.rs +++ b/opentelemetry-sdk/src/metrics/data/mod.rs @@ -97,9 +97,9 @@ pub struct DataPoint { /// time series. pub attributes: Vec, /// The time when the time series was started. - pub start_time: Option, + pub start_time: SystemTime, /// The time when the time series was recorded. - pub time: Option, + pub time: SystemTime, /// The value of this data point. pub value: T, /// The sampled [Exemplar]s collected during the time series. @@ -338,8 +338,8 @@ mod tests { fn validate_cloning_data_points() { let data_type = DataPoint { attributes: vec![KeyValue::new("key", "value")], - start_time: Some(std::time::SystemTime::now()), - time: Some(std::time::SystemTime::now()), + start_time: std::time::SystemTime::now(), + time: std::time::SystemTime::now(), value: 0u32, exemplars: vec![Exemplar { filtered_attributes: vec![], diff --git a/opentelemetry-sdk/src/metrics/internal/aggregate.rs b/opentelemetry-sdk/src/metrics/internal/aggregate.rs index cd99979923..369f947d99 100644 --- a/opentelemetry-sdk/src/metrics/internal/aggregate.rs +++ b/opentelemetry-sdk/src/metrics/internal/aggregate.rs @@ -224,8 +224,8 @@ mod tests { let mut a = Gauge { data_points: vec![DataPoint { attributes: vec![KeyValue::new("a", 1)], - start_time: Some(SystemTime::now()), - time: Some(SystemTime::now()), + start_time: SystemTime::now(), + time: SystemTime::now(), value: 1u64, exemplars: vec![], }], @@ -251,15 +251,15 @@ mod tests { data_points: vec![ DataPoint { attributes: vec![KeyValue::new("a1", 1)], - start_time: Some(SystemTime::now()), - time: Some(SystemTime::now()), + start_time: SystemTime::now(), + time: SystemTime::now(), value: 1u64, exemplars: vec![], }, DataPoint { attributes: vec![KeyValue::new("a2", 1)], - start_time: Some(SystemTime::now()), - time: Some(SystemTime::now()), + start_time: SystemTime::now(), + time: SystemTime::now(), value: 2u64, exemplars: vec![], }, @@ -294,15 +294,15 @@ mod tests { data_points: vec![ DataPoint { attributes: vec![KeyValue::new("a1", 1)], - start_time: Some(SystemTime::now()), - time: Some(SystemTime::now()), + start_time: SystemTime::now(), + time: SystemTime::now(), value: 1u64, exemplars: vec![], }, DataPoint { attributes: vec![KeyValue::new("a2", 1)], - start_time: Some(SystemTime::now()), - time: Some(SystemTime::now()), + start_time: SystemTime::now(), + time: SystemTime::now(), value: 2u64, exemplars: vec![], }, diff --git a/opentelemetry-sdk/src/metrics/internal/last_value.rs b/opentelemetry-sdk/src/metrics/internal/last_value.rs index 05fedc1489..60e4b68840 100644 --- a/opentelemetry-sdk/src/metrics/internal/last_value.rs +++ b/opentelemetry-sdk/src/metrics/internal/last_value.rs @@ -66,8 +66,8 @@ impl LastValue { self.value_map .collect_and_reset(dest, |attributes, aggr| DataPoint { attributes, - start_time: Some(prev_start), - time: Some(t), + start_time: prev_start, + time: t, value: aggr.value.get_value(), exemplars: vec![], }); @@ -79,8 +79,8 @@ impl LastValue { self.value_map .collect_readonly(dest, |attributes, aggr| DataPoint { attributes, - start_time: Some(prev_start), - time: Some(t), + start_time: prev_start, + time: t, value: aggr.value.get_value(), exemplars: vec![], }); diff --git a/opentelemetry-sdk/src/metrics/internal/precomputed_sum.rs b/opentelemetry-sdk/src/metrics/internal/precomputed_sum.rs index 21fd208a8b..e5124a8683 100644 --- a/opentelemetry-sdk/src/metrics/internal/precomputed_sum.rs +++ b/opentelemetry-sdk/src/metrics/internal/precomputed_sum.rs @@ -68,8 +68,8 @@ impl PrecomputedSum { let delta = value - *reported.get(&attributes).unwrap_or(&T::default()); DataPoint { attributes, - start_time: Some(prev_start), - time: Some(t), + start_time: prev_start, + time: t, value: delta, exemplars: vec![], } @@ -109,8 +109,8 @@ impl PrecomputedSum { self.value_map .collect_readonly(&mut s_data.data_points, |attributes, aggr| DataPoint { attributes, - start_time: Some(prev_start), - time: Some(t), + start_time: prev_start, + time: t, value: aggr.value.get_value(), exemplars: vec![], }); diff --git a/opentelemetry-sdk/src/metrics/internal/sum.rs b/opentelemetry-sdk/src/metrics/internal/sum.rs index 148fcbd042..5c59845569 100644 --- a/opentelemetry-sdk/src/metrics/internal/sum.rs +++ b/opentelemetry-sdk/src/metrics/internal/sum.rs @@ -95,8 +95,8 @@ impl Sum { self.value_map .collect_and_reset(&mut s_data.data_points, |attributes, aggr| DataPoint { attributes, - start_time: Some(prev_start), - time: Some(t), + start_time: prev_start, + time: t, value: aggr.value.get_value(), exemplars: vec![], }); @@ -132,8 +132,8 @@ impl Sum { self.value_map .collect_readonly(&mut s_data.data_points, |attributes, aggr| DataPoint { attributes, - start_time: Some(prev_start), - time: Some(t), + start_time: prev_start, + time: t, value: aggr.value.get_value(), exemplars: vec![], }); diff --git a/opentelemetry-stdout/src/metrics/exporter.rs b/opentelemetry-stdout/src/metrics/exporter.rs index 8d688df404..27a80d73e8 100644 --- a/opentelemetry-stdout/src/metrics/exporter.rs +++ b/opentelemetry-stdout/src/metrics/exporter.rs @@ -163,20 +163,16 @@ fn print_histogram(histogram: &data::Histogram) { fn print_data_points(data_points: &[data::DataPoint]) { for (i, data_point) in data_points.iter().enumerate() { println!("\t\tDataPoint #{}", i); - if let Some(start_time) = data_point.start_time { - let datetime: DateTime = start_time.into(); - println!( - "\t\t\tStartTime : {}", - datetime.format("%Y-%m-%d %H:%M:%S%.6f") - ); - } - if let Some(end_time) = data_point.time { - let datetime: DateTime = end_time.into(); - println!( - "\t\t\tEndTime : {}", - datetime.format("%Y-%m-%d %H:%M:%S%.6f") - ); - } + let datetime: DateTime = data_point.start_time.into(); + println!( + "\t\t\tStartTime : {}", + datetime.format("%Y-%m-%d %H:%M:%S%.6f") + ); + let datetime: DateTime = data_point.time.into(); + println!( + "\t\t\tEndTime : {}", + datetime.format("%Y-%m-%d %H:%M:%S%.6f") + ); println!("\t\t\tValue : {:#?}", data_point.value); println!("\t\t\tAttributes :"); for kv in data_point.attributes.iter() {