Skip to content

Commit 621f7ef

Browse files
update: field names of attributes in each metric type (#1456)
add prefix `metric_` in the attribute names
1 parent 3bdb4af commit 621f7ef

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

src/otel/metrics.rs

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,16 @@
1616
*
1717
*/
1818
use opentelemetry_proto::tonic::collector::metrics::v1::ExportMetricsServiceRequest;
19+
use opentelemetry_proto::tonic::common::v1::KeyValue;
1920
use opentelemetry_proto::tonic::metrics::v1::number_data_point::Value as NumberDataPointValue;
2021
use opentelemetry_proto::tonic::metrics::v1::{
2122
Exemplar, ExponentialHistogram, Gauge, Histogram, Metric, MetricsData, NumberDataPoint, Sum,
2223
Summary, exemplar::Value as ExemplarValue, exponential_histogram_data_point::Buckets, metric,
2324
};
2425
use serde_json::{Map, Value};
2526

27+
use crate::otel::otel_utils::flatten_attributes;
28+
2629
use super::otel_utils::{
2730
convert_epoch_nano_to_timestamp, insert_attributes, insert_number_if_some,
2831
};
@@ -73,7 +76,7 @@ fn flatten_exemplar(exemplars: &[Exemplar]) -> Vec<Map<String, Value>> {
7376
.iter()
7477
.map(|exemplar| {
7578
let mut exemplar_json = Map::new();
76-
insert_attributes(&mut exemplar_json, &exemplar.filtered_attributes);
79+
insert_exemplar_attributes(&mut exemplar_json, &exemplar.filtered_attributes);
7780
exemplar_json.insert(
7881
"exemplar_time_unix_nano".to_string(),
7982
Value::String(convert_epoch_nano_to_timestamp(
@@ -120,7 +123,7 @@ fn flatten_number_data_points(data_points: &[NumberDataPoint]) -> Vec<Map<String
120123
.iter()
121124
.map(|data_point| {
122125
let mut data_point_json = Map::new();
123-
insert_attributes(&mut data_point_json, &data_point.attributes);
126+
insert_metric_attributes(&mut data_point_json, &data_point.attributes);
124127
data_point_json.insert(
125128
"start_time_unix_nano".to_string(),
126129
Value::String(convert_epoch_nano_to_timestamp(
@@ -218,7 +221,7 @@ fn flatten_histogram(histogram: &Histogram) -> Vec<Map<String, Value>> {
218221
let mut data_points_json = Vec::new();
219222
for data_point in &histogram.data_points {
220223
let mut data_point_json = Map::new();
221-
insert_attributes(&mut data_point_json, &data_point.attributes);
224+
insert_metric_attributes(&mut data_point_json, &data_point.attributes);
222225
data_point_json.insert(
223226
"start_time_unix_nano".to_string(),
224227
Value::String(convert_epoch_nano_to_timestamp(
@@ -315,7 +318,7 @@ fn flatten_exp_histogram(exp_histogram: &ExponentialHistogram) -> Vec<Map<String
315318
let mut data_points_json = Vec::new();
316319
for data_point in &exp_histogram.data_points {
317320
let mut data_point_json = Map::new();
318-
insert_attributes(&mut data_point_json, &data_point.attributes);
321+
insert_metric_attributes(&mut data_point_json, &data_point.attributes);
319322
data_point_json.insert(
320323
"start_time_unix_nano".to_string(),
321324
Value::String(convert_epoch_nano_to_timestamp(
@@ -384,7 +387,7 @@ fn flatten_summary(summary: &Summary) -> Vec<Map<String, Value>> {
384387
let mut data_points_json = Vec::new();
385388
for data_point in &summary.data_points {
386389
let mut data_point_json = Map::new();
387-
insert_attributes(&mut data_point_json, &data_point.attributes);
390+
insert_metric_attributes(&mut data_point_json, &data_point.attributes);
388391
data_point_json.insert(
389392
"start_time_unix_nano".to_string(),
390393
Value::String(convert_epoch_nano_to_timestamp(
@@ -647,3 +650,17 @@ fn flatten_data_point_flags(flags: u32) -> Map<String, Value> {
647650
);
648651
data_point_flags_json
649652
}
653+
654+
fn insert_metric_attributes(map: &mut Map<String, Value>, attributes: &[KeyValue]) {
655+
let attributes_json = flatten_attributes(attributes);
656+
for (key, value) in attributes_json {
657+
map.insert(format!("metric_{}", key), value);
658+
}
659+
}
660+
661+
fn insert_exemplar_attributes(map: &mut Map<String, Value>, attributes: &[KeyValue]) {
662+
let attributes_json = flatten_attributes(attributes);
663+
for (key, value) in attributes_json {
664+
map.insert(format!("exemplar_{}", key), value);
665+
}
666+
}

0 commit comments

Comments
 (0)