[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,
|
||||
MutableDataFrame,
|
||||
PluginType,
|
||||
CoreApp,
|
||||
} from '@grafana/data';
|
||||
import {
|
||||
BackendDataSourceResponse,
|
||||
@@ -449,7 +450,7 @@ describe('Tempo service graph view', () => {
|
||||
});
|
||||
setDataSourceSrv(backendSrvWithPrometheus as any);
|
||||
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);
|
||||
|
||||
@@ -3,6 +3,8 @@ import { EMPTY, from, lastValueFrom, merge, Observable, of, throwError } from 'r
|
||||
import { catchError, concatMap, map, mergeMap, toArray } from 'rxjs/operators';
|
||||
|
||||
import {
|
||||
CoreApp,
|
||||
DataFrame,
|
||||
DataQueryRequest,
|
||||
DataQueryResponse,
|
||||
DataQueryResponseData,
|
||||
@@ -597,7 +599,20 @@ function errorAndDurationQuery(
|
||||
let serviceGraphViewMetrics = [];
|
||||
let errorRateBySpanName = '';
|
||||
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) {
|
||||
errorRateBySpanName = buildExpr(errorRateMetric, 'span_name=~"' + spanNames.join('|') + '"', request);
|
||||
|
||||
Reference in New Issue
Block a user