diff --git a/public/app/plugins/datasource/jaeger/datasource.test.ts b/public/app/plugins/datasource/jaeger/datasource.test.ts index 38ef7b4f286..f3d3c826e2f 100644 --- a/public/app/plugins/datasource/jaeger/datasource.test.ts +++ b/public/app/plugins/datasource/jaeger/datasource.test.ts @@ -101,6 +101,22 @@ describe('JaegerDatasource', () => { expect(mock).toHaveBeenCalledWith({ url: `${defaultSettings.url}/api/traces/a%2Fb` }); }); + it('should trim whitespace from traceid', async () => { + const mock = setupFetchMock({ data: [testResponse] }); + const ds = new JaegerDatasource(defaultSettings); + const query = { + ...defaultQuery, + targets: [ + { + query: 'a/b ', + refId: '1', + }, + ], + }; + await lastValueFrom(ds.query(query)); + expect(mock).toHaveBeenCalledWith({ url: `${defaultSettings.url}/api/traces/a%2Fb` }); + }); + it('returns empty response if trace id is not specified', async () => { const ds = new JaegerDatasource(defaultSettings); const response = await lastValueFrom( diff --git a/public/app/plugins/datasource/jaeger/datasource.ts b/public/app/plugins/datasource/jaeger/datasource.ts index 9af8bde29f7..a26e755cd98 100644 --- a/public/app/plugins/datasource/jaeger/datasource.ts +++ b/public/app/plugins/datasource/jaeger/datasource.ts @@ -79,7 +79,7 @@ export class JaegerDatasource extends DataSourceApi let { start, end } = this.getTimeRange(options.range); if (target.queryType !== 'search' && target.query) { - let url = `/api/traces/${encodeURIComponent(this.templateSrv.replace(target.query, options.scopedVars))}`; + let url = `/api/traces/${encodeURIComponent(this.templateSrv.replace(target.query.trim(), options.scopedVars))}`; if (this.traceIdTimeParams) { url += `?start=${start}&end=${end}`; }