From a80fd02f95b4a18e156051e6f7562b08d87d0307 Mon Sep 17 00:00:00 2001 From: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com> Date: Mon, 28 Aug 2023 16:38:44 +0200 Subject: [PATCH] Elasticsearch: Unify default value for geo hash grid precision across the code to 3 (#73922) * Unify default value * Use variable to keep default precisions in sync * Use default precision variable * Update precision description * Update defaultPrecisionString and move * Be more specific in naming of variabkle * Revert "Merge remote-tracking branch 'origin' into ivana/es-precision-default-value" This reverts commit 599f236a7717315a43434b88b50aea2fdfb502e3, reversing changes made to 6742be0c6de6b735cf4a0b82143bc628a7622d87. * Revert wrong merge * Revert wrong merge with turned off lefthook --- pkg/tsdb/elasticsearch/client/search_request.go | 3 ++- pkg/tsdb/elasticsearch/data_query.go | 2 +- .../plugins/datasource/elasticsearch/QueryBuilder.ts | 10 ++++++++-- .../SettingsEditor/useDescription.ts | 5 ++++- .../QueryEditor/BucketAggregationsEditor/utils.ts | 3 ++- .../app/plugins/datasource/elasticsearch/queryDef.ts | 2 ++ 6 files changed, 19 insertions(+), 6 deletions(-) diff --git a/pkg/tsdb/elasticsearch/client/search_request.go b/pkg/tsdb/elasticsearch/client/search_request.go index cafd25f16f5..ed8946b92a6 100644 --- a/pkg/tsdb/elasticsearch/client/search_request.go +++ b/pkg/tsdb/elasticsearch/client/search_request.go @@ -9,6 +9,7 @@ const ( HighlightPreTagsString = "@HIGHLIGHT@" HighlightPostTagsString = "@/HIGHLIGHT@" HighlightFragmentSize = 2147483647 + DefaultGeoHashPrecision = 3 ) // SearchRequestBuilder represents a builder which can build a search request @@ -452,7 +453,7 @@ func (b *aggBuilderImpl) Filters(key string, fn func(a *FiltersAggregation, b Ag func (b *aggBuilderImpl) GeoHashGrid(key, field string, fn func(a *GeoHashGridAggregation, b AggBuilder)) AggBuilder { innerAgg := &GeoHashGridAggregation{ Field: field, - Precision: 5, + Precision: DefaultGeoHashPrecision, } aggDef := newAggDef(key, &aggContainer{ Type: "geohash_grid", diff --git a/pkg/tsdb/elasticsearch/data_query.go b/pkg/tsdb/elasticsearch/data_query.go index 14bb5eaad5e..f7e9dd5258c 100644 --- a/pkg/tsdb/elasticsearch/data_query.go +++ b/pkg/tsdb/elasticsearch/data_query.go @@ -269,7 +269,7 @@ func addFiltersAgg(aggBuilder es.AggBuilder, bucketAgg *BucketAgg) es.AggBuilder func addGeoHashGridAgg(aggBuilder es.AggBuilder, bucketAgg *BucketAgg) es.AggBuilder { aggBuilder.GeoHashGrid(bucketAgg.ID, bucketAgg.Field, func(a *es.GeoHashGridAggregation, b es.AggBuilder) { - a.Precision = stringToIntWithDefaultValue(bucketAgg.Settings.Get("precision").MustString(), 3) + a.Precision = stringToIntWithDefaultValue(bucketAgg.Settings.Get("precision").MustString(), es.DefaultGeoHashPrecision) aggBuilder = b }) diff --git a/public/app/plugins/datasource/elasticsearch/QueryBuilder.ts b/public/app/plugins/datasource/elasticsearch/QueryBuilder.ts index b55be456509..b1a23287ea8 100644 --- a/public/app/plugins/datasource/elasticsearch/QueryBuilder.ts +++ b/public/app/plugins/datasource/elasticsearch/QueryBuilder.ts @@ -7,7 +7,13 @@ import { isPipelineAggregation, isPipelineAggregationWithMultipleBucketPaths, } from './components/QueryEditor/MetricAggregationsEditor/aggregations'; -import { defaultBucketAgg, defaultMetricAgg, findMetricById, highlightTags } from './queryDef'; +import { + defaultBucketAgg, + defaultMetricAgg, + findMetricById, + highlightTags, + defaultGeoHashPrecisionString, +} from './queryDef'; import { ElasticsearchQuery, TermsQuery, @@ -231,7 +237,7 @@ export class ElasticQueryBuilder { case 'geohash_grid': { esAgg['geohash_grid'] = { field: aggDef.field, - precision: aggDef.settings?.precision, + precision: aggDef.settings?.precision || defaultGeoHashPrecisionString, }; break; } diff --git a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/BucketAggregationsEditor/SettingsEditor/useDescription.ts b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/BucketAggregationsEditor/SettingsEditor/useDescription.ts index faa9c431780..5def15faa55 100644 --- a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/BucketAggregationsEditor/SettingsEditor/useDescription.ts +++ b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/BucketAggregationsEditor/SettingsEditor/useDescription.ts @@ -1,3 +1,5 @@ +import { defaultGeoHashPrecisionString } from 'app/plugins/datasource/elasticsearch/queryDef'; + import { BucketAggregation } from '../../../../types'; import { describeMetric, convertOrderByToMetricId } from '../../../../utils'; import { useQuery } from '../../ElasticsearchQueryContext'; @@ -61,7 +63,8 @@ export const useDescription = (bucketAgg: BucketAggregation): string => { } case 'geohash_grid': { - const precision = Math.max(Math.min(parseInt(bucketAgg.settings?.precision || '5', 10), 12), 1); + const precision = parseInt(bucketAgg.settings?.precision || defaultGeoHashPrecisionString, 10); + return `Precision: ${precision}`; } diff --git a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/BucketAggregationsEditor/utils.ts b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/BucketAggregationsEditor/utils.ts index 60ecba4d87e..e873a07cda4 100644 --- a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/BucketAggregationsEditor/utils.ts +++ b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/BucketAggregationsEditor/utils.ts @@ -1,5 +1,6 @@ import { InternalTimeZones, SelectableValue } from '@grafana/data'; +import { defaultGeoHashPrecisionString } from '../../../queryDef'; import { BucketsConfiguration } from '../../../types'; import { defaultFilter } from './SettingsEditor/FiltersSettingsEditor/utils'; @@ -26,7 +27,7 @@ export const bucketAggregationConfig: BucketsConfiguration = { label: 'Geo Hash Grid', requiresField: true, defaultSettings: { - precision: '3', + precision: defaultGeoHashPrecisionString, }, }, date_histogram: { diff --git a/public/app/plugins/datasource/elasticsearch/queryDef.ts b/public/app/plugins/datasource/elasticsearch/queryDef.ts index 5ae125269dd..77a8a01b824 100644 --- a/public/app/plugins/datasource/elasticsearch/queryDef.ts +++ b/public/app/plugins/datasource/elasticsearch/queryDef.ts @@ -32,6 +32,8 @@ export const highlightTags = { post: '@/HIGHLIGHT@', }; +export const defaultGeoHashPrecisionString = '3'; + export function defaultMetricAgg(id = '1'): MetricAggregation { return { type: 'count', id }; }