From dc0ef2913e85254e0f6d0d743bac740b89093f63 Mon Sep 17 00:00:00 2001 From: Joey Tawadrous <90795735+joey-grafana@users.noreply.github.com> Date: Wed, 27 Jul 2022 15:48:09 +0100 Subject: [PATCH] Tempo: Set APM table default span kind (#52851) * Add span kind server to query * Updated test --- public/app/plugins/datasource/tempo/datasource.test.ts | 6 +++--- public/app/plugins/datasource/tempo/datasource.ts | 5 +++-- public/app/plugins/datasource/tempo/graphTransform.ts | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/public/app/plugins/datasource/tempo/datasource.test.ts b/public/app/plugins/datasource/tempo/datasource.test.ts index 6e2d8c4872b..51604023496 100644 --- a/public/app/plugins/datasource/tempo/datasource.test.ts +++ b/public/app/plugins/datasource/tempo/datasource.test.ts @@ -487,7 +487,7 @@ describe('Tempo apm table', () => { expect(builtQuery).toBe('sum(rate(traces_spanmetrics_calls_total{}[$__rate_interval]))'); }); - it('should build link expr correctly', () => { + it('should get field config correctly', () => { let datasourceUid = 's4Jvz8Qnk'; let tempoDatasourceUid = 'EbPO1fYnz'; let targetField = '__data.fields.target'; @@ -694,12 +694,12 @@ const defaultSettings: DataSourceInstanceSettings = { }; const rateMetric = new MutableDataFrame({ - refId: 'topk(5, sum(rate(traces_spanmetrics_calls_total{}[$__range])) by (span_name))', + refId: 'topk(5, sum(rate(traces_spanmetrics_calls_total{span_kind="SPAN_KIND_SERVER"}[$__range])) by (span_name))', fields: [ { name: 'Time', values: [1653725618609, 1653725618609] }, { name: 'span_name', values: ['HTTP Client', 'HTTP GET - root'] }, { - name: 'Value #topk(5, sum(rate(traces_spanmetrics_calls_total{}[$__range])) by (span_name))', + name: 'Value #topk(5, sum(rate(traces_spanmetrics_calls_total{span_kind="SPAN_KIND_SERVER"}[$__range])) by (span_name))', values: [12.75164671814457, 12.121331111401608], }, ], diff --git a/public/app/plugins/datasource/tempo/datasource.ts b/public/app/plugins/datasource/tempo/datasource.ts index 388ae48ebc4..40d2411d52d 100644 --- a/public/app/plugins/datasource/tempo/datasource.ts +++ b/public/app/plugins/datasource/tempo/datasource.ts @@ -43,6 +43,7 @@ import { rateMetric, durationMetric, errorRateMetric, + defaultTableFilter, } from './graphTransform'; import { transformTrace, @@ -487,7 +488,7 @@ function rateQuery( datasourceUid: string ) { const serviceMapRequest = makePromServiceMapRequest(request); - serviceMapRequest.targets = makeApmRequest([buildExpr(rateMetric, '', request)]); + serviceMapRequest.targets = makeApmRequest([buildExpr(rateMetric, defaultTableFilter, request)]); return queryPrometheus(serviceMapRequest, datasourceUid).pipe( toArray(), @@ -660,7 +661,7 @@ function getApmTable( ) { let df: any = { fields: [] }; const rate = rateResponse.data[0]?.filter((x: { refId: string }) => { - return x.refId === buildExpr(rateMetric, '', request); + return x.refId === buildExpr(rateMetric, defaultTableFilter, request); }); const errorRate = secondResponse.data.filter((x) => { return x.refId === errorRateBySpanName; diff --git a/public/app/plugins/datasource/tempo/graphTransform.ts b/public/app/plugins/datasource/tempo/graphTransform.ts index 42d1becf124..7aaf8c1797e 100644 --- a/public/app/plugins/datasource/tempo/graphTransform.ts +++ b/public/app/plugins/datasource/tempo/graphTransform.ts @@ -148,6 +148,7 @@ export const durationMetric = { expr: 'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{}[$__range])) by (le))', params: [], }; +export const defaultTableFilter = 'span_kind="SPAN_KIND_SERVER"'; export const serviceMapMetrics = [ secondsMetric,