From d8a83fec9ddcc13722cd799a78cfc0308fbac876 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Bedi?= Date: Tue, 30 Mar 2021 19:34:08 +0200 Subject: [PATCH] Prometheus: align exemplars check to latest api change (#32513) --- .../prometheus/result_transformer.test.ts | 14 ++++++++++++++ public/app/plugins/datasource/prometheus/types.ts | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/public/app/plugins/datasource/prometheus/result_transformer.test.ts b/public/app/plugins/datasource/prometheus/result_transformer.test.ts index 44add64095f..1e47b246fc0 100644 --- a/public/app/plugins/datasource/prometheus/result_transformer.test.ts +++ b/public/app/plugins/datasource/prometheus/result_transformer.test.ts @@ -510,6 +510,20 @@ describe('Prometheus Result Transformer', () => { expect(result[0].length).toBe(1); }); + it('should return with an empty array when data is empty', () => { + const result = transform( + { + data: { + status: 'success', + data: [], + }, + } as any, + options + ); + + expect(result).toHaveLength(0); + }); + it('should remove exemplars that are too close to each other', () => { const response = { status: 'success', diff --git a/public/app/plugins/datasource/prometheus/types.ts b/public/app/plugins/datasource/prometheus/types.ts index f5b1c95005c..cdf857d0b8d 100644 --- a/public/app/plugins/datasource/prometheus/types.ts +++ b/public/app/plugins/datasource/prometheus/types.ts @@ -63,7 +63,7 @@ export interface PromDataErrorResponse { data: T; } -export type PromData = PromMatrixData | PromVectorData | PromScalarData | PromExemplarData[] | null; +export type PromData = PromMatrixData | PromVectorData | PromScalarData | PromExemplarData[]; export interface Labels { [index: string]: any; @@ -120,7 +120,7 @@ export function isExemplarData(result: PromData): result is PromExemplarData[] { if (result == null || !Array.isArray(result)) { return false; } - return 'exemplars' in result[0]; + return result.length ? 'exemplars' in result[0] : false; } export type MatrixOrVectorResult = PromMatrixData['result'][0] | PromVectorData['result'][0];