[v10.0.x] Tempo: Fix get label values based on CoreApp type (#68468)
Tempo: Fix get label values based on CoreApp type (#68463)
Fix and update test
(cherry picked from commit a1f76af15a)
Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
This commit is contained in:
co-authored by
Joey
parent
050b7e5e7b
commit
27059d710b
@@ -11,6 +11,7 @@ import {
|
|||||||
LoadingState,
|
LoadingState,
|
||||||
MutableDataFrame,
|
MutableDataFrame,
|
||||||
PluginType,
|
PluginType,
|
||||||
|
CoreApp,
|
||||||
} from '@grafana/data';
|
} from '@grafana/data';
|
||||||
import {
|
import {
|
||||||
BackendDataSourceResponse,
|
BackendDataSourceResponse,
|
||||||
@@ -449,7 +450,7 @@ describe('Tempo service graph view', () => {
|
|||||||
});
|
});
|
||||||
setDataSourceSrv(backendSrvWithPrometheus as any);
|
setDataSourceSrv(backendSrvWithPrometheus as any);
|
||||||
const response = await lastValueFrom(
|
const response = await lastValueFrom(
|
||||||
ds.query({ targets: [{ queryType: 'serviceMap' }], range: getDefaultTimeRange() } as any)
|
ds.query({ targets: [{ queryType: 'serviceMap' }], range: getDefaultTimeRange(), app: CoreApp.Explore } as any)
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(response.data).toHaveLength(3);
|
expect(response.data).toHaveLength(3);
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import { EMPTY, from, lastValueFrom, merge, Observable, of, throwError } from 'r
|
|||||||
import { catchError, concatMap, map, mergeMap, toArray } from 'rxjs/operators';
|
import { catchError, concatMap, map, mergeMap, toArray } from 'rxjs/operators';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
CoreApp,
|
||||||
|
DataFrame,
|
||||||
DataQueryRequest,
|
DataQueryRequest,
|
||||||
DataQueryResponse,
|
DataQueryResponse,
|
||||||
DataQueryResponseData,
|
DataQueryResponseData,
|
||||||
@@ -597,7 +599,20 @@ function errorAndDurationQuery(
|
|||||||
let serviceGraphViewMetrics = [];
|
let serviceGraphViewMetrics = [];
|
||||||
let errorRateBySpanName = '';
|
let errorRateBySpanName = '';
|
||||||
let durationsBySpanName: string[] = [];
|
let durationsBySpanName: string[] = [];
|
||||||
const spanNames = getEscapedSpanNames(rateResponse.data[0][0]?.fields[1]?.values ?? []);
|
|
||||||
|
let labels = [];
|
||||||
|
if (request.app === CoreApp.Explore) {
|
||||||
|
if (rateResponse.data[0][0]?.fields[1]?.values) {
|
||||||
|
labels = rateResponse.data[0][0]?.fields[1]?.values;
|
||||||
|
}
|
||||||
|
} else if (rateResponse.data[0]) {
|
||||||
|
rateResponse.data[0].map((df: DataFrame) => {
|
||||||
|
if (df.fields[1]?.labels && df.fields[1]?.labels['span_name']) {
|
||||||
|
labels.push(df.fields[1]?.labels['span_name']);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const spanNames = getEscapedSpanNames(labels);
|
||||||
|
|
||||||
if (spanNames.length > 0) {
|
if (spanNames.length > 0) {
|
||||||
errorRateBySpanName = buildExpr(errorRateMetric, 'span_name=~"' + spanNames.join('|') + '"', request);
|
errorRateBySpanName = buildExpr(errorRateMetric, 'span_name=~"' + spanNames.join('|') + '"', request);
|
||||||
|
|||||||
Reference in New Issue
Block a user