22
22
23
23
public final class ShardSearchPhaseAPMMetrics implements SearchOperationListener {
24
24
25
+ public static final String DFS_SEARCH_PHASE_METRIC = "es.search.shards.phases.dfs.duration.histogram" ;
25
26
public static final String QUERY_SEARCH_PHASE_METRIC = "es.search.shards.phases.query.duration.histogram" ;
26
27
public static final String FETCH_SEARCH_PHASE_METRIC = "es.search.shards.phases.fetch.duration.histogram" ;
27
28
29
+ private final LongHistogram dfsPhaseMetric ;
28
30
private final LongHistogram queryPhaseMetric ;
29
31
private final LongHistogram fetchPhaseMetric ;
30
32
31
33
public ShardSearchPhaseAPMMetrics (MeterRegistry meterRegistry ) {
34
+ this .dfsPhaseMetric = meterRegistry .registerLongHistogram (
35
+ DFS_SEARCH_PHASE_METRIC ,
36
+ "DFS search phase execution times at the shard level, expressed as a histogram" ,
37
+ "ms"
38
+ );
32
39
this .queryPhaseMetric = meterRegistry .registerLongHistogram (
33
40
QUERY_SEARCH_PHASE_METRIC ,
34
41
"Query search phase execution times at the shard level, expressed as a histogram" ,
@@ -41,6 +48,11 @@ public ShardSearchPhaseAPMMetrics(MeterRegistry meterRegistry) {
41
48
);
42
49
}
43
50
51
+ @ Override
52
+ public void onDfsPhase (SearchContext searchContext , long tookInNanos ) {
53
+ recordPhaseLatency (dfsPhaseMetric , tookInNanos );
54
+ }
55
+
44
56
@ Override
45
57
public void onQueryPhase (SearchContext searchContext , long tookInNanos ) {
46
58
SearchExecutionContext searchExecutionContext = searchContext .getSearchExecutionContext ();
@@ -55,6 +67,10 @@ public void onFetchPhase(SearchContext searchContext, long tookInNanos) {
55
67
recordPhaseLatency (fetchPhaseMetric , tookInNanos , searchContext .request (), rangeTimestampFrom );
56
68
}
57
69
70
+ private static void recordPhaseLatency (LongHistogram histogramMetric , long tookInNanos ) {
71
+ histogramMetric .record (TimeUnit .NANOSECONDS .toMillis (tookInNanos ));
72
+ }
73
+
58
74
private static void recordPhaseLatency (
59
75
LongHistogram histogramMetric ,
60
76
long tookInNanos ,
0 commit comments