From 9bbfb4f605be71083cde39aeaf7d7160f1aa90c8 Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Mon, 11 Nov 2024 13:15:35 -0600 Subject: [PATCH 1/2] Compute ext-service OpenTelemetry golden metrics from metrics instead of spans --- entity-types/ext-service/golden_metrics.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/entity-types/ext-service/golden_metrics.yml b/entity-types/ext-service/golden_metrics.yml index 56139736f..7cf801936 100644 --- a/entity-types/ext-service/golden_metrics.yml +++ b/entity-types/ext-service/golden_metrics.yml @@ -3,9 +3,9 @@ throughput: unit: REQUESTS_PER_MINUTE queries: opentelemetry: - select: rate(count(*), 1 minute) - from: Span - where: span.kind LIKE 'server' OR span.kind LIKE 'consumer' OR kind LIKE 'server' OR kind LIKE 'consumer' + select: rate(count(%.server%duration), 1 minute) + from: Metric + where: http.server.duration IS NOT NULL OR http.server.request.duration IS NOT NULL OR rpc.server.duration IS NOT NULL newrelic-opentelemetry: select: rate(count(apm.service.transaction.duration), 1 minute) from: Metric @@ -23,9 +23,9 @@ errorRate: unit: PERCENTAGE queries: opentelemetry: - select: (filter(count(*), WHERE otel.status_code = 'ERROR') * 100) / count(*) - from: Span - where: span.kind LIKE 'server' OR span.kind LIKE 'consumer' OR kind LIKE 'server' OR kind LIKE 'consumer' + select: filter(count(%.server%duration), WHERE numeric(http.status_code) >= 500 OR numeric(http.response.status_code) >= 500)/count(%.server%duration) + from: Metric + where: http.server.duration IS NOT NULL OR http.server.request.duration IS NOT NULL newrelic-opentelemetry: select: sum(apm.service.error.count) * 100 / count(apm.service.transaction.duration) from: Metric @@ -43,9 +43,9 @@ responseTimeMs: unit: MS queries: opentelemetry: - select: average(duration.ms) - from: Span - where: span.kind LIKE 'server' OR span.kind LIKE 'consumer' OR kind LIKE 'server' OR kind LIKE 'consumer' + select: average(convert(%.server%duration, unit OR 's', 'ms')) + from: Metric + where: http.server.duration IS NOT NULL OR http.server.request.duration IS NOT NULL OR rpc.server.duration IS NOT NULL newrelic-opentelemetry: select: average(convert(apm.service.transaction.duration, unit, 'ms')) from: Metric From 2e5b712f707eebae812e8c3c68a86632b29c9e7c Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Fri, 13 Dec 2024 13:50:37 -0600 Subject: [PATCH 2/2] Make error rate percentage --- entity-types/ext-service/golden_metrics.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entity-types/ext-service/golden_metrics.yml b/entity-types/ext-service/golden_metrics.yml index 7cf801936..369346436 100644 --- a/entity-types/ext-service/golden_metrics.yml +++ b/entity-types/ext-service/golden_metrics.yml @@ -23,7 +23,7 @@ errorRate: unit: PERCENTAGE queries: opentelemetry: - select: filter(count(%.server%duration), WHERE numeric(http.status_code) >= 500 OR numeric(http.response.status_code) >= 500)/count(%.server%duration) + select: filter(count(%.server%duration), WHERE numeric(http.status_code) >= 500 OR numeric(http.response.status_code) >= 500) * 100 / count(%.server%duration) from: Metric where: http.server.duration IS NOT NULL OR http.server.request.duration IS NOT NULL newrelic-opentelemetry: