Prometheus: Fix running of health check query based on access mode (#42189)

* Prometheus: Use this.query for health check

* Update alertMessage in e2e tests
pull/42060/head
Ivana Huckova 4 years ago committed by GitHub
parent 10f844e3ad
commit 1b4f6b19cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      e2e/various-suite/specs/exemplars.spec.ts
  2. 33
      public/app/plugins/datasource/prometheus/datasource.ts

@ -4,7 +4,7 @@ const dataSourceName = 'PromExemplar';
const addDataSource = () => {
e2e.flows.addDataSource({
type: 'Prometheus',
expectedAlertMessage: 'Bad Gateway',
expectedAlertMessage: 'Error reading Prometheus',
name: dataSourceName,
form: () => {
e2e.components.DataSource.Prometheus.configPage.exemplarsAddButton().click();

@ -16,6 +16,7 @@ import {
ScopedVars,
TimeRange,
DataFrame,
dateTime,
} from '@grafana/data';
import {
BackendSrvRequest,
@ -789,11 +790,33 @@ export class PrometheusDatasource extends DataSourceWithBackend<PromQuery, PromO
async testDatasource() {
const now = new Date().getTime();
const query = { expr: '1+1' } as PromQueryRequest;
const response = await lastValueFrom(this.performInstantQuery(query, now / 1000));
return response.data.status === 'success'
? { status: 'success', message: 'Data source is working' }
: { status: 'error', message: response.data.error };
const request: DataQueryRequest<PromQuery> = {
targets: [{ refId: 'test', expr: '1+1', instant: true }],
requestId: `${this.id}-health`,
scopedVars: {},
dashboardId: 0,
panelId: 0,
interval: '1m',
intervalMs: 60000,
maxDataPoints: 1,
range: {
from: dateTime(now - 1000),
to: dateTime(now),
},
} as DataQueryRequest<PromQuery>;
return lastValueFrom(this.query(request))
.then((res: DataQueryResponse) => {
if (!res || !res.data || res.state !== LoadingState.Done) {
return { status: 'error', message: `Error reading Prometheus: ${res?.error?.message}` };
} else {
return { status: 'success', message: 'Data source is working' };
}
})
.catch((err: any) => {
console.error('Prometheus Error', err);
return { status: 'error', message: err.message };
});
}
interpolateVariablesInQueries(queries: PromQuery[], scopedVars: ScopedVars): PromQuery[] {

Loading…
Cancel
Save