Skip to content

Commit bc44bc9

Browse files
committed
Add sort to telemetry
1 parent 3259a0c commit bc44bc9

File tree

7 files changed

+39
-0
lines changed

7 files changed

+39
-0
lines changed

server/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,6 +1427,7 @@ private SearchSourceBuilder parseXContent(
14271427
}
14281428
} else if (SORT_FIELD.match(currentFieldName, parser.getDeprecationHandler())) {
14291429
sort(parser.text());
1430+
searchUsage.trackSectionUsage(SORT_FIELD.getPreferredName());
14301431
} else if (PROFILE_FIELD.match(currentFieldName, parser.getDeprecationHandler())) {
14311432
profile = parser.booleanValue();
14321433
} else {
@@ -1508,6 +1509,9 @@ private SearchSourceBuilder parseXContent(
15081509
}
15091510
} else if (SORT_FIELD.match(currentFieldName, parser.getDeprecationHandler())) {
15101511
sorts = new ArrayList<>(SortBuilder.fromXContent(parser));
1512+
for (var sort : sorts) {
1513+
searchUsage.trackSectionUsage(SORT_FIELD.getPreferredName(), sort.name());
1514+
}
15111515
} else if (RESCORE_FIELD.match(currentFieldName, parser.getDeprecationHandler())) {
15121516
rescoreBuilders = new ArrayList<>();
15131517
rescoreBuilders.add(RescorerBuilder.parseFromXContent(parser, searchUsage::trackRescorerUsage));

server/src/main/java/org/elasticsearch/search/sort/FieldSortBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,11 @@ public SortFieldAndFormat build(SearchExecutionContext context) throws IOExcepti
373373
return new SortFieldAndFormat(field, formatter);
374374
}
375375

376+
@Override
377+
public String name() {
378+
return NAME;
379+
}
380+
376381
public boolean canRewriteToMatchNone() {
377382
return nestedSort == null && (missing == null || "_last".equals(missing));
378383
}

server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,11 @@ public SortFieldAndFormat build(SearchExecutionContext context) throws IOExcepti
513513
);
514514
}
515515

516+
@Override
517+
public String name() {
518+
return NAME;
519+
}
520+
516521
@Override
517522
public BucketedSort buildBucketedSort(SearchExecutionContext context, BigArrays bigArrays, int bucketSize, BucketedSort.ExtraData extra)
518523
throws IOException {

server/src/main/java/org/elasticsearch/search/sort/ScoreSortBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,11 @@ public SortFieldAndFormat build(SearchExecutionContext context) {
9999
}
100100
}
101101

102+
@Override
103+
public String name() {
104+
return NAME;
105+
}
106+
102107
@Override
103108
public BucketedSort buildBucketedSort(
104109
SearchExecutionContext context,

server/src/main/java/org/elasticsearch/search/sort/ScriptSortBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,11 @@ public SortFieldAndFormat build(SearchExecutionContext context) throws IOExcepti
240240
);
241241
}
242242

243+
@Override
244+
public String name() {
245+
return NAME;
246+
}
247+
243248
@Override
244249
public BucketedSort buildBucketedSort(SearchExecutionContext context, BigArrays bigArrays, int bucketSize, BucketedSort.ExtraData extra)
245250
throws IOException {

server/src/main/java/org/elasticsearch/search/sort/SortBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ public abstract class SortBuilder<T extends SortBuilder<T>>
6767
*/
6868
protected abstract SortFieldAndFormat build(SearchExecutionContext context) throws IOException;
6969

70+
/**
71+
* The name or type of the sort
72+
*/
73+
public abstract String name();
74+
7075
/**
7176
* Create a {@linkplain BucketedSort} which is useful for sorting inside of aggregations.
7277
*/

server/src/main/java/org/elasticsearch/usage/SearchUsage.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
public final class SearchUsage {
2222

2323
public final String RETRIEVERS_NAME = "retrievers";
24+
public final String SECTION_NAME = "section";
2425

2526
private final Set<String> queries = new HashSet<>();
2627
private final Set<String> rescorers = new HashSet<>();
@@ -42,6 +43,15 @@ public void trackSectionUsage(String section) {
4243
sections.add(section);
4344
}
4445

46+
/**
47+
* Track the usage of the provided search section with extra
48+
* parameters specific to the section
49+
*/
50+
public void trackSectionUsage(String section, String extra) {
51+
sections.add(section);
52+
extendedUsage.track(SECTION_NAME, section, extra);
53+
}
54+
4555
/**
4656
* Track the usage of the provided rescorer
4757
*/

0 commit comments

Comments
 (0)