mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Tempo: Use echo endpoint when testing Tempo datasource (#38018)
* Use echo endpoint when testing Tempo datasource * Remove unreachable error message * Null check response
This commit is contained in:
parent
f7501ff77f
commit
6ed60c0bec
@ -1,4 +1,4 @@
|
|||||||
import { lastValueFrom, from, merge, Observable, of, throwError } from 'rxjs';
|
import { from, merge, Observable, of, throwError } from 'rxjs';
|
||||||
import { map, mergeMap, toArray } from 'rxjs/operators';
|
import { map, mergeMap, toArray } from 'rxjs/operators';
|
||||||
import {
|
import {
|
||||||
DataQuery,
|
DataQuery,
|
||||||
@ -158,19 +158,16 @@ export class TempoDatasource extends DataSourceWithBackend<TempoQuery, TempoJson
|
|||||||
}
|
}
|
||||||
|
|
||||||
async testDatasource(): Promise<any> {
|
async testDatasource(): Promise<any> {
|
||||||
// to test Tempo we send a dummy traceID and verify Tempo answers with 'trace not found'
|
const options: BackendSrvRequest = {
|
||||||
const response = await lastValueFrom(super.query({ targets: [{ query: '0' }] } as any));
|
headers: {},
|
||||||
|
method: 'GET',
|
||||||
|
url: `${this.instanceSettings.url}/api/echo`,
|
||||||
|
};
|
||||||
|
const response = await getBackendSrv().fetch<any>(options).toPromise();
|
||||||
|
|
||||||
const errorMessage = response.error?.message;
|
if (response?.ok) {
|
||||||
if (
|
|
||||||
errorMessage &&
|
|
||||||
errorMessage.startsWith('failed to get trace') &&
|
|
||||||
errorMessage.endsWith('trace not found in Tempo')
|
|
||||||
) {
|
|
||||||
return { status: 'success', message: 'Data source is working' };
|
return { status: 'success', message: 'Data source is working' };
|
||||||
}
|
}
|
||||||
|
|
||||||
return { status: 'error', message: 'Data source is not working' + (errorMessage ? `: ${errorMessage}` : '') };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getQueryDisplayText(query: TempoQuery) {
|
getQueryDisplayText(query: TempoQuery) {
|
||||||
|
Loading…
Reference in New Issue
Block a user