diff --git a/public/app/plugins/datasource/tempo/QueryEditor/TagsField/TagsField.tsx b/public/app/plugins/datasource/tempo/QueryEditor/TagsField/TagsField.tsx index 8737c4e811c..1c8f80ada5e 100644 --- a/public/app/plugins/datasource/tempo/QueryEditor/TagsField/TagsField.tsx +++ b/public/app/plugins/datasource/tempo/QueryEditor/TagsField/TagsField.tsx @@ -121,6 +121,11 @@ function useAutocomplete(datasource: TempoDatasource) { const tags = datasource.languageProvider.getTags(); if (tags) { + // This is needed because the /api/search/tag/${tag}/values API expects "status.code" and the v2 API expects "status" + // so Tempo doesn't send anything and we inject it here for the autocomplete + if (!tags.find((t) => t === 'status.code')) { + tags.push('status.code'); + } providerRef.current.setTags(tags); } } catch (error) { diff --git a/public/app/plugins/datasource/tempo/traceql/TraceQLEditor.tsx b/public/app/plugins/datasource/tempo/traceql/TraceQLEditor.tsx index 4d705462c1a..1b398141b94 100644 --- a/public/app/plugins/datasource/tempo/traceql/TraceQLEditor.tsx +++ b/public/app/plugins/datasource/tempo/traceql/TraceQLEditor.tsx @@ -148,6 +148,11 @@ function useAutocomplete(datasource: TempoDatasource) { const tags = datasource.languageProvider.getTags(); if (tags) { + // This is needed because the /api/v2/search/tag/${tag}/values API expects "status" and the v1 API expects "status.code" + // so Tempo doesn't send anything and we inject it here for the autocomplete + if (!tags.find((t) => t === 'status')) { + tags.push('status'); + } providerRef.current.setTags(tags); } } catch (error) {