Skip to content

Commit 5d3c5a7

Browse files
authored
Enhance error handling in health check (#454)
1 parent 35e5f5d commit 5d3c5a7

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/datasource.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
TimeRange,
1212
toDataFrame,
1313
} from '@grafana/data';
14-
import { getTemplateSrv } from '@grafana/runtime';
14+
import { getTemplateSrv, HealthCheckError } from '@grafana/runtime';
1515
import jsonata from 'jsonata';
1616
import { JSONPath } from 'jsonpath-plus';
1717
import { jp } from './jsonpath';
@@ -98,28 +98,32 @@ export class JsonDataSource extends DataSourceApi<JsonApiQuery, JsonApiDataSourc
9898
message: 'Success',
9999
};
100100
} else {
101-
return {
101+
const message = response.statusText ? response.statusText : defaultErrorMessage;
102+
return Promise.reject({
102103
status: 'error',
103-
message: response.statusText ? response.statusText : defaultErrorMessage,
104-
};
104+
message,
105+
error: new HealthCheckError(message, {}),
106+
});
105107
}
106108
} catch (err: any) {
107109
if (_.isString(err)) {
108-
return {
110+
return Promise.reject({
109111
status: 'error',
110112
message: err,
111-
};
113+
error: new HealthCheckError(err, {}),
114+
});
112115
} else {
113116
let message = 'JSON API: ';
114117
message += err.statusText ? err.statusText : defaultErrorMessage;
115118
if (err.data && err.data.error && err.data.error.code) {
116119
message += ': ' + err.data.error.code + '. ' + err.data.error.message;
117120
}
118121

119-
return {
122+
return Promise.reject({
120123
status: 'error',
121124
message,
122-
};
125+
error: new HealthCheckError(message, {}),
126+
});
123127
}
124128
}
125129
}

0 commit comments

Comments
 (0)