From d7a65cb7ca36eb72388737b0c64f9b521d6ff5c2 Mon Sep 17 00:00:00 2001 From: "grafana-delivery-bot[bot]" <132647405+grafana-delivery-bot[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 08:19:09 +0100 Subject: [PATCH] [v10.1.x] Tempo: Only get span_names when they are in the response (#72785) Tempo: Only get span_names when they are in the response (#72663) * Only get span names when they are in the response * Find span_name field/labels (cherry picked from commit b4c55765fe8ad5bf37a28384c5a7bc732bb9b1e9) Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com> --- public/app/plugins/datasource/tempo/datasource.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/public/app/plugins/datasource/tempo/datasource.ts b/public/app/plugins/datasource/tempo/datasource.ts index bc58422a6fb..27e906e0609 100644 --- a/public/app/plugins/datasource/tempo/datasource.ts +++ b/public/app/plugins/datasource/tempo/datasource.ts @@ -11,6 +11,7 @@ import { DataSourceApi, DataSourceInstanceSettings, dateTime, + Field, FieldType, isValidGoDuration, LoadingState, @@ -650,14 +651,16 @@ function errorAndDurationQuery( let durationsBySpanName: string[] = []; let labels = []; - if (request.app === CoreApp.Explore) { - if (rateResponse.data[0][0]?.fields[1]?.values) { - labels = rateResponse.data[0][0]?.fields[1]?.values; + if (rateResponse.data[0][0] && request.app === CoreApp.Explore) { + const spanNameField = rateResponse.data[0][0].fields.find((field: Field) => field.name === 'span_name'); + if (spanNameField && spanNameField.values) { + labels = spanNameField.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 spanNameLabels = df.fields.find((field: Field) => field.labels?.['span_name']); + if (spanNameLabels) { + labels.push(spanNameLabels.labels?.['span_name']); } }); }