From d529eee8cfe42f7ec3c50619aeb32048bf092c93 Mon Sep 17 00:00:00 2001 From: Joey <90795735+joey-grafana@users.noreply.github.com> Date: Mon, 28 Jul 2025 09:36:07 +0100 Subject: [PATCH] Tempo: Add options to getTagKeys (#108691) Add options to getTagKeys so time range and timeRangeForTags can be passed into the Tempo language provider --- .../app/plugins/datasource/tempo/datasource.test.ts | 12 +++++++++++- public/app/plugins/datasource/tempo/datasource.ts | 5 +++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/public/app/plugins/datasource/tempo/datasource.test.ts b/public/app/plugins/datasource/tempo/datasource.test.ts index f66520555f5..72c82f356b0 100644 --- a/public/app/plugins/datasource/tempo/datasource.test.ts +++ b/public/app/plugins/datasource/tempo/datasource.test.ts @@ -1227,7 +1227,17 @@ describe('should provide functionality for ad-hoc filters', () => { }); it('for getTagKeys', async () => { - const response = await datasource.getTagKeys(); + const response = await datasource.getTagKeys({ + filters: [], + timeRange: { + from: dateTime('2021-04-20T15:55:00Z'), + to: dateTime('2021-04-20T15:55:00Z'), + raw: { + from: 'now-15m', + to: 'now', + }, + }, + }); expect(response).toEqual([{ text: 'span.label1' }, { text: 'span.label2' }]); }); diff --git a/public/app/plugins/datasource/tempo/datasource.ts b/public/app/plugins/datasource/tempo/datasource.ts index 8d16b28f97d..508f4b043a6 100644 --- a/public/app/plugins/datasource/tempo/datasource.ts +++ b/public/app/plugins/datasource/tempo/datasource.ts @@ -11,6 +11,7 @@ import { DataQueryRequest, DataQueryResponse, DataQueryResponseData, + DataSourceGetTagKeysOptions, DataSourceGetTagValuesOptions, DataSourceInstanceSettings, dateTime, @@ -238,8 +239,8 @@ export class TempoDatasource extends DataSourceWithBackend> { - await this.languageProvider.fetchTags(); + async getTagKeys(options: DataSourceGetTagKeysOptions): Promise> { + await this.languageProvider.fetchTags(this.timeRangeForTags, options.timeRange); const tags = this.languageProvider.tagsV2 || []; return tags .map(({ name, tags }) =>