Skip to content

Commit 3b3d5ec

Browse files
authored
Expose MeterRegistry to HTTP transport (elastic#130808)
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`. Relates ES-12223
1 parent 06da3a1 commit 3b3d5ec

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)