mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Prometheus: Prevents panel editor crash when switching to Prometheus datasource (#18616)
* Fix: Fixes panel editor crash when switching to Promehteus Fixes: #18600 * Refactor: Adds tests
This commit is contained in:
parent
90df8c4bb0
commit
d7ccf98b1b
44
public/app/plugins/datasource/prometheus/query_hints.test.ts
Normal file
44
public/app/plugins/datasource/prometheus/query_hints.test.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { getQueryHints } from './query_hints';
|
||||
|
||||
describe('getQueryHints', () => {
|
||||
describe('when called without datapoints in series', () => {
|
||||
it('then it should use rows instead and return correct hint', () => {
|
||||
const series = [
|
||||
{
|
||||
fields: [
|
||||
{
|
||||
name: 'Some Name',
|
||||
},
|
||||
],
|
||||
rows: [[1], [2]],
|
||||
},
|
||||
];
|
||||
|
||||
const result = getQueryHints('up', series);
|
||||
expect(result).toEqual([
|
||||
{
|
||||
fix: { action: { query: 'up', type: 'ADD_RATE' }, label: 'Fix by adding rate().' },
|
||||
label: 'Time series is monotonically increasing.',
|
||||
type: 'APPLY_RATE',
|
||||
},
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('when called without datapoints and rows in series', () => {
|
||||
it('then it should use an empty array and return null', () => {
|
||||
const series = [
|
||||
{
|
||||
fields: [
|
||||
{
|
||||
name: 'Some Name',
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const result = getQueryHints('up', series);
|
||||
expect(result).toEqual(null);
|
||||
});
|
||||
});
|
||||
});
|
@ -29,7 +29,7 @@ export function getQueryHints(query: string, series?: any[], datasource?: any):
|
||||
// Check for monotonicity on series (table results are being ignored here)
|
||||
if (series && series.length > 0) {
|
||||
series.forEach(s => {
|
||||
const datapoints: number[][] = s.datapoints;
|
||||
const datapoints: number[][] = s.datapoints || s.rows || [];
|
||||
if (query.indexOf('rate(') === -1 && datapoints.length > 1) {
|
||||
let increasing = false;
|
||||
const nonNullData = datapoints.filter(dp => dp[0] !== null);
|
||||
|
Loading…
Reference in New Issue
Block a user