|
10 | 10 |
|
11 | 11 | import org.apache.lucene.search.TotalHits;
|
12 | 12 | import org.opensearch.common.annotation.InternalApi;
|
| 13 | +import org.opensearch.telemetry.tracing.Span; |
| 14 | +import org.opensearch.telemetry.tracing.Tracer; |
| 15 | +import org.opensearch.telemetry.tracing.noop.NoopSpan; |
| 16 | +import org.opensearch.telemetry.tracing.noop.NoopTracer; |
13 | 17 |
|
14 | 18 | import java.util.EnumMap;
|
15 | 19 | import java.util.HashMap;
|
|
23 | 27 | */
|
24 | 28 | @InternalApi
|
25 | 29 | class SearchRequestContext {
|
| 30 | + private final SearchRequest searchRequest; |
| 31 | + private SearchTask searchTask; |
26 | 32 | private final SearchRequestOperationsListener searchRequestOperationsListener;
|
27 | 33 | private long absoluteStartNanos;
|
28 | 34 | private final Map<String, Long> phaseTookMap;
|
29 | 35 | private TotalHits totalHits;
|
30 | 36 | private final EnumMap<ShardStatsFieldNames, Integer> shardStats;
|
| 37 | + private final Tracer tracer; |
| 38 | + private Span requestSpan; |
| 39 | + private Span phaseSpan; |
31 | 40 |
|
32 |
| - private final SearchRequest searchRequest; |
| 41 | + /** |
| 42 | + * This constructor is for testing only |
| 43 | + */ |
| 44 | + SearchRequestContext(SearchRequestOperationsListener searchRequestOperationsListener, SearchRequest searchRequest) { |
| 45 | + this(searchRequestOperationsListener, searchRequest, NoopTracer.INSTANCE); |
| 46 | + } |
33 | 47 |
|
34 |
| - SearchRequestContext(final SearchRequestOperationsListener searchRequestOperationsListener, final SearchRequest searchRequest) { |
| 48 | + SearchRequestContext(SearchRequestOperationsListener searchRequestOperationsListener, SearchRequest searchRequest, Tracer tracer) { |
35 | 49 | this.searchRequestOperationsListener = searchRequestOperationsListener;
|
| 50 | + this.searchRequest = searchRequest; |
| 51 | + this.tracer = tracer; |
36 | 52 | this.absoluteStartNanos = System.nanoTime();
|
37 | 53 | this.phaseTookMap = new HashMap<>();
|
38 | 54 | this.shardStats = new EnumMap<>(ShardStatsFieldNames.class);
|
39 |
| - this.searchRequest = searchRequest; |
| 55 | + this.requestSpan = NoopSpan.INSTANCE; |
| 56 | + this.phaseSpan = NoopSpan.INSTANCE; |
| 57 | + } |
| 58 | + |
| 59 | + SearchRequest getSearchRequest() { |
| 60 | + return searchRequest; |
| 61 | + } |
| 62 | + |
| 63 | + void setSearchTask(SearchTask searchTask) { |
| 64 | + this.searchTask = searchTask; |
| 65 | + } |
| 66 | + |
| 67 | + SearchTask getSearchTask() { |
| 68 | + return searchTask; |
40 | 69 | }
|
41 | 70 |
|
42 | 71 | SearchRequestOperationsListener getSearchRequestOperationsListener() {
|
@@ -107,6 +136,26 @@ String formattedShardStats() {
|
107 | 136 | );
|
108 | 137 | }
|
109 | 138 | }
|
| 139 | + |
| 140 | + Tracer getTracer() { |
| 141 | + return tracer; |
| 142 | + } |
| 143 | + |
| 144 | + void setRequestSpan(Span requestSpan) { |
| 145 | + this.requestSpan = requestSpan; |
| 146 | + } |
| 147 | + |
| 148 | + Span getRequestSpan() { |
| 149 | + return requestSpan; |
| 150 | + } |
| 151 | + |
| 152 | + void setPhaseSpan(Span phaseSpan) { |
| 153 | + this.phaseSpan = phaseSpan; |
| 154 | + } |
| 155 | + |
| 156 | + Span getPhaseSpan() { |
| 157 | + return phaseSpan; |
| 158 | + } |
110 | 159 | }
|
111 | 160 |
|
112 | 161 | enum ShardStatsFieldNames {
|
|
0 commit comments