Skip to content

Commit 072ba20

Browse files
committed
Expose MeterRegistry to HTTP transport
Today the HTTP transport can expose to APM traces but not metrics. We'd like to be able to capture both, so in this commit we plumb in a whole `TelemetryProvider` instead of just a `Tracer`.
1 parent c9a4206 commit 072ba20

File tree

17 files changed

+76
-77
lines changed

17 files changed

+76
-77
lines changed

modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
import org.elasticsearch.http.netty4.internal.HttpHeadersAuthenticatorUtils;
5858
import org.elasticsearch.http.netty4.internal.HttpValidator;
5959
import org.elasticsearch.rest.ChunkedZipResponse;
60-
import org.elasticsearch.telemetry.tracing.Tracer;
60+
import org.elasticsearch.telemetry.TelemetryProvider;
6161
import org.elasticsearch.threadpool.ThreadPool;
6262
import org.elasticsearch.transport.netty4.AcceptChannelHandler;
6363
import org.elasticsearch.transport.netty4.NetUtils;
@@ -115,7 +115,7 @@ public Netty4HttpServerTransport(
115115
Dispatcher dispatcher,
116116
ClusterSettings clusterSettings,
117117
SharedGroupFactory sharedGroupFactory,
118-
Tracer tracer,
118+
TelemetryProvider telemetryProvider,
119119
TLSConfig tlsConfig,
120120
@Nullable AcceptChannelHandler.AcceptPredicate acceptChannelPredicate,
121121
@Nullable HttpValidator httpValidator
@@ -128,7 +128,7 @@ public Netty4HttpServerTransport(
128128
xContentRegistry,
129129
dispatcher,
130130
clusterSettings,
131-
tracer
131+
telemetryProvider
132132
);
133133
Netty4Utils.setAvailableProcessors(EsExecutors.allocatedProcessors(settings));
134134
NettyAllocator.logAllocatorDescriptionIfNeeded();

modules/transport-netty4/src/main/java/org/elasticsearch/transport/netty4/Netty4Plugin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import org.elasticsearch.plugins.NetworkPlugin;
3131
import org.elasticsearch.plugins.Plugin;
3232
import org.elasticsearch.rest.RestRequest;
33-
import org.elasticsearch.telemetry.tracing.Tracer;
33+
import org.elasticsearch.telemetry.TelemetryProvider;
3434
import org.elasticsearch.threadpool.ThreadPool;
3535
import org.elasticsearch.transport.Transport;
3636
import org.elasticsearch.xcontent.NamedXContentRegistry;
@@ -184,7 +184,7 @@ public Map<String, Supplier<HttpServerTransport>> getHttpTransports(
184184
HttpServerTransport.Dispatcher dispatcher,
185185
BiConsumer<HttpPreRequest, ThreadContext> perRequestThreadContext,
186186
ClusterSettings clusterSettings,
187-
Tracer tracer
187+
TelemetryProvider telemetryProvider
188188
) {
189189
return Collections.singletonMap(
190190
NETTY_HTTP_TRANSPORT_NAME,
@@ -196,7 +196,7 @@ public Map<String, Supplier<HttpServerTransport>> getHttpTransports(
196196
dispatcher,
197197
clusterSettings,
198198
getSharedGroupFactory(settings),
199-
tracer,
199+
telemetryProvider,
200200
TLSConfig.noTLS(),
201201
null,
202202
null

modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4BadRequestTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import org.elasticsearch.rest.RestRequest;
2525
import org.elasticsearch.rest.RestResponse;
2626
import org.elasticsearch.rest.RestStatus;
27-
import org.elasticsearch.telemetry.tracing.Tracer;
27+
import org.elasticsearch.telemetry.TelemetryProvider;
2828
import org.elasticsearch.test.ESTestCase;
2929
import org.elasticsearch.threadpool.TestThreadPool;
3030
import org.elasticsearch.threadpool.ThreadPool;
@@ -86,7 +86,7 @@ public void dispatchBadRequest(RestChannel channel, ThreadContext threadContext,
8686
dispatcher,
8787
new ClusterSettings(Settings.EMPTY, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS),
8888
new SharedGroupFactory(Settings.EMPTY),
89-
Tracer.NOOP,
89+
TelemetryProvider.NOOP,
9090
TLSConfig.noTLS(),
9191
null,
9292
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)

modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpPipeliningHandlerTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
import org.elasticsearch.http.HttpResponse;
4747
import org.elasticsearch.rest.ChunkedRestResponseBodyPart;
4848
import org.elasticsearch.rest.RestStatus;
49-
import org.elasticsearch.telemetry.tracing.Tracer;
49+
import org.elasticsearch.telemetry.TelemetryProvider;
5050
import org.elasticsearch.test.ESTestCase;
5151
import org.elasticsearch.threadpool.TestThreadPool;
5252
import org.elasticsearch.threadpool.ThreadPool;
@@ -158,7 +158,7 @@ private Netty4HttpServerTransport httpServerTransport() {
158158
new AggregatingDispatcher(),
159159
ClusterSettings.createBuiltInClusterSettings(),
160160
new SharedGroupFactory(Settings.EMPTY),
161-
Tracer.NOOP,
161+
TelemetryProvider.NOOP,
162162
TLSConfig.noTLS(),
163163
null,
164164
null

modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerPipeliningTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.elasticsearch.http.HttpResponse;
2727
import org.elasticsearch.http.HttpServerTransport;
2828
import org.elasticsearch.rest.RestStatus;
29-
import org.elasticsearch.telemetry.tracing.Tracer;
29+
import org.elasticsearch.telemetry.TelemetryProvider;
3030
import org.elasticsearch.test.ESTestCase;
3131
import org.elasticsearch.threadpool.TestThreadPool;
3232
import org.elasticsearch.threadpool.ThreadPool;
@@ -106,7 +106,7 @@ class CustomNettyHttpServerTransport extends Netty4HttpServerTransport {
106106
new AggregatingDispatcher(),
107107
new ClusterSettings(Settings.EMPTY, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS),
108108
new SharedGroupFactory(settings),
109-
Tracer.NOOP,
109+
TelemetryProvider.NOOP,
110110
TLSConfig.noTLS(),
111111
null,
112112
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)

modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerTransportTests.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
import org.elasticsearch.rest.RestChannel;
8080
import org.elasticsearch.rest.RestRequest;
8181
import org.elasticsearch.rest.RestResponse;
82-
import org.elasticsearch.telemetry.tracing.Tracer;
82+
import org.elasticsearch.telemetry.TelemetryProvider;
8383
import org.elasticsearch.test.rest.FakeRestRequest;
8484
import org.elasticsearch.threadpool.TestThreadPool;
8585
import org.elasticsearch.threadpool.ThreadPool;
@@ -213,7 +213,7 @@ public void dispatchBadRequest(RestChannel channel, ThreadContext threadContext,
213213
dispatcher,
214214
clusterSettings,
215215
new SharedGroupFactory(settings),
216-
Tracer.NOOP,
216+
TelemetryProvider.NOOP,
217217
TLSConfig.noTLS(),
218218
null,
219219
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)
@@ -265,7 +265,7 @@ public void testBindUnavailableAddress() {
265265
new AggregatingDispatcher(),
266266
clusterSettings,
267267
new SharedGroupFactory(Settings.EMPTY),
268-
Tracer.NOOP,
268+
TelemetryProvider.NOOP,
269269
TLSConfig.noTLS(),
270270
null,
271271
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)
@@ -286,7 +286,7 @@ public void testBindUnavailableAddress() {
286286
new AggregatingDispatcher(),
287287
clusterSettings,
288288
new SharedGroupFactory(settings),
289-
Tracer.NOOP,
289+
TelemetryProvider.NOOP,
290290
TLSConfig.noTLS(),
291291
null,
292292
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)
@@ -341,7 +341,7 @@ public void dispatchBadRequest(final RestChannel channel, final ThreadContext th
341341
dispatcher,
342342
clusterSettings,
343343
new SharedGroupFactory(settings),
344-
Tracer.NOOP,
344+
TelemetryProvider.NOOP,
345345
TLSConfig.noTLS(),
346346
null,
347347
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)
@@ -412,7 +412,7 @@ public void dispatchBadRequest(final RestChannel channel, final ThreadContext th
412412
dispatcher,
413413
clusterSettings,
414414
new SharedGroupFactory(Settings.EMPTY),
415-
Tracer.NOOP,
415+
TelemetryProvider.NOOP,
416416
TLSConfig.noTLS(),
417417
null,
418418
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)
@@ -518,7 +518,7 @@ public void dispatchBadRequest(final RestChannel channel, final ThreadContext th
518518
dispatcher,
519519
randomClusterSettings(),
520520
new SharedGroupFactory(settings),
521-
Tracer.NOOP,
521+
TelemetryProvider.NOOP,
522522
TLSConfig.noTLS(),
523523
null,
524524
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)
@@ -587,7 +587,7 @@ public void dispatchBadRequest(final RestChannel channel, final ThreadContext th
587587
dispatcher,
588588
randomClusterSettings(),
589589
new SharedGroupFactory(settings),
590-
Tracer.NOOP,
590+
TelemetryProvider.NOOP,
591591
TLSConfig.noTLS(),
592592
new AcceptChannelHandler.AcceptPredicate() {
593593
@Override
@@ -658,7 +658,7 @@ public void dispatchBadRequest(final RestChannel channel, final ThreadContext th
658658
dispatcher,
659659
randomClusterSettings(),
660660
new SharedGroupFactory(settings),
661-
Tracer.NOOP,
661+
TelemetryProvider.NOOP,
662662
TLSConfig.noTLS(),
663663
null,
664664
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)
@@ -724,7 +724,7 @@ public void dispatchBadRequest(final RestChannel channel, final ThreadContext th
724724
dispatcher,
725725
clusterSettings,
726726
new SharedGroupFactory(settings),
727-
Tracer.NOOP,
727+
TelemetryProvider.NOOP,
728728
TLSConfig.noTLS(),
729729
null,
730730
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)
@@ -1079,7 +1079,7 @@ public void dispatchBadRequest(final RestChannel channel, final ThreadContext th
10791079
dispatcher,
10801080
clusterSettings,
10811081
new SharedGroupFactory(Settings.EMPTY),
1082-
Tracer.NOOP,
1082+
TelemetryProvider.NOOP,
10831083
TLSConfig.noTLS(),
10841084
null,
10851085
randomFrom((httpPreRequest, channel, listener) -> listener.onResponse(null), null)
@@ -1132,7 +1132,7 @@ private Netty4HttpServerTransport getTestNetty4HttpServerTransport(
11321132
dispatcher,
11331133
clusterSettings,
11341134
new SharedGroupFactory(settings),
1135-
Tracer.NOOP,
1135+
TelemetryProvider.NOOP,
11361136
TLSConfig.noTLS(),
11371137
null,
11381138
httpValidator

qa/smoke-test-http/src/internalClusterTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import org.elasticsearch.indices.breaker.CircuitBreakerService;
2828
import org.elasticsearch.plugins.NetworkPlugin;
2929
import org.elasticsearch.plugins.Plugin;
30-
import org.elasticsearch.telemetry.tracing.Tracer;
30+
import org.elasticsearch.telemetry.TelemetryProvider;
3131
import org.elasticsearch.threadpool.ThreadPool;
3232
import org.elasticsearch.transport.netty4.AcceptChannelHandler;
3333
import org.elasticsearch.transport.netty4.SharedGroupFactory;
@@ -109,7 +109,7 @@ public Map<String, Supplier<HttpServerTransport>> getHttpTransports(
109109
HttpServerTransport.Dispatcher dispatcher,
110110
BiConsumer<HttpPreRequest, ThreadContext> perRequestThreadContext,
111111
ClusterSettings clusterSettings,
112-
Tracer tracer
112+
TelemetryProvider telemetryProvider
113113
) {
114114
return Map.of(
115115
FakeHttpTransport.NAME,
@@ -121,7 +121,7 @@ public Map<String, Supplier<HttpServerTransport>> getHttpTransports(
121121
dispatcher,
122122
clusterSettings,
123123
new SharedGroupFactory(settings),
124-
tracer,
124+
telemetryProvider,
125125
TLSConfig.noTLS(),
126126
null,
127127
null
@@ -143,7 +143,7 @@ public FakeHttpTransport(
143143
Dispatcher dispatcher,
144144
ClusterSettings clusterSettings,
145145
SharedGroupFactory sharedGroupFactory,
146-
Tracer tracer,
146+
TelemetryProvider telemetryProvider,
147147
TLSConfig tlsConfig,
148148
AcceptChannelHandler.AcceptPredicate acceptChannelPredicate,
149149
HttpValidator httpValidator
@@ -156,7 +156,7 @@ public FakeHttpTransport(
156156
dispatcher,
157157
clusterSettings,
158158
sharedGroupFactory,
159-
tracer,
159+
telemetryProvider,
160160
tlsConfig,
161161
acceptChannelPredicate,
162162
httpValidator

server/src/main/java/org/elasticsearch/common/network/NetworkModule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import org.elasticsearch.plugins.NetworkPlugin;
3434
import org.elasticsearch.tasks.RawTaskStatus;
3535
import org.elasticsearch.tasks.Task;
36-
import org.elasticsearch.telemetry.tracing.Tracer;
36+
import org.elasticsearch.telemetry.TelemetryProvider;
3737
import org.elasticsearch.threadpool.ThreadPool;
3838
import org.elasticsearch.transport.Transport;
3939
import org.elasticsearch.transport.TransportInterceptor;
@@ -130,7 +130,7 @@ public NetworkModule(
130130
HttpServerTransport.Dispatcher dispatcher,
131131
BiConsumer<HttpPreRequest, ThreadContext> perRequestThreadContext,
132132
ClusterSettings clusterSettings,
133-
Tracer tracer
133+
TelemetryProvider telemetryProvider
134134
) {
135135
this.settings = settings;
136136
for (NetworkPlugin plugin : plugins) {
@@ -145,7 +145,7 @@ public NetworkModule(
145145
dispatcher,
146146
perRequestThreadContext,
147147
clusterSettings,
148-
tracer
148+
telemetryProvider
149149
);
150150
for (Map.Entry<String, Supplier<HttpServerTransport>> entry : httpTransportFactory.entrySet()) {
151151
registerHttpTransport(entry.getKey(), entry.getValue());

server/src/main/java/org/elasticsearch/http/AbstractHttpServerTransport.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.elasticsearch.rest.RestChannel;
4141
import org.elasticsearch.rest.RestRequest;
4242
import org.elasticsearch.tasks.Task;
43+
import org.elasticsearch.telemetry.TelemetryProvider;
4344
import org.elasticsearch.telemetry.tracing.Tracer;
4445
import org.elasticsearch.threadpool.ThreadPool;
4546
import org.elasticsearch.transport.BindTransportException;
@@ -115,7 +116,7 @@ protected AbstractHttpServerTransport(
115116
NamedXContentRegistry xContentRegistry,
116117
Dispatcher dispatcher,
117118
ClusterSettings clusterSettings,
118-
Tracer tracer
119+
TelemetryProvider telemetryProvider
119120
) {
120121
this.settings = settings;
121122
this.networkService = networkService;
@@ -140,7 +141,7 @@ protected AbstractHttpServerTransport(
140141
this.port = SETTING_HTTP_PORT.get(settings);
141142

142143
this.maxContentLength = SETTING_HTTP_MAX_CONTENT_LENGTH.get(settings);
143-
this.tracer = tracer;
144+
this.tracer = telemetryProvider.getTracer();
144145
this.httpLogger = new HttpTracer(settings, clusterSettings);
145146
clusterSettings.addSettingsUpdateConsumer(
146147
TransportSettings.SLOW_OPERATION_THRESHOLD_SETTING,

server/src/main/java/org/elasticsearch/node/NodeConstruction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1067,7 +1067,7 @@ public Map<String, String> queryFields() {
10671067
actionModule.getRestController(),
10681068
actionModule::copyRequestHeadersToThreadContext,
10691069
clusterService.getClusterSettings(),
1070-
telemetryProvider.getTracer()
1070+
telemetryProvider
10711071
);
10721072

10731073
var indexTemplateMetadataUpgraders = pluginsService.map(Plugin::getIndexTemplateMetadataUpgrader).toList();

0 commit comments

Comments
 (0)