From fe7c483b9be1fa3dd22c389d3c29a685f10f39fd Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Fri, 26 Aug 2022 14:54:59 +0200 Subject: [PATCH] elastic: always use millisecond-intervals for alerting (#54157) (#54317) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit a58edc9f5e3f8b18772dab48b9396c91109a25c3) Co-authored-by: Gábor Farkas --- pkg/tsdb/elasticsearch/time_series_query.go | 9 ++++++++- pkg/tsdb/elasticsearch/time_series_query_test.go | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/tsdb/elasticsearch/time_series_query.go b/pkg/tsdb/elasticsearch/time_series_query.go index 29bef578882..70fe16ba9d7 100644 --- a/pkg/tsdb/elasticsearch/time_series_query.go +++ b/pkg/tsdb/elasticsearch/time_series_query.go @@ -251,7 +251,14 @@ func addDateHistogramAgg(aggBuilder es.AggBuilder, bucketAgg *BucketAgg, timeFro a.Format = bucketAgg.Settings.Get("format").MustString(es.DateFormatEpochMS) if a.FixedInterval == "auto" { - a.FixedInterval = "$__interval" + // note this is not really a valid grafana-variable-handling, + // because normally this would not match `$__interval_ms`, + // but because how we apply these in the go-code, this will work + // correctly, and becomes something like `500ms`. + // a nicer way would be to use `${__interval_ms}ms`, but + // that format is not recognized where we apply these variables + // in the elasticsearch datasource + a.FixedInterval = "$__interval_msms" } if offset, err := bucketAgg.Settings.Get("offset").String(); err == nil { diff --git a/pkg/tsdb/elasticsearch/time_series_query_test.go b/pkg/tsdb/elasticsearch/time_series_query_test.go index a1572f35c83..3834ba0238a 100644 --- a/pkg/tsdb/elasticsearch/time_series_query_test.go +++ b/pkg/tsdb/elasticsearch/time_series_query_test.go @@ -399,7 +399,7 @@ func TestExecuteTimeSeriesQuery(t *testing.T) { require.Equal(t, firstLevel.Aggregation.Type, "date_histogram") hAgg := firstLevel.Aggregation.Aggregation.(*es.DateHistogramAgg) require.Equal(t, hAgg.Field, "@timestamp") - require.Equal(t, hAgg.FixedInterval, "$__interval") + require.Equal(t, hAgg.FixedInterval, "$__interval_msms") require.Equal(t, hAgg.MinDocCount, 2) t.Run("Should not include time_zone when timeZone is utc", func(t *testing.T) {