Skip to content

Commit 2da8b24

Browse files
authored
fix(log_to_metric transform): Use correct keys for histogram/summary (#24394)
* fix(log_to_metric transform): Use correct keys for histogram and summary metric values * Add changelog fragment
1 parent 22e92a6 commit 2da8b24

File tree

3 files changed

+34
-31
lines changed

3 files changed

+34
-31
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
The `log_to_metric` transform now correctly handles aggregated histogram and aggregated summary metrics.
2+
3+
authors: jblazquez

src/internal_events/log_to_metric.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ pub struct MetricMetadataMetricDetailsNotFoundError {}
129129

130130
impl InternalEvent for MetricMetadataMetricDetailsNotFoundError {
131131
fn emit(self) {
132-
let reason = "Missing required metric details. Required one of gauge, distribution, histogram, summary, counter";
132+
let reason = "Missing required metric details. Required one of gauge, distribution, aggregated_histogram, aggregated_summary, counter";
133133
error!(
134134
message = reason,
135135
error_code = "missing_metric_details",

src/transforms/log_to_metric.rs

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -638,13 +638,13 @@ fn get_distribution_value(log: &LogEvent) -> Result<MetricValue, TransformError>
638638

639639
fn get_histogram_value(log: &LogEvent) -> Result<MetricValue, TransformError> {
640640
let event_buckets = log
641-
.get(event_path!("histogram", "buckets"))
641+
.get(event_path!("aggregated_histogram", "buckets"))
642642
.ok_or_else(|| TransformError::PathNotFound {
643-
path: "histogram.buckets".to_string(),
643+
path: "aggregated_histogram.buckets".to_string(),
644644
})?
645645
.as_array()
646646
.ok_or_else(|| TransformError::ParseError {
647-
path: "histogram.buckets".to_string(),
647+
path: "aggregated_histogram.buckets".to_string(),
648648
kind: TransformParseErrorKind::ArrayError,
649649
})?;
650650

@@ -653,22 +653,22 @@ fn get_histogram_value(log: &LogEvent) -> Result<MetricValue, TransformError> {
653653
let upper_limit = e_bucket
654654
.get(path!("upper_limit"))
655655
.ok_or_else(|| TransformError::PathNotFound {
656-
path: "histogram.buckets.upper_limit".to_string(),
656+
path: "aggregated_histogram.buckets.upper_limit".to_string(),
657657
})?
658658
.as_float()
659659
.ok_or_else(|| TransformError::ParseError {
660-
path: "histogram.buckets.upper_limit".to_string(),
660+
path: "aggregated_histogram.buckets.upper_limit".to_string(),
661661
kind: TransformParseErrorKind::FloatError,
662662
})?;
663663

664664
let count = e_bucket
665665
.get(path!("count"))
666666
.ok_or_else(|| TransformError::PathNotFound {
667-
path: "histogram.buckets.count".to_string(),
667+
path: "aggregated_histogram.buckets.count".to_string(),
668668
})?
669669
.as_integer()
670670
.ok_or_else(|| TransformError::ParseError {
671-
path: "histogram.buckets.count".to_string(),
671+
path: "aggregated_histogram.buckets.count".to_string(),
672672
kind: TransformParseErrorKind::IntError,
673673
})?;
674674

@@ -679,24 +679,24 @@ fn get_histogram_value(log: &LogEvent) -> Result<MetricValue, TransformError> {
679679
}
680680

681681
let count = log
682-
.get(event_path!("histogram", "count"))
682+
.get(event_path!("aggregated_histogram", "count"))
683683
.ok_or_else(|| TransformError::PathNotFound {
684-
path: "histogram.count".to_string(),
684+
path: "aggregated_histogram.count".to_string(),
685685
})?
686686
.as_integer()
687687
.ok_or_else(|| TransformError::ParseError {
688-
path: "histogram.count".to_string(),
688+
path: "aggregated_histogram.count".to_string(),
689689
kind: TransformParseErrorKind::IntError,
690690
})?;
691691

692692
let sum = log
693-
.get(event_path!("histogram", "sum"))
693+
.get(event_path!("aggregated_histogram", "sum"))
694694
.ok_or_else(|| TransformError::PathNotFound {
695-
path: "histogram.sum".to_string(),
695+
path: "aggregated_histogram.sum".to_string(),
696696
})?
697697
.as_float()
698698
.ok_or_else(|| TransformError::ParseError {
699-
path: "histogram.sum".to_string(),
699+
path: "aggregated_histogram.sum".to_string(),
700700
kind: TransformParseErrorKind::FloatError,
701701
})?;
702702

@@ -709,13 +709,13 @@ fn get_histogram_value(log: &LogEvent) -> Result<MetricValue, TransformError> {
709709

710710
fn get_summary_value(log: &LogEvent) -> Result<MetricValue, TransformError> {
711711
let event_quantiles = log
712-
.get(event_path!("summary", "quantiles"))
712+
.get(event_path!("aggregated_summary", "quantiles"))
713713
.ok_or_else(|| TransformError::PathNotFound {
714-
path: "summary.quantiles".to_string(),
714+
path: "aggregated_summary.quantiles".to_string(),
715715
})?
716716
.as_array()
717717
.ok_or_else(|| TransformError::ParseError {
718-
path: "summary.quantiles".to_string(),
718+
path: "aggregated_summary.quantiles".to_string(),
719719
kind: TransformParseErrorKind::ArrayError,
720720
})?;
721721

@@ -724,22 +724,22 @@ fn get_summary_value(log: &LogEvent) -> Result<MetricValue, TransformError> {
724724
let quantile = e_quantile
725725
.get(path!("quantile"))
726726
.ok_or_else(|| TransformError::PathNotFound {
727-
path: "summary.quantiles.quantile".to_string(),
727+
path: "aggregated_summary.quantiles.quantile".to_string(),
728728
})?
729729
.as_float()
730730
.ok_or_else(|| TransformError::ParseError {
731-
path: "summary.quantiles.quantile".to_string(),
731+
path: "aggregated_summary.quantiles.quantile".to_string(),
732732
kind: TransformParseErrorKind::FloatError,
733733
})?;
734734

735735
let value = e_quantile
736736
.get(path!("value"))
737737
.ok_or_else(|| TransformError::PathNotFound {
738-
path: "summary.quantiles.value".to_string(),
738+
path: "aggregated_summary.quantiles.value".to_string(),
739739
})?
740740
.as_float()
741741
.ok_or_else(|| TransformError::ParseError {
742-
path: "summary.quantiles.value".to_string(),
742+
path: "aggregated_summary.quantiles.value".to_string(),
743743
kind: TransformParseErrorKind::FloatError,
744744
})?;
745745

@@ -750,24 +750,24 @@ fn get_summary_value(log: &LogEvent) -> Result<MetricValue, TransformError> {
750750
}
751751

752752
let count = log
753-
.get(event_path!("summary", "count"))
753+
.get(event_path!("aggregated_summary", "count"))
754754
.ok_or_else(|| TransformError::PathNotFound {
755-
path: "summary.count".to_string(),
755+
path: "aggregated_summary.count".to_string(),
756756
})?
757757
.as_integer()
758758
.ok_or_else(|| TransformError::ParseError {
759-
path: "summary.count".to_string(),
759+
path: "aggregated_summary.count".to_string(),
760760
kind: TransformParseErrorKind::IntError,
761761
})?;
762762

763763
let sum = log
764-
.get(event_path!("summary", "sum"))
764+
.get(event_path!("aggregated_summary", "sum"))
765765
.ok_or_else(|| TransformError::PathNotFound {
766-
path: "summary.sum".to_string(),
766+
path: "aggregated_summary.sum".to_string(),
767767
})?
768768
.as_float()
769769
.ok_or_else(|| TransformError::ParseError {
770-
path: "summary.sum".to_string(),
770+
path: "aggregated_summary.sum".to_string(),
771771
kind: TransformParseErrorKind::FloatError,
772772
})?;
773773

@@ -830,8 +830,8 @@ fn to_metrics(event: &Event) -> Result<Metric, TransformError> {
830830
value = match key.as_str() {
831831
"gauge" => Some(get_gauge_value(log)?),
832832
"distribution" => Some(get_distribution_value(log)?),
833-
"histogram" => Some(get_histogram_value(log)?),
834-
"summary" => Some(get_summary_value(log)?),
833+
"aggregated_histogram" => Some(get_histogram_value(log)?),
834+
"aggregated_summary" => Some(get_summary_value(log)?),
835835
"counter" => Some(get_counter_value(log)?),
836836
"set" => Some(get_set_value(log)?),
837837
_ => None,
@@ -1878,7 +1878,7 @@ mod tests {
18781878
};
18791879

18801880
let json_str = r#"{
1881-
"histogram": {
1881+
"aggregated_histogram": {
18821882
"sum": 18.0,
18831883
"count": 5,
18841884
"buckets": [
@@ -2073,7 +2073,7 @@ mod tests {
20732073
};
20742074

20752075
let json_str = r#"{
2076-
"summary": {
2076+
"aggregated_summary": {
20772077
"sum": 100.0,
20782078
"count": 7,
20792079
"quantiles": [

0 commit comments

Comments
 (0)