Skip to content

Commit b73188a

Browse files
authored
Fix duplicate _seconds suffix in APM latency metric name (#6657)
The Prometheus sink appends unit suffixes to metric names (e.g., unit "s" becomes "_seconds"). The APM service map processor was naming the histogram metric "latency_seconds" with unit "s", resulting in "latency_seconds_seconds" when exported to Prometheus. Rename the metric to "latency" so the final Prometheus metric name is correctly "latency_seconds". Signed-off-by: Vamsi Manohar <reddyvam@amazon.com>
1 parent 6d4cfcc commit b73188a

4 files changed

Lines changed: 6 additions & 6 deletions

File tree

data-prepper-plugins/otel-apm-service-map-processor/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ The processor generates time-series metrics as JacksonMetric events:
205205
| `request` | Sum (monotonic) | `1` | Number of requests |
206206
| `error` | Sum (monotonic) | `1` | Number of error requests (HTTP 4xx) |
207207
| `fault` | Sum (monotonic) | `1` | Number of fault requests (HTTP 5xx or ERROR status) |
208-
| `latency_seconds` | Histogram | `s` | Request latency distribution |
208+
| `latency` | Histogram | `s` | Request latency distribution |
209209

210210
**Histogram Bucket Boundaries:**
211211
`[0.0, 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1.0, 2.5, 5.0, 7.5, 10.0]`

data-prepper-plugins/otel-apm-service-map-processor/src/main/java/org/opensearch/dataprepper/plugins/processor/otel_apm_service_map/utils/ApmServiceMapMetricsUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ public static List<JacksonMetric> createMetricsFromAggregatedState(final Map<Met
196196
// Create latency_seconds histogram (only if there are duration samples)
197197
if (!state.getLatencyDurations().isEmpty()) {
198198
metrics.add(createJacksonStandardHistogram(
199-
"latency_seconds",
199+
"latency",
200200
"Request latency in seconds",
201201
state.getLatencyDurations(),
202202
metricKey.getLabels(),

data-prepper-plugins/otel-apm-service-map-processor/src/test/java/org/opensearch/dataprepper/plugins/processor/otel_apm_service_map/OTelApmServiceMapProcessorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1182,7 +1182,7 @@ void testDecorateSpansInTraceWithEphemeralStorage() {
11821182
event = resultList.get(2).getData();
11831183
assertThat(event.get("name", String.class), equalTo("fault"));
11841184
event = resultList.get(3).getData();
1185-
assertThat(event.get("name", String.class), equalTo("latency_seconds"));
1185+
assertThat(event.get("name", String.class), equalTo("latency"));
11861186
event = resultList.get(4).getData();
11871187
String sourceNodeName4 = event.get("sourceNode/keyAttributes/name", String.class);
11881188
event = resultList.get(5).getData();

data-prepper-plugins/otel-apm-service-map-processor/src/test/java/org/opensearch/dataprepper/plugins/processor/otel_apm_service_map/utils/ApmServiceMapMetricsUtilTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ void testCreateMetricsFromAggregatedState_EmptyLatencyDurations() {
298298
List<JacksonMetric> metrics = ApmServiceMapMetricsUtil.createMetricsFromAggregatedState(metricsStateByKey);
299299

300300
// Then
301-
assertEquals(3, metrics.size()); // Only request, error, fault (no latency_seconds)
301+
assertEquals(3, metrics.size()); // Only request, error, fault (no latency)
302302
}
303303

304304
@Test
@@ -521,7 +521,7 @@ void testCreateMetricsFromAggregatedState_Success() {
521521
List<JacksonMetric> metrics = ApmServiceMapMetricsUtil.createMetricsFromAggregatedState(metricsStateByKey);
522522

523523
// Then
524-
assertEquals(4, metrics.size()); // request, error, fault, latency_seconds
524+
assertEquals(4, metrics.size()); // request, error, fault, latency
525525

526526
// Verify metric names
527527
List<String> metricNames = metrics.stream()
@@ -530,7 +530,7 @@ void testCreateMetricsFromAggregatedState_Success() {
530530
assertTrue(metricNames.contains("request"));
531531
assertTrue(metricNames.contains("error"));
532532
assertTrue(metricNames.contains("fault"));
533-
assertTrue(metricNames.contains("latency_seconds"));
533+
assertTrue(metricNames.contains("latency"));
534534
}
535535

536536
@Test

0 commit comments

Comments
 (0)