mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Prometheus: Adds hint support to dashboard and fixes prometheus link in query editor (#20275)
* Prometheus: moved hints into query editor, and fixed missing refIds in responses * Minor fix * Removed unused type import
This commit is contained in:
@@ -221,11 +221,11 @@ class PromQueryField extends React.PureComponent<PromQueryFieldProps, PromQueryF
|
||||
};
|
||||
|
||||
onClickHintFix = () => {
|
||||
const { datasource, query, onChange, onRunQuery } = this.props;
|
||||
const { hint } = this.state;
|
||||
const { onHint } = this.props;
|
||||
if (onHint && hint && hint.fix) {
|
||||
onHint(hint.fix.action);
|
||||
}
|
||||
|
||||
onChange(datasource.modifyQuery(query, hint.fix.action));
|
||||
onRunQuery();
|
||||
};
|
||||
|
||||
onUpdateLanguage = () => {
|
||||
|
||||
@@ -75,6 +75,7 @@ export class ResultTransformer {
|
||||
return {
|
||||
datapoints: dps,
|
||||
query: options.query,
|
||||
refId: options.refId,
|
||||
target: metricLabel,
|
||||
tags: metricData.metric,
|
||||
};
|
||||
@@ -82,6 +83,8 @@ export class ResultTransformer {
|
||||
|
||||
transformMetricDataToTable(md: any, resultCount: number, refId: string, valueWithRefId?: boolean): TableModel {
|
||||
const table = new TableModel();
|
||||
table.refId = refId;
|
||||
|
||||
let i: number, j: number;
|
||||
const metricLabels: { [key: string]: number } = {};
|
||||
|
||||
@@ -141,7 +144,7 @@ export class ResultTransformer {
|
||||
let metricLabel = null;
|
||||
metricLabel = this.createMetricLabel(md.metric, options);
|
||||
dps.push([parseFloat(md.value[1]), md.value[0] * 1000]);
|
||||
return { target: metricLabel, datapoints: dps, tags: md.metric };
|
||||
return { target: metricLabel, datapoints: dps, tags: md.metric, refId: options.refId };
|
||||
}
|
||||
|
||||
createMetricLabel(labelData: { [key: string]: string }, options: any) {
|
||||
|
||||
@@ -59,7 +59,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
};
|
||||
|
||||
it('should return table model', () => {
|
||||
const table = ctx.resultTransformer.transformMetricDataToTable(response.data.result);
|
||||
const table = ctx.resultTransformer.transformMetricDataToTable(response.data.result, 0, 'A');
|
||||
expect(table.type).toBe('table');
|
||||
expect(table.rows).toEqual([
|
||||
[1443454528000, 'test', '', 'testjob', 3846],
|
||||
@@ -73,6 +73,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
{ text: 'Value' },
|
||||
]);
|
||||
expect(table.columns[4].filterable).toBeUndefined();
|
||||
expect(table.refId).toBe('A');
|
||||
});
|
||||
|
||||
it('should column title include refId if response count is more than 2', () => {
|
||||
@@ -217,6 +218,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
format: 'timeseries',
|
||||
start: 0,
|
||||
end: 2,
|
||||
refId: 'B',
|
||||
};
|
||||
|
||||
const result = ctx.resultTransformer.transform({ data: response }, options);
|
||||
@@ -226,6 +228,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
query: undefined,
|
||||
datapoints: [[10, 0], [10, 1000], [0, 2000]],
|
||||
tags: { job: 'testjob' },
|
||||
refId: 'B',
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user