From e1a2b258afa2626e5045897af674f03312988c36 Mon Sep 17 00:00:00 2001 From: Mitsuhiro Tanda Date: Thu, 21 Mar 2019 09:52:26 +0900 Subject: [PATCH 1/3] deduplicate same value annotation --- public/app/plugins/datasource/prometheus/datasource.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index bde56431683..9f8a912e554 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -354,6 +354,7 @@ export class PrometheusDatasource implements DataSourceApi { }) .value(); + const dupCheck = {}; for (const value of series.values) { const valueIsTrue = value[1] === '1'; // e.g. ALERTS if (valueIsTrue || annotation.useValueForTime) { @@ -365,6 +366,10 @@ export class PrometheusDatasource implements DataSourceApi { }; if (annotation.useValueForTime) { + if (dupCheck[value[1]]) { + continue; + } + dupCheck[value[1]] = true; event['time'] = Math.floor(parseFloat(value[1])); } else { event['time'] = Math.floor(parseFloat(value[0])) * 1000; From e868475c5b5f2ead9404f12e9e9aeebe9917805c Mon Sep 17 00:00:00 2001 From: Mitsuhiro Tanda Date: Thu, 21 Mar 2019 15:48:22 +0900 Subject: [PATCH 2/3] simplify --- public/app/plugins/datasource/prometheus/datasource.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index 9f8a912e554..68e3cdb8149 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -366,11 +366,12 @@ export class PrometheusDatasource implements DataSourceApi { }; if (annotation.useValueForTime) { - if (dupCheck[value[1]]) { + const timestampValue = Math.floor(parseFloat(value[1])); + if (dupCheck[timestampValue]) { continue; } - dupCheck[value[1]] = true; - event['time'] = Math.floor(parseFloat(value[1])); + dupCheck[timestampValue] = true; + event['time'] = timestampValue; } else { event['time'] = Math.floor(parseFloat(value[0])) * 1000; } From 38457fabc1067973fcbddf6dd8b6d7d9b0ab7a2a Mon Sep 17 00:00:00 2001 From: Mitsuhiro Tanda Date: Thu, 21 Mar 2019 16:39:37 +0900 Subject: [PATCH 3/3] fix, assign by event.time --- public/app/plugins/datasource/prometheus/datasource.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index 68e3cdb8149..c24000db092 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -358,7 +358,7 @@ export class PrometheusDatasource implements DataSourceApi { for (const value of series.values) { const valueIsTrue = value[1] === '1'; // e.g. ALERTS if (valueIsTrue || annotation.useValueForTime) { - const event = { + const event: any = { annotation: annotation, title: self.resultTransformer.renderTemplate(titleFormat, series.metric), tags: tags, @@ -371,9 +371,9 @@ export class PrometheusDatasource implements DataSourceApi { continue; } dupCheck[timestampValue] = true; - event['time'] = timestampValue; + event.time = timestampValue; } else { - event['time'] = Math.floor(parseFloat(value[0])) * 1000; + event.time = Math.floor(parseFloat(value[0])) * 1000; } eventList.push(event);