From d5f02644939fbacb2a7ed0b37c7d8c6b62d32bdb Mon Sep 17 00:00:00 2001 From: Rodrigo Zhou Date: Mon, 15 May 2023 16:34:43 -0700 Subject: [PATCH] Tag metric tracking custom order by with namespace (#4344) --- .../visibility/store/elasticsearch/visibility_store.go | 7 ++++++- .../store/elasticsearch/visibility_store_read_test.go | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/common/persistence/visibility/store/elasticsearch/visibility_store.go b/common/persistence/visibility/store/elasticsearch/visibility_store.go index 264ae6033c9..9879bad482d 100644 --- a/common/persistence/visibility/store/elasticsearch/visibility_store.go +++ b/common/persistence/visibility/store/elasticsearch/visibility_store.go @@ -619,6 +619,12 @@ func (s *visibilityStore) buildSearchParametersV2( return nil, err } + if len(fieldSorts) > 0 { + // If fieldSorts is not empty, then it's using custom order by. + s.metricsHandler.WithTags(metrics.NamespaceTag(request.Namespace.String())). + Counter(metrics.ElasticsearchCustomOrderByClauseCount.GetMetricName()).Record(1) + } + params := &client.SearchParameters{ Index: s.index, Query: boolQuery, @@ -734,7 +740,6 @@ func (s *visibilityStore) getListFieldSorter(fieldSorts []*elastic.FieldSort) ([ if len(fieldSorts) == 0 { return defaultSorter, nil } - s.metricsHandler.Counter(metrics.ElasticsearchCustomOrderByClauseCount.GetMetricName()).Record(1) res := make([]elastic.Sorter, len(fieldSorts)+1) for i, fs := range fieldSorts { res[i] = fs diff --git a/common/persistence/visibility/store/elasticsearch/visibility_store_read_test.go b/common/persistence/visibility/store/elasticsearch/visibility_store_read_test.go index a74cbb55f8f..fe83ff27df0 100644 --- a/common/persistence/visibility/store/elasticsearch/visibility_store_read_test.go +++ b/common/persistence/visibility/store/elasticsearch/visibility_store_read_test.go @@ -425,7 +425,6 @@ func (s *ESVisibilitySuite) TestGetListFieldSorter() { // test passing non-empty fieldSorts testFieldSorts := [2]*elastic.FieldSort{elastic.NewFieldSort("_test"), elastic.NewFieldSort("_second_tes")} - s.mockMetricsHandler.EXPECT().Counter(metrics.ElasticsearchCustomOrderByClauseCount.GetMetricName()).Return(metrics.NoopCounterMetricFunc) sorter, err = s.visibilityStore.getListFieldSorter(testFieldSorts[:]) expectedSorter := make([]elastic.Sorter, len(testFieldSorts)+1) expectedSorter[0] = testFieldSorts[0] @@ -494,6 +493,7 @@ func (s *ESVisibilitySuite) TestBuildSearchParametersV2() { // test custom sort request.Query = `Order bY WorkflowId` boolQuery = elastic.NewBoolQuery().Filter(matchNamespaceQuery).MustNot(namespaceDivisionExists) + s.mockMetricsHandler.EXPECT().WithTags(metrics.NamespaceTag(request.Namespace.String())).Return(s.mockMetricsHandler) s.mockMetricsHandler.EXPECT().Counter(metrics.ElasticsearchCustomOrderByClauseCount.GetMetricName()).Return(metrics.NoopCounterMetricFunc) p, err = s.visibilityStore.buildSearchParametersV2(request, s.visibilityStore.getListFieldSorter) s.NoError(err)