From a47afbc9597bdb246d1558263332192b8f3ddde8 Mon Sep 17 00:00:00 2001 From: Stuart Tettemer Date: Mon, 18 Sep 2023 21:24:41 -0500 Subject: [PATCH 01/18] Sketch of metering API --- .../elasticsearch/tracing/apm/APMTracer.java | 63 ++++++++++++++++++- .../tracing/apm/DoubleGauge.java | 19 ++++++ .../tracing/apm/DoubleHistogram.java | 19 ++++++ .../tracing/apm/OtelDoubleGauge.java | 50 +++++++++++++++ .../tracing/apm/OtelDoubleHistogram.java | 55 ++++++++++++++++ .../elasticsearch/tracing/apm/OtelHelper.java | 39 ++++++++++++ .../tracing/apm/APMTracerTests.java | 3 +- .../java/org/elasticsearch/tracing/Meter.java | 12 ++++ .../org/elasticsearch/tracing/MetricName.java | 41 ++++++++++++ 9 files changed, 298 insertions(+), 3 deletions(-) create mode 100644 modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleGauge.java create mode 100644 modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleHistogram.java create mode 100644 modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleGauge.java create mode 100644 modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleHistogram.java create mode 100644 modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelHelper.java create mode 100644 server/src/main/java/org/elasticsearch/tracing/Meter.java create mode 100644 server/src/main/java/org/elasticsearch/tracing/MetricName.java diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMTracer.java b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMTracer.java index 09eff0c820745..5933b2e66254d 100644 --- a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMTracer.java +++ b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMTracer.java @@ -10,6 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanBuilder; import io.opentelemetry.api.trace.SpanKind; @@ -34,6 +35,7 @@ import org.elasticsearch.core.Nullable; import org.elasticsearch.core.Releasable; import org.elasticsearch.tasks.Task; +import org.elasticsearch.tracing.MetricName; import org.elasticsearch.tracing.SpanId; import java.security.AccessController; @@ -62,6 +64,8 @@ public class APMTracer extends AbstractLifecycleComponent implements org.elastic /** Holds in-flight span information. */ private final Map spans = ConcurrentCollections.newConcurrentMap(); + private final Map doubleGauges = ConcurrentCollections.newConcurrentMap(); + private final Map doubleHistograms = ConcurrentCollections.newConcurrentMap(); private volatile boolean enabled; private volatile APMServices services; @@ -86,7 +90,7 @@ public void setNodeName(String nodeName) { /** * This class is used to make all OpenTelemetry services visible at once */ - record APMServices(Tracer tracer, OpenTelemetry openTelemetry) {} + record APMServices(Tracer tracer, Meter meter, OpenTelemetry openTelemetry) {} public APMTracer(Settings settings) { this.includeNames = APM_TRACING_NAMES_INCLUDE_SETTING.get(settings); @@ -150,8 +154,9 @@ APMServices createApmServices() { return AccessController.doPrivileged((PrivilegedAction) () -> { var openTelemetry = GlobalOpenTelemetry.get(); var tracer = openTelemetry.getTracer("elasticsearch", Version.CURRENT.toString()); + var meter = openTelemetry.getMeter("elasticsearch"); - return new APMServices(tracer, openTelemetry); + return new APMServices(tracer, meter, openTelemetry); }); } @@ -424,6 +429,11 @@ Map getSpans() { return spans; } + // TODO(stu): remove + APMServices getServices() { + return services; + } + private static CharacterRunAutomaton buildAutomaton(List includePatterns, List excludePatterns) { Automaton includeAutomaton = patternsToAutomaton(includePatterns); Automaton excludeAutomaton = patternsToAutomaton(excludePatterns); @@ -452,4 +462,53 @@ private static Automaton patternsToAutomaton(List patterns) { } return Operations.union(automata); } + + public DoubleGauge registerDoubleGauge(MetricName name, String description, T unit) { + return doubleGauges.compute(name, (k, v) -> { + if (v != null) { + throw new IllegalStateException("double gauge [" + name.getRawName() + "] already registered"); + } + return OtelDoubleGauge.build(services.meter, name, description, unit); + } + ); + } + + public void recordDoubleGauge(MetricName name, double value) { + DoubleGauge gauge = doubleGauges.get(name); + if (gauge != null) { + gauge.record(value); + } + } + + public void recordDoubleGauge(MetricName name, double value, Map attributes) { + DoubleGauge gauge = doubleGauges.get(name); + if (gauge != null) { + gauge.record(value, attributes); + } + } + + public DoubleHistogram registerDoubleHistogram(MetricName name, String description, T unit) { + return doubleHistograms.compute(name, (k, v) -> { + if (v != null) { + throw new IllegalStateException("double histogram [" + name.getRawName() + "] already registered"); + } + return OtelDoubleHistogram.build(services.meter, name, description, unit); + } + ); + } + + public void recordDoubleHistogram(MetricName name, double value) { + DoubleHistogram histogram = doubleHistograms.get(name); + if (histogram != null) { + histogram.record(value); + } + } + + public void recordDoubleHistogram(MetricName name, double value, Map attributes) { + DoubleHistogram histogram = doubleHistograms.get(name); + if (histogram != null) { + histogram.record(value, attributes); + } + } + } diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleGauge.java b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleGauge.java new file mode 100644 index 0000000000000..934321fad7e89 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleGauge.java @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.tracing.apm; + +import java.util.Map; + +/** + * Record non-additive double values + */ +public interface DoubleGauge { + void record(double value); + void record(double value, Map attributes); +} diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleHistogram.java b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleHistogram.java new file mode 100644 index 0000000000000..46d0b78b0b02e --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleHistogram.java @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.tracing.apm; + +import org.elasticsearch.common.util.concurrent.ThreadContext; + +import java.util.Map; + +public interface DoubleHistogram { + void record(double value); + void record(double value, Map attributes); + void record(double value, Map attributes, ThreadContext threadContext); +} diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleGauge.java b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleGauge.java new file mode 100644 index 0000000000000..5b3c7f472c0d3 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleGauge.java @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.tracing.apm; + +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.Meter; +import io.opentelemetry.api.metrics.ObservableDoubleMeasurement; + +import org.elasticsearch.tracing.MetricName; + +import java.util.Map; + +public class OtelDoubleGauge implements DoubleGauge { + private final ObservableDoubleMeasurement gauge; + private final MetricName name; + private final String description; + private final T unit; + + private OtelDoubleGauge(ObservableDoubleMeasurement gauge, MetricName name, String description, T unit) { + this.gauge = gauge; + this.name = name; + this.description = description; + this.unit = unit; + } + + public static OtelDoubleGauge build(Meter meter, MetricName name, String description, T unit) { + return new OtelDoubleGauge<>( + meter.gaugeBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).buildObserver(), + name, + description, + unit + ); + } + + @Override + public void record(double value) { + gauge.record(value); + } + + @Override + public void record(double value, Map attributes) { + gauge.record(value, OtelHelper.fromMap(attributes)); + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleHistogram.java b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleHistogram.java new file mode 100644 index 0000000000000..0fcd9f0a96853 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleHistogram.java @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.tracing.apm; + +import io.opentelemetry.api.metrics.Meter; +import io.opentelemetry.api.metrics.ObservableDoubleMeasurement; + +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.tracing.MetricName; + +import java.util.Map; + +public class OtelDoubleHistogram implements DoubleHistogram { + private final io.opentelemetry.api.metrics.DoubleHistogram histogram; + private final MetricName name; + private final String description; + private final T unit; + + public OtelDoubleHistogram(io.opentelemetry.api.metrics.DoubleHistogram histogram, MetricName name, String description, T unit) { + this.histogram = histogram; + this.name = name; + this.description = description; + this.unit = unit; + } + + public static OtelDoubleHistogram build(Meter meter, MetricName name, String description, T unit) { + return new OtelDoubleHistogram<>( + meter.histogramBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build(), + name, + description, + unit + ); + } + + @Override + public void record(double value) { + histogram.record(value); + } + + @Override + public void record(double value, Map attributes) { + histogram.record(value, OtelHelper.fromMap(attributes)); + } + + @Override + public void record(double value, Map attributes, ThreadContext threadContext) { + throw new UnsupportedOperationException("unimplemented"); + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelHelper.java b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelHelper.java new file mode 100644 index 0000000000000..ab8ec870d0bcc --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelHelper.java @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.tracing.apm; + +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.context.Context; + +import java.util.Map; + +class OtelHelper { + static Attributes fromMap(Map attributes) { + if (attributes == null || attributes.isEmpty()) { + return Attributes.empty(); + } + var builder = Attributes.builder(); + attributes.forEach((k, v) -> { + if (v instanceof String value) { + builder.put(k, value); + } else if (v instanceof Long value) { + builder.put(k, value); + } else if (v instanceof Double value) { + builder.put(k, value); + } else if (v instanceof Boolean value) { + builder.put(k, value); + } else { + throw new IllegalArgumentException( + "attributes do not support value type of [" + v.getClass().getCanonicalName() + "]" + ); + } + }); + return builder.build(); + } +} diff --git a/modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMTracerTests.java b/modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMTracerTests.java index e9654229fbb77..4b394cd1ec85e 100644 --- a/modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMTracerTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMTracerTests.java @@ -10,6 +10,7 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanBuilder; import io.opentelemetry.api.trace.SpanContext; @@ -269,7 +270,7 @@ APMServices createApmServices() { // spy the spanBuilder return new SpySpanBuilder(apmServices.tracer(), spanName); }).when(mockTracer).spanBuilder(anyString()); - return new APMServices(mockTracer, apmServices.openTelemetry()); + return new APMServices(mockTracer, mock(Meter.class), apmServices.openTelemetry()); } Instant getSpanStartTime(String spanName) { diff --git a/server/src/main/java/org/elasticsearch/tracing/Meter.java b/server/src/main/java/org/elasticsearch/tracing/Meter.java new file mode 100644 index 0000000000000..e25a090a62d93 --- /dev/null +++ b/server/src/main/java/org/elasticsearch/tracing/Meter.java @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.tracing; + +public interface Meter { +} diff --git a/server/src/main/java/org/elasticsearch/tracing/MetricName.java b/server/src/main/java/org/elasticsearch/tracing/MetricName.java new file mode 100644 index 0000000000000..c92b709b3027f --- /dev/null +++ b/server/src/main/java/org/elasticsearch/tracing/MetricName.java @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.tracing; + +import java.util.Objects; + +public class MetricName { + private final String rawName; + + public MetricName(String rawName) { + this.rawName = rawName; + } + + public String getRawName() { + return rawName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MetricName metricName = (MetricName) o; + return Objects.equals(getRawName(), metricName.getRawName()); + } + + @Override + public int hashCode() { + return Objects.hash(rawName); + } + + @Override + public String toString() { + return "MetricName[" + rawName + "]"; + } +} From d73297c998930021fff52375355ed8a9b31270ce Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Tue, 19 Sep 2023 13:39:26 +0200 Subject: [PATCH 02/18] rename, extract Meter interface, compiling --- TRACING.md | 2 +- .../analysis/common/CommonAnalysisPlugin.java | 4 +- .../PredicateTokenScriptFilterTests.java | 19 ++- .../ScriptedConditionTokenFilterTests.java | 19 ++- modules/apm/src/main/java/module-info.java | 2 +- .../{tracing => telemetry}/apm/APM.java | 28 +++-- .../apm/APMAgentSettings.java | 2 +- .../telemetry/apm/APMMetric.java | 116 ++++++++++++++++++ .../telemetry/apm/APMTelemetryProvider.java | 32 +++++ .../{tracing => telemetry}/apm/APMTracer.java | 73 ++--------- .../telemetry/apm/OtelCounter.java | 48 ++++++++ .../apm/OtelDoubleGauge.java | 6 +- .../apm/OtelDoubleHistogram.java | 6 +- .../apm/OtelHelper.java | 7 +- .../apm/APMAgentSettingsTests.java | 6 +- .../apm/APMTracerTests.java | 10 +- .../datastreams/DataStreamsPlugin.java | 4 +- .../ingest/geoip/IngestGeoIpPlugin.java | 4 +- .../painless/PainlessPlugin.java | 4 +- .../elasticsearch/reindex/ReindexPlugin.java | 4 +- .../ReindexFromRemoteWithAuthTests.java | 4 +- .../azure/AzureRepositoryPlugin.java | 4 +- .../azure/AzureStorageServiceTests.java | 4 +- .../repositories/s3/S3RepositoryPlugin.java | 4 +- .../repository/url/URLRepositoryPlugin.java | 4 +- .../RuntimeFieldsCommonPlugin.java | 4 +- .../elasticsearch/systemd/SystemdPlugin.java | 4 +- .../systemd/SystemdPluginTests.java | 12 +- .../netty4/Netty4HttpServerTransport.java | 2 +- .../transport/netty4/Netty4Plugin.java | 2 +- .../http/netty4/Netty4BadRequestTests.java | 2 +- .../Netty4HttpServerPipeliningTests.java | 2 +- .../Netty4HttpServerTransportTests.java | 2 +- .../org/elasticsearch/tracing/apm/ApmIT.java | 2 +- .../elasticsearch/test/CustomRestPlugin.java | 2 +- .../http/ClusterInfoRestCancellationIT.java | 2 +- .../cluster/SimpleClusterStateIT.java | 4 +- .../metadata/TemplateUpgradeServiceIT.java | 6 +- .../health/GetHealthActionIT.java | 4 +- .../elasticsearch/health/HealthServiceIT.java | 4 +- .../elasticsearch/index/FinalPipelineIT.java | 4 +- .../index/SettingsListenerIT.java | 4 +- .../ingest/IngestAsyncProcessorIT.java | 4 +- server/src/main/java/module-info.java | 3 +- .../elasticsearch/action/ActionModule.java | 2 +- .../common/network/NetworkModule.java | 2 +- .../common/util/concurrent/ThreadContext.java | 4 +- .../http/AbstractHttpServerTransport.java | 2 +- .../http/DefaultRestChannel.java | 4 +- .../java/org/elasticsearch/node/Node.java | 20 +-- .../elasticsearch/plugins/NetworkPlugin.java | 2 +- .../org/elasticsearch/plugins/Plugin.java | 6 +- ...TracerPlugin.java => TelemetryPlugin.java} | 6 +- .../interceptor/RestServerActionPlugin.java | 2 +- .../elasticsearch/rest/RestController.java | 2 +- .../elasticsearch/search/SearchService.java | 2 +- .../org/elasticsearch/tasks/TaskManager.java | 2 +- .../{tracing => telemetry}/Meter.java | 5 +- .../{tracing => telemetry}/MetricName.java | 2 +- .../{tracing => telemetry}/SpanId.java | 2 +- .../telemetry/TelemetryProvider.java | 31 +++++ .../{tracing => telemetry}/Tracer.java | 2 +- .../telemetry/metric/Counter.java | 27 ++++ .../telemetry/metric}/DoubleGauge.java | 16 ++- .../telemetry/metric}/DoubleHistogram.java | 21 +++- .../telemetry/metric/Metric.java | 36 ++++++ .../transport/RequestHandlerRegistry.java | 2 +- .../transport/TransportService.java | 2 +- .../action/ActionModuleTests.java | 2 +- .../node/tasks/TaskManagerTestCase.java | 2 +- .../cluster/coordination/JoinHelperTests.java | 2 +- .../common/network/NetworkModuleTests.java | 2 +- .../discovery/PeerFinderTests.java | 2 +- .../AbstractHttpServerTransportTests.java | 2 +- .../http/DefaultRestChannelTests.java | 2 +- .../indices/cluster/ClusterStateChanges.java | 2 +- .../org/elasticsearch/node/NodeTests.java | 4 +- .../plugins/PluginIntrospectorTests.java | 4 +- .../rest/RestControllerTests.java | 2 +- .../rest/RestHttpResponseHeadersTests.java | 2 +- .../indices/RestValidateQueryActionTests.java | 2 +- .../snapshots/SnapshotResiliencyTests.java | 2 +- .../elasticsearch/tasks/TaskManagerTests.java | 2 +- .../transport/InboundHandlerTests.java | 2 +- .../test/seektracker/SeekTrackerPlugin.java | 4 +- .../java/org/elasticsearch/node/MockNode.java | 2 +- .../search/MockSearchService.java | 2 +- .../test/ClusterServiceUtils.java | 2 +- .../test/MockIndexEventListener.java | 4 +- .../test/rest/RestActionTestCase.java | 2 +- .../test/tasks/MockTaskManager.java | 2 +- .../test/transport/MockTransport.java | 2 +- .../test/transport/MockTransportService.java | 2 +- .../transport/DisruptableMockTransport.java | 2 +- .../xpack/analytics/AnalyticsPlugin.java | 4 +- .../xpack/async/AsyncResultsIndexPlugin.java | 4 +- .../xpack/autoscaling/Autoscaling.java | 4 +- .../java/org/elasticsearch/xpack/ccr/Ccr.java | 4 +- .../elasticsearch/xpack/core/XPackPlugin.java | 4 +- .../core/LocalStateCompositeXPackPlugin.java | 9 +- .../action/RestTermsEnumActionTests.java | 2 +- .../xpack/deprecation/Deprecation.java | 4 +- .../xpack/enrich/EnrichPlugin.java | 4 +- .../xpack/application/EnterpriseSearch.java | 4 +- .../LocalStateEnterpriseSearch.java | 6 +- .../xpack/eql/plugin/EqlPlugin.java | 4 +- .../xpack/esql/plugin/EsqlPlugin.java | 4 +- .../org/elasticsearch/xpack/fleet/Fleet.java | 4 +- .../xpack/idp/IdentityProviderPlugin.java | 4 +- .../xpack/ilm/UpdateSettingsStepTests.java | 4 +- .../xpack/ilm/IndexLifecycle.java | 4 +- .../xpack/inference/InferencePlugin.java | 4 +- .../xpack/ml/MachineLearning.java | 4 +- .../xpack/monitoring/Monitoring.java | 4 +- .../xpack/lucene/bwc/OldLuceneVersions.java | 4 +- .../xpack/profiling/ProfilingPlugin.java | 4 +- .../SearchableSnapshots.java | 4 +- .../xpack/security/Security.java | 5 +- .../xpack/security/SecurityTests.java | 2 +- .../SecurityNetty4HeaderSizeLimitTests.java | 2 +- ...ecurityNetty4HttpServerTransportTests.java | 2 +- .../xpack/shutdown/NodeShutdownTasksIT.java | 4 +- .../xpack/shutdown/ShutdownPlugin.java | 4 +- .../xpack/slm/SnapshotLifecycle.java | 4 +- .../xpack/sql/plugin/SqlPlugin.java | 4 +- .../xpack/stack/StackPlugin.java | 4 +- .../xpack/transform/Transform.java | 4 +- .../votingonly/VotingOnlyNodePlugin.java | 4 +- .../elasticsearch/xpack/watcher/Watcher.java | 4 +- .../xpack/watcher/WatcherPluginTests.java | 4 +- 130 files changed, 598 insertions(+), 293 deletions(-) rename modules/apm/src/main/java/org/elasticsearch/{tracing => telemetry}/apm/APM.java (82%) rename modules/apm/src/main/java/org/elasticsearch/{tracing => telemetry}/apm/APMAgentSettings.java (99%) create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java rename modules/apm/src/main/java/org/elasticsearch/{tracing => telemetry}/apm/APMTracer.java (85%) create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java rename modules/apm/src/main/java/org/elasticsearch/{tracing => telemetry}/apm/OtelDoubleGauge.java (91%) rename modules/apm/src/main/java/org/elasticsearch/{tracing => telemetry}/apm/OtelDoubleHistogram.java (92%) rename modules/apm/src/main/java/org/elasticsearch/{tracing => telemetry}/apm/OtelHelper.java (81%) rename modules/apm/src/test/java/org/elasticsearch/{tracing => telemetry}/apm/APMAgentSettingsTests.java (94%) rename modules/apm/src/test/java/org/elasticsearch/{tracing => telemetry}/apm/APMTracerTests.java (97%) rename server/src/main/java/org/elasticsearch/plugins/{TracerPlugin.java => TelemetryPlugin.java} (74%) rename server/src/main/java/org/elasticsearch/{tracing => telemetry}/Meter.java (84%) rename server/src/main/java/org/elasticsearch/{tracing => telemetry}/MetricName.java (96%) rename server/src/main/java/org/elasticsearch/{tracing => telemetry}/SpanId.java (97%) create mode 100644 server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java rename server/src/main/java/org/elasticsearch/{tracing => telemetry}/Tracer.java (99%) create mode 100644 server/src/main/java/org/elasticsearch/telemetry/metric/Counter.java rename {modules/apm/src/main/java/org/elasticsearch/tracing/apm => server/src/main/java/org/elasticsearch/telemetry/metric}/DoubleGauge.java (66%) rename {modules/apm/src/main/java/org/elasticsearch/tracing/apm => server/src/main/java/org/elasticsearch/telemetry/metric}/DoubleHistogram.java (61%) create mode 100644 server/src/main/java/org/elasticsearch/telemetry/metric/Metric.java diff --git a/TRACING.md b/TRACING.md index 3935a94eff160..6221305ef455b 100644 --- a/TRACING.md +++ b/TRACING.md @@ -158,6 +158,6 @@ explicitly opening a scope via the `Tracer`. [otel]: https://opentelemetry.io/ [thread-context]: ./server/src/main/java/org/elasticsearch/common/util/concurrent/ThreadContext.java [w3c]: https://www.w3.org/TR/trace-context/ -[tracing]: ./server/src/main/java/org/elasticsearch/tracing +[tracing]: ./server/src/main/java/org/elasticsearch/telemetry [agent-config]: https://www.elastic.co/guide/en/apm/agent/java/master/configuration.html [agent]: https://www.elastic.co/guide/en/apm/agent/java/current/index.html diff --git a/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java index c6104e92b0b3e..dd2fbe8a19bab 100644 --- a/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java @@ -131,8 +131,8 @@ import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; import org.elasticsearch.synonyms.SynonymsManagementAPIService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.tartarus.snowball.ext.DutchStemmer; @@ -168,7 +168,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java index 9a915d0c056d5..7b60c1a64abb6 100644 --- a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java +++ b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java @@ -28,10 +28,10 @@ import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTokenStreamTestCase; import org.elasticsearch.test.IndexSettingsModule; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import java.io.IOException; import java.util.Collections; @@ -68,7 +68,22 @@ public FactoryType compile(Script script, ScriptContext FactoryType compile(Script script, ScriptContext tracer = new SetOnce<>(); +public class APM extends Plugin implements NetworkPlugin, TelemetryPlugin { + private final SetOnce telemetryProvider = new SetOnce<>(); private final Settings settings; public APM(Settings settings) { @@ -62,10 +62,10 @@ public APM(Settings settings) { } @Override - public Tracer getTracer(Settings settings) { - final APMTracer apmTracer = new APMTracer(settings); - tracer.set(apmTracer); - return apmTracer; + public TelemetryProvider getTelemetryProvider(Settings settings) { + final APMTelemetryProvider apmTelemetryProvider = new APMTelemetryProvider(settings); + telemetryProvider.set(apmTelemetryProvider); + return apmTelemetryProvider; } @Override @@ -81,11 +81,11 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer unused, + TelemetryProvider unused, AllocationService allocationService, IndicesService indicesService ) { - final APMTracer apmTracer = tracer.get(); + final APMTracer apmTracer = telemetryProvider.get().getTracer(); apmTracer.setClusterName(clusterService.getClusterName().value()); apmTracer.setNodeName(clusterService.getNodeName()); @@ -94,7 +94,9 @@ public Collection createComponents( apmAgentSettings.syncAgentSystemProperties(settings); apmAgentSettings.addClusterSettingsListeners(clusterService, apmTracer); - return List.of(apmTracer); + final APMMetric apmMetric = telemetryProvider.get().getMetric(); + + return List.of(apmTracer, apmMetric); } @Override diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMAgentSettings.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java similarity index 99% rename from modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMAgentSettings.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java index 3c75fe2e94c92..d0fd6c87fe4b6 100644 --- a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMAgentSettings.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.apm; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java new file mode 100644 index 0000000000000..f88cd4b84cd72 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java @@ -0,0 +1,116 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm; + +import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.metrics.Meter; + +import org.elasticsearch.common.component.AbstractLifecycleComponent; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.util.concurrent.ConcurrentCollections; +import org.elasticsearch.telemetry.MetricName; +import org.elasticsearch.telemetry.metric.Counter; +import org.elasticsearch.telemetry.metric.DoubleGauge; +import org.elasticsearch.telemetry.metric.DoubleHistogram; + +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.Map; + +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_ENABLED_SETTING; + +public class APMMetric extends AbstractLifecycleComponent implements org.elasticsearch.telemetry.metric.Metric { + private final Map counters = ConcurrentCollections.newConcurrentMap(); + private final Map doubleGauges = ConcurrentCollections.newConcurrentMap(); + private final Map doubleHistograms = ConcurrentCollections.newConcurrentMap(); + private volatile boolean enabled; + private volatile APMServices services; + + record APMServices(Meter meter, OpenTelemetry openTelemetry) {} + + // TODO remove duplication between APMTracer and APMMetric. enabled, create apm services etc + public APMMetric(Settings settings) { + this.enabled = APM_ENABLED_SETTING.get(settings); + } + + void setEnabled(boolean enabled) { + this.enabled = enabled; + if (enabled) { + this.services = createApmServices(); + } else { + destroyApmServices(); + } + } + + @Override + protected void doStart() { + if (enabled) { + this.services = createApmServices(); + } + } + + @Override + protected void doStop() { + destroyApmServices(); + } + + @Override + protected void doClose() {} + + @Override + + public Counter registerCounter(MetricName name, String description, T unit) { + return counters.compute(name, (k, v) -> { + if (v != null) { + throw new IllegalStateException("double gauge [" + name.getRawName() + "] already registered"); + } + return OtelCounter.build(services.meter, name, description, unit); + }); + } + + @Override + + public DoubleGauge registerDoubleGauge(MetricName name, String description, T unit) { + return doubleGauges.compute(name, (k, v) -> { + if (v != null) { + throw new IllegalStateException("double gauge [" + name.getRawName() + "] already registered"); + } + return OtelDoubleGauge.build(services.meter, name, description, unit); + }); + } + + @Override + + public DoubleHistogram registerDoubleHistogram(MetricName name, String description, T unit) { + return doubleHistograms.compute(name, (k, v) -> { + if (v != null) { + throw new IllegalStateException("double histogram [" + name.getRawName() + "] already registered"); + } + return OtelDoubleHistogram.build(services.meter, name, description, unit); + }); + } + + APMServices createApmServices() { + assert this.enabled; + assert this.services == null; + + return AccessController.doPrivileged((PrivilegedAction) () -> { + var openTelemetry = GlobalOpenTelemetry.get(); + var meter = openTelemetry.getMeter("elasticsearch"); + + return new APMServices(meter, openTelemetry); + }); + } + + private void destroyApmServices() { + this.services = null; + } + +} diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java new file mode 100644 index 0000000000000..eb17b9d0e19aa --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm; + +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.telemetry.TelemetryProvider; + +public class APMTelemetryProvider implements TelemetryProvider { + private Settings settings; + + public APMTelemetryProvider(Settings settings) { + this.settings = settings; + } + + @Override + public APMTracer getTracer() { + final APMTracer apmTracer = new APMTracer(settings); + return apmTracer; + } + + @Override + public APMMetric getMetric() { + final APMMetric apmMetric = new APMMetric(settings); + return apmMetric; + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMTracer.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java similarity index 85% rename from modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMTracer.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java index 5933b2e66254d..0d133dc49994a 100644 --- a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/APMTracer.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.apm; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.OpenTelemetry; @@ -35,8 +35,7 @@ import org.elasticsearch.core.Nullable; import org.elasticsearch.core.Releasable; import org.elasticsearch.tasks.Task; -import org.elasticsearch.tracing.MetricName; -import org.elasticsearch.tracing.SpanId; +import org.elasticsearch.telemetry.SpanId; import java.security.AccessController; import java.security.PrivilegedAction; @@ -45,27 +44,25 @@ import java.util.Map; import java.util.stream.Collectors; -import static org.elasticsearch.tracing.apm.APMAgentSettings.APM_ENABLED_SETTING; -import static org.elasticsearch.tracing.apm.APMAgentSettings.APM_TRACING_NAMES_EXCLUDE_SETTING; -import static org.elasticsearch.tracing.apm.APMAgentSettings.APM_TRACING_NAMES_INCLUDE_SETTING; -import static org.elasticsearch.tracing.apm.APMAgentSettings.APM_TRACING_SANITIZE_FIELD_NAMES; +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_ENABLED_SETTING; +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_NAMES_EXCLUDE_SETTING; +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_NAMES_INCLUDE_SETTING; +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_SANITIZE_FIELD_NAMES; /** - * This is an implementation of the {@link org.elasticsearch.tracing.Tracer} interface, which uses + * This is an implementation of the {@link org.elasticsearch.telemetry.Tracer} interface, which uses * the OpenTelemetry API to capture spans. *

* This module doesn't provide an implementation of the OTel API. Normally that would mean that the * API's default, no-op implementation would be used. However, when the APM Java is attached, it * intercepts the {@link GlobalOpenTelemetry} class and provides its own implementation instead. */ -public class APMTracer extends AbstractLifecycleComponent implements org.elasticsearch.tracing.Tracer { +public class APMTracer extends AbstractLifecycleComponent implements org.elasticsearch.telemetry.Tracer { private static final Logger logger = LogManager.getLogger(APMTracer.class); /** Holds in-flight span information. */ private final Map spans = ConcurrentCollections.newConcurrentMap(); - private final Map doubleGauges = ConcurrentCollections.newConcurrentMap(); - private final Map doubleHistograms = ConcurrentCollections.newConcurrentMap(); private volatile boolean enabled; private volatile APMServices services; @@ -154,7 +151,7 @@ APMServices createApmServices() { return AccessController.doPrivileged((PrivilegedAction) () -> { var openTelemetry = GlobalOpenTelemetry.get(); var tracer = openTelemetry.getTracer("elasticsearch", Version.CURRENT.toString()); - var meter = openTelemetry.getMeter("elasticsearch"); + var meter = openTelemetry.getMeter("elasticsearch"); return new APMServices(tracer, meter, openTelemetry); }); @@ -329,8 +326,8 @@ private void setSpanAttributes(@Nullable Map spanAttributes, Spa spanBuilder.setSpanKind(SpanKind.INTERNAL); } - spanBuilder.setAttribute(org.elasticsearch.tracing.Tracer.AttributeKeys.NODE_NAME, nodeName); - spanBuilder.setAttribute(org.elasticsearch.tracing.Tracer.AttributeKeys.CLUSTER_NAME, clusterName); + spanBuilder.setAttribute(org.elasticsearch.telemetry.Tracer.AttributeKeys.NODE_NAME, nodeName); + spanBuilder.setAttribute(org.elasticsearch.telemetry.Tracer.AttributeKeys.CLUSTER_NAME, clusterName); } private void setSpanAttributes(ThreadContext threadContext, @Nullable Map spanAttributes, SpanBuilder spanBuilder) { @@ -463,52 +460,4 @@ private static Automaton patternsToAutomaton(List patterns) { return Operations.union(automata); } - public DoubleGauge registerDoubleGauge(MetricName name, String description, T unit) { - return doubleGauges.compute(name, (k, v) -> { - if (v != null) { - throw new IllegalStateException("double gauge [" + name.getRawName() + "] already registered"); - } - return OtelDoubleGauge.build(services.meter, name, description, unit); - } - ); - } - - public void recordDoubleGauge(MetricName name, double value) { - DoubleGauge gauge = doubleGauges.get(name); - if (gauge != null) { - gauge.record(value); - } - } - - public void recordDoubleGauge(MetricName name, double value, Map attributes) { - DoubleGauge gauge = doubleGauges.get(name); - if (gauge != null) { - gauge.record(value, attributes); - } - } - - public DoubleHistogram registerDoubleHistogram(MetricName name, String description, T unit) { - return doubleHistograms.compute(name, (k, v) -> { - if (v != null) { - throw new IllegalStateException("double histogram [" + name.getRawName() + "] already registered"); - } - return OtelDoubleHistogram.build(services.meter, name, description, unit); - } - ); - } - - public void recordDoubleHistogram(MetricName name, double value) { - DoubleHistogram histogram = doubleHistograms.get(name); - if (histogram != null) { - histogram.record(value); - } - } - - public void recordDoubleHistogram(MetricName name, double value, Map attributes) { - DoubleHistogram histogram = doubleHistograms.get(name); - if (histogram != null) { - histogram.record(value, attributes); - } - } - } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java new file mode 100644 index 0000000000000..4f064313b1e11 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java @@ -0,0 +1,48 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm; + +import io.opentelemetry.api.metrics.LongCounter; +import io.opentelemetry.api.metrics.Meter; + +import org.elasticsearch.telemetry.MetricName; +import org.elasticsearch.telemetry.metric.Counter; + +public class OtelCounter implements Counter { + private final LongCounter counter; + private final MetricName name; + private final String description; + private final T unit; + + private OtelCounter(LongCounter counter, MetricName name, String description, T unit) { + this.counter = counter; + this.name = name; + this.description = description; + this.unit = unit; + } + + public static OtelCounter build(Meter meter, MetricName name, String description, T unit) { + return new OtelCounter<>( + meter.counterBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build(), + name, + description, + unit + ); + } + + @Override + public void increment() { + counter.add(1L); + } + + @Override + public void incrementBy(long inc) { + counter.add(inc); + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleGauge.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java similarity index 91% rename from modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleGauge.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java index 5b3c7f472c0d3..ffb2224cc3ece 100644 --- a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleGauge.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java @@ -6,13 +6,13 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.apm; -import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.api.metrics.ObservableDoubleMeasurement; -import org.elasticsearch.tracing.MetricName; +import org.elasticsearch.telemetry.MetricName; +import org.elasticsearch.telemetry.metric.DoubleGauge; import java.util.Map; diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleHistogram.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java similarity index 92% rename from modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleHistogram.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java index 0fcd9f0a96853..78fe9cdf8575c 100644 --- a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelDoubleHistogram.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java @@ -6,13 +6,13 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.apm; import io.opentelemetry.api.metrics.Meter; -import io.opentelemetry.api.metrics.ObservableDoubleMeasurement; import org.elasticsearch.common.util.concurrent.ThreadContext; -import org.elasticsearch.tracing.MetricName; +import org.elasticsearch.telemetry.MetricName; +import org.elasticsearch.telemetry.metric.DoubleHistogram; import java.util.Map; diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelHelper.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelHelper.java similarity index 81% rename from modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelHelper.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelHelper.java index ab8ec870d0bcc..370887e35fe71 100644 --- a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/OtelHelper.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelHelper.java @@ -6,10 +6,9 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.apm; import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.context.Context; import java.util.Map; @@ -29,9 +28,7 @@ static Attributes fromMap(Map attributes) { } else if (v instanceof Boolean value) { builder.put(k, value); } else { - throw new IllegalArgumentException( - "attributes do not support value type of [" + v.getClass().getCanonicalName() + "]" - ); + throw new IllegalArgumentException("attributes do not support value type of [" + v.getClass().getCanonicalName() + "]"); } }); return builder.build(); diff --git a/modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMAgentSettingsTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMAgentSettingsTests.java similarity index 94% rename from modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMAgentSettingsTests.java rename to modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMAgentSettingsTests.java index 35328c5dd2461..98659bd136bca 100644 --- a/modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMAgentSettingsTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMAgentSettingsTests.java @@ -6,13 +6,13 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.apm; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.test.ESTestCase; -import static org.elasticsearch.tracing.apm.APMAgentSettings.APM_AGENT_SETTINGS; -import static org.elasticsearch.tracing.apm.APMAgentSettings.APM_ENABLED_SETTING; +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_AGENT_SETTINGS; +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_ENABLED_SETTING; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; diff --git a/modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMTracerTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java similarity index 97% rename from modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMTracerTests.java rename to modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java index 4b394cd1ec85e..a5ffe7ac00ba4 100644 --- a/modules/apm/src/test/java/org/elasticsearch/tracing/apm/APMTracerTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.apm; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; @@ -22,8 +22,8 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.SpanId; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.tracing.SpanId; import java.time.Instant; import java.util.HashMap; @@ -32,9 +32,9 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Stream; -import static org.elasticsearch.tracing.apm.APMAgentSettings.APM_ENABLED_SETTING; -import static org.elasticsearch.tracing.apm.APMAgentSettings.APM_TRACING_NAMES_EXCLUDE_SETTING; -import static org.elasticsearch.tracing.apm.APMAgentSettings.APM_TRACING_NAMES_INCLUDE_SETTING; +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_ENABLED_SETTING; +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_NAMES_EXCLUDE_SETTING; +import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_NAMES_INCLUDE_SETTING; import static org.hamcrest.Matchers.aMapWithSize; import static org.hamcrest.Matchers.anEmptyMap; import static org.hamcrest.Matchers.hasKey; diff --git a/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java b/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java index 313a6dd459668..a943bfee087b5 100644 --- a/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java +++ b/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java @@ -70,8 +70,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -170,7 +170,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java b/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java index 03607b908d375..afc6fa8a1c92a 100644 --- a/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java +++ b/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java @@ -48,8 +48,8 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.ParseField; @@ -119,7 +119,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java b/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java index f5b27a48960d2..52eccbe0dce90 100644 --- a/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java +++ b/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java @@ -43,8 +43,8 @@ import org.elasticsearch.script.ScriptEngine; import org.elasticsearch.script.ScriptModule; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -147,7 +147,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java b/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java index fdf672f3cfbf4..e79f9bdaffee9 100644 --- a/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java +++ b/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java @@ -35,8 +35,8 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -100,7 +100,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java b/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java index 72546d98d1f16..55b7b2cc902cc 100644 --- a/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java +++ b/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java @@ -45,9 +45,9 @@ import org.elasticsearch.rest.root.MainRestPlugin; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.netty4.Netty4Plugin; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -176,7 +176,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java b/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java index dd70e4778dd75..f88a96e765827 100644 --- a/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java +++ b/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java @@ -30,10 +30,10 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.repositories.Repository; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -96,7 +96,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceTests.java b/modules/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceTests.java index 3b5f1928871fe..a7a10a17668bc 100644 --- a/modules/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceTests.java +++ b/modules/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceTests.java @@ -14,10 +14,10 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.SettingsException; import org.elasticsearch.common.settings.SettingsModule; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.junit.After; import org.junit.Before; @@ -73,7 +73,7 @@ public void testReadSecuredSettings() { private AzureRepositoryPlugin pluginWithSettingsValidation(Settings settings) { final AzureRepositoryPlugin plugin = new AzureRepositoryPlugin(settings); new SettingsModule(settings, plugin.getSettings(), Collections.emptyList()); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); return plugin; } diff --git a/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java b/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java index 6968e307a403b..62fe279726164 100644 --- a/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java +++ b/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java @@ -31,8 +31,8 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.repositories.Repository; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -102,7 +102,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java b/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java index 9f157e2d291cd..8057684375d69 100644 --- a/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java +++ b/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java @@ -28,8 +28,8 @@ import org.elasticsearch.repositories.Repository; import org.elasticsearch.repositories.url.URLRepository; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -88,7 +88,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java b/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java index 76cf25266379d..6cad1e057ef74 100644 --- a/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java +++ b/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java @@ -22,8 +22,8 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -76,7 +76,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java b/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java index 37109bcf01f06..f425de279129b 100644 --- a/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java +++ b/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java @@ -26,9 +26,9 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.Scheduler; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -92,7 +92,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/systemd/src/test/java/org/elasticsearch/systemd/SystemdPluginTests.java b/modules/systemd/src/test/java/org/elasticsearch/systemd/SystemdPluginTests.java index a6e5f806babd2..b2bfbdb976eb9 100644 --- a/modules/systemd/src/test/java/org/elasticsearch/systemd/SystemdPluginTests.java +++ b/modules/systemd/src/test/java/org/elasticsearch/systemd/SystemdPluginTests.java @@ -12,11 +12,11 @@ import org.elasticsearch.common.util.concurrent.EsExecutors; import org.elasticsearch.core.CheckedConsumer; import org.elasticsearch.core.TimeValue; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.hamcrest.OptionalMatchers; import org.elasticsearch.threadpool.Scheduler; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import java.io.IOException; import java.util.Optional; @@ -60,28 +60,28 @@ public class SystemdPluginTests extends ESTestCase { public void testIsEnabled() { final SystemdPlugin plugin = new SystemdPlugin(false, randomPackageBuildType, Boolean.TRUE.toString()); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); assertTrue(plugin.isEnabled()); assertNotNull(plugin.extender()); } public void testIsNotPackageDistribution() { final SystemdPlugin plugin = new SystemdPlugin(false, randomNonPackageBuildType, Boolean.TRUE.toString()); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); assertFalse(plugin.isEnabled()); assertNull(plugin.extender()); } public void testIsImplicitlyNotEnabled() { final SystemdPlugin plugin = new SystemdPlugin(false, randomPackageBuildType, null); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); assertFalse(plugin.isEnabled()); assertNull(plugin.extender()); } public void testIsExplicitlyNotEnabled() { final SystemdPlugin plugin = new SystemdPlugin(false, randomPackageBuildType, Boolean.FALSE.toString()); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); assertFalse(plugin.isEnabled()); assertNull(plugin.extender()); } @@ -169,7 +169,7 @@ int sd_notify(final int unset_environment, final String state) { } }; - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); if (Boolean.TRUE.toString().equals(esSDNotify)) { assertNotNull(plugin.extender()); } else { diff --git a/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java b/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java index 208b0bf62fb6d..f61f423683b50 100644 --- a/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java +++ b/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java @@ -55,8 +55,8 @@ import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.http.netty4.internal.HttpHeadersAuthenticatorUtils; import org.elasticsearch.http.netty4.internal.HttpValidator; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.netty4.AcceptChannelHandler; import org.elasticsearch.transport.netty4.NetUtils; import org.elasticsearch.transport.netty4.Netty4Utils; diff --git a/modules/transport-netty4/src/main/java/org/elasticsearch/transport/netty4/Netty4Plugin.java b/modules/transport-netty4/src/main/java/org/elasticsearch/transport/netty4/Netty4Plugin.java index 9d818c12e6da5..4707358b09b14 100644 --- a/modules/transport-netty4/src/main/java/org/elasticsearch/transport/netty4/Netty4Plugin.java +++ b/modules/transport-netty4/src/main/java/org/elasticsearch/transport/netty4/Netty4Plugin.java @@ -26,8 +26,8 @@ import org.elasticsearch.plugins.NetworkPlugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.rest.RestRequest; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4BadRequestTests.java b/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4BadRequestTests.java index 02f2fab86f9c8..717a6cdc4c2ac 100644 --- a/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4BadRequestTests.java +++ b/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4BadRequestTests.java @@ -23,10 +23,10 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestResponse; import org.elasticsearch.rest.RestStatus; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.netty4.SharedGroupFactory; import org.elasticsearch.transport.netty4.TLSConfig; import org.junit.After; diff --git a/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerPipeliningTests.java b/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerPipeliningTests.java index 1b6572ee0c24f..61fde49f25a59 100644 --- a/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerPipeliningTests.java +++ b/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerPipeliningTests.java @@ -25,10 +25,10 @@ import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.http.NullDispatcher; import org.elasticsearch.rest.RestStatus; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.netty4.SharedGroupFactory; import org.elasticsearch.transport.netty4.TLSConfig; import org.junit.After; diff --git a/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerTransportTests.java b/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerTransportTests.java index 452a006d26d4f..9e2a634629d8e 100644 --- a/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerTransportTests.java +++ b/modules/transport-netty4/src/test/java/org/elasticsearch/http/netty4/Netty4HttpServerTransportTests.java @@ -68,10 +68,10 @@ import org.elasticsearch.rest.RestChannel; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestResponse; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.netty4.NettyAllocator; import org.elasticsearch.transport.netty4.SharedGroupFactory; import org.elasticsearch.transport.netty4.TLSConfig; diff --git a/qa/apm/src/test/java/org/elasticsearch/tracing/apm/ApmIT.java b/qa/apm/src/test/java/org/elasticsearch/tracing/apm/ApmIT.java index 41421a4485267..021d9f8d01bf3 100644 --- a/qa/apm/src/test/java/org/elasticsearch/tracing/apm/ApmIT.java +++ b/qa/apm/src/test/java/org/elasticsearch/tracing/apm/ApmIT.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.apm; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; diff --git a/qa/custom-rest-controller/src/javaRestTest/java/co/elastic/elasticsearch/test/CustomRestPlugin.java b/qa/custom-rest-controller/src/javaRestTest/java/co/elastic/elasticsearch/test/CustomRestPlugin.java index 504802d5cfd7c..3e5595313ef0b 100644 --- a/qa/custom-rest-controller/src/javaRestTest/java/co/elastic/elasticsearch/test/CustomRestPlugin.java +++ b/qa/custom-rest-controller/src/javaRestTest/java/co/elastic/elasticsearch/test/CustomRestPlugin.java @@ -19,7 +19,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.tracing.Tracer; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.usage.UsageService; import java.util.function.UnaryOperator; diff --git a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java index d41eeab7aef26..d60a434bae432 100644 --- a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java +++ b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java @@ -26,8 +26,8 @@ import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.plugins.NetworkPlugin; import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.netty4.AcceptChannelHandler; import org.elasticsearch.transport.netty4.SharedGroupFactory; import org.elasticsearch.transport.netty4.TLSConfig; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java index 1a4c908306648..5731163def260 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java @@ -37,9 +37,9 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.ToXContent; @@ -415,7 +415,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java index 9660be019383a..aff04ca521844 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java @@ -22,9 +22,9 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -77,7 +77,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -96,7 +96,7 @@ public Collection createComponents( namedWriteableRegistry, expressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java index ba59d74768fa2..11d32bb231a01 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java @@ -27,9 +27,9 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -107,7 +107,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java index 53b568f0a25ef..707644e28228a 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java @@ -27,10 +27,10 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -136,7 +136,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java index bab4b2c088826..165242128ca8a 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java @@ -38,9 +38,9 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.XContentType; @@ -405,7 +405,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java index d1095354e1126..fb0e3478c2cde 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java @@ -22,10 +22,10 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -75,7 +75,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java index 959611f9fd855..f8d2b0e464b72 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java @@ -27,9 +27,9 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.XContentType; @@ -97,7 +97,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/main/java/module-info.java b/server/src/main/java/module-info.java index 472707babf155..6394c4aaf49bb 100644 --- a/server/src/main/java/module-info.java +++ b/server/src/main/java/module-info.java @@ -363,7 +363,8 @@ exports org.elasticsearch.synonyms; exports org.elasticsearch.tasks; exports org.elasticsearch.threadpool; - exports org.elasticsearch.tracing; + exports org.elasticsearch.telemetry; + exports org.elasticsearch.telemetry.metric to org.elasticsearch.tracing.apm; exports org.elasticsearch.transport; exports org.elasticsearch.upgrades; exports org.elasticsearch.usage; diff --git a/server/src/main/java/org/elasticsearch/action/ActionModule.java b/server/src/main/java/org/elasticsearch/action/ActionModule.java index 31355aac21d67..e8d5d54ee660d 100644 --- a/server/src/main/java/org/elasticsearch/action/ActionModule.java +++ b/server/src/main/java/org/elasticsearch/action/ActionModule.java @@ -458,8 +458,8 @@ import org.elasticsearch.rest.action.synonyms.RestPutSynonymRuleAction; import org.elasticsearch.rest.action.synonyms.RestPutSynonymsAction; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.usage.UsageService; import java.time.Instant; diff --git a/server/src/main/java/org/elasticsearch/common/network/NetworkModule.java b/server/src/main/java/org/elasticsearch/common/network/NetworkModule.java index d46e54de8729e..52f4cfa003be1 100644 --- a/server/src/main/java/org/elasticsearch/common/network/NetworkModule.java +++ b/server/src/main/java/org/elasticsearch/common/network/NetworkModule.java @@ -32,8 +32,8 @@ import org.elasticsearch.plugins.NetworkPlugin; import org.elasticsearch.tasks.RawTaskStatus; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportInterceptor; import org.elasticsearch.transport.TransportRequest; diff --git a/server/src/main/java/org/elasticsearch/common/util/concurrent/ThreadContext.java b/server/src/main/java/org/elasticsearch/common/util/concurrent/ThreadContext.java index b59ebc00e55c4..a720228fe7de4 100644 --- a/server/src/main/java/org/elasticsearch/common/util/concurrent/ThreadContext.java +++ b/server/src/main/java/org/elasticsearch/common/util/concurrent/ThreadContext.java @@ -157,7 +157,7 @@ public StoredContext stashContextPreservingRequestHeaders(final String... reques } /** - * When using a {@link org.elasticsearch.tracing.Tracer} to capture activity in Elasticsearch, when a parent span is already + * When using a {@link org.elasticsearch.telemetry.Tracer} to capture activity in Elasticsearch, when a parent span is already * in progress, it is necessary to start a new context before beginning a child span. This method creates a context, * moving tracing-related fields to different names so that a new child span can be started. This child span will pick up * the moved fields and use them to establish the parent-child relationship. @@ -213,7 +213,7 @@ public boolean hasTraceContext() { } /** - * When using a {@link org.elasticsearch.tracing.Tracer}, sometimes you need to start a span completely unrelated + * When using a {@link org.elasticsearch.telemetry.Tracer}, sometimes you need to start a span completely unrelated * to any current span. In order to avoid any parent/child relationship being created, this method creates a new * context that clears all the tracing fields. * diff --git a/server/src/main/java/org/elasticsearch/http/AbstractHttpServerTransport.java b/server/src/main/java/org/elasticsearch/http/AbstractHttpServerTransport.java index a013cba390f6b..206525082778c 100644 --- a/server/src/main/java/org/elasticsearch/http/AbstractHttpServerTransport.java +++ b/server/src/main/java/org/elasticsearch/http/AbstractHttpServerTransport.java @@ -38,8 +38,8 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestResponse; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.BindTransportException; import org.elasticsearch.transport.TransportSettings; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/server/src/main/java/org/elasticsearch/http/DefaultRestChannel.java b/server/src/main/java/org/elasticsearch/http/DefaultRestChannel.java index 6fc6e7eb3ffbc..d2167c2d9d271 100644 --- a/server/src/main/java/org/elasticsearch/http/DefaultRestChannel.java +++ b/server/src/main/java/org/elasticsearch/http/DefaultRestChannel.java @@ -27,8 +27,8 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestResponse; import org.elasticsearch.rest.RestStatus; -import org.elasticsearch.tracing.SpanId; -import org.elasticsearch.tracing.Tracer; +import org.elasticsearch.telemetry.SpanId; +import org.elasticsearch.telemetry.Tracer; import java.util.ArrayList; import java.util.List; diff --git a/server/src/main/java/org/elasticsearch/node/Node.java b/server/src/main/java/org/elasticsearch/node/Node.java index 1ae3aaa9e09db..b8e501be8c20e 100644 --- a/server/src/main/java/org/elasticsearch/node/Node.java +++ b/server/src/main/java/org/elasticsearch/node/Node.java @@ -179,7 +179,7 @@ import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.plugins.ShutdownAwarePlugin; import org.elasticsearch.plugins.SystemIndexPlugin; -import org.elasticsearch.plugins.TracerPlugin; +import org.elasticsearch.plugins.TelemetryPlugin; import org.elasticsearch.plugins.internal.DocumentParsingObserver; import org.elasticsearch.plugins.internal.DocumentParsingObserverPlugin; import org.elasticsearch.plugins.internal.ReloadAwarePlugin; @@ -213,9 +213,10 @@ import org.elasticsearch.tasks.TaskCancellationService; import org.elasticsearch.tasks.TaskManager; import org.elasticsearch.tasks.TaskResultsService; +import org.elasticsearch.telemetry.TelemetryProvider; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.RemoteClusterPortSettings; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportInterceptor; @@ -456,7 +457,8 @@ protected Node( Task.HEADERS_TO_COPY.stream() ).collect(Collectors.toSet()); - final Tracer tracer = getTracer(pluginsService, settings); + final TelemetryProvider telemetryProvider = getTelemetryProvider(pluginsService, settings); + final Tracer tracer = telemetryProvider.getTracer(); final TaskManager taskManager = new TaskManager(settings, threadPool, taskHeaders, tracer); @@ -756,7 +758,7 @@ protected Node( namedWriteableRegistry, clusterModule.getIndexNameExpressionResolver(), repositoriesServiceReference::get, - tracer, + telemetryProvider, clusterModule.getAllocationService(), indicesService ) @@ -1282,14 +1284,14 @@ private static ReloadablePlugin wrapPlugins(List reloadablePlu }; } - private Tracer getTracer(PluginsService pluginsService, Settings settings) { - final List tracerPlugins = pluginsService.filterPlugins(TracerPlugin.class); + private TelemetryProvider getTelemetryProvider(PluginsService pluginsService, Settings settings) { + final List telemetryPlugins = pluginsService.filterPlugins(TelemetryPlugin.class); - if (tracerPlugins.size() > 1) { - throw new IllegalStateException("A single TracerPlugin was expected but got: " + tracerPlugins); + if (telemetryPlugins.size() > 1) { + throw new IllegalStateException("A single TracerPlugin was expected but got: " + telemetryPlugins); } - return tracerPlugins.isEmpty() ? Tracer.NOOP : tracerPlugins.get(0).getTracer(settings); + return telemetryPlugins.isEmpty() ? TelemetryProvider.NOOP : telemetryPlugins.get(0).getTelemetryProvider(settings); } private HealthService createHealthService( diff --git a/server/src/main/java/org/elasticsearch/plugins/NetworkPlugin.java b/server/src/main/java/org/elasticsearch/plugins/NetworkPlugin.java index 6a252a25ce553..f53e4fb3355f4 100644 --- a/server/src/main/java/org/elasticsearch/plugins/NetworkPlugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/NetworkPlugin.java @@ -17,8 +17,8 @@ import org.elasticsearch.http.HttpPreRequest; import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.indices.breaker.CircuitBreakerService; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportInterceptor; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/server/src/main/java/org/elasticsearch/plugins/Plugin.java b/server/src/main/java/org/elasticsearch/plugins/Plugin.java index b736682b72bcf..bd5d8e9220517 100644 --- a/server/src/main/java/org/elasticsearch/plugins/Plugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/Plugin.java @@ -26,9 +26,9 @@ import org.elasticsearch.indices.IndicesService; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.XContentParser; @@ -81,7 +81,7 @@ public abstract class Plugin implements Closeable { * @param indexNameExpressionResolver A service that resolves expression to index and alias names * @param repositoriesServiceSupplier A supplier for the service that manages snapshot repositories; will return null when this method * is called, but will return the repositories service once the node is initialized. - * @param tracer An interface for distributed tracing + * @param telemetryProvider An interface for distributed tracing * @param allocationService A service to manage shard allocation in the cluster * @param indicesService A service to manage indices in the cluster */ @@ -97,7 +97,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/main/java/org/elasticsearch/plugins/TracerPlugin.java b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java similarity index 74% rename from server/src/main/java/org/elasticsearch/plugins/TracerPlugin.java rename to server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java index 3e5cddc28e3b0..4f47da99a3d5f 100644 --- a/server/src/main/java/org/elasticsearch/plugins/TracerPlugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java @@ -9,8 +9,8 @@ package org.elasticsearch.plugins; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; -public interface TracerPlugin { - Tracer getTracer(Settings settings); +public interface TelemetryPlugin { + TelemetryProvider getTelemetryProvider(Settings settings); } diff --git a/server/src/main/java/org/elasticsearch/plugins/interceptor/RestServerActionPlugin.java b/server/src/main/java/org/elasticsearch/plugins/interceptor/RestServerActionPlugin.java index efabc85268acc..6369c51fb5d68 100644 --- a/server/src/main/java/org/elasticsearch/plugins/interceptor/RestServerActionPlugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/interceptor/RestServerActionPlugin.java @@ -15,7 +15,7 @@ import org.elasticsearch.plugins.ActionPlugin; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; -import org.elasticsearch.tracing.Tracer; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.usage.UsageService; import java.util.function.UnaryOperator; diff --git a/server/src/main/java/org/elasticsearch/rest/RestController.java b/server/src/main/java/org/elasticsearch/rest/RestController.java index dea13af5383f7..c1f0914db9e62 100644 --- a/server/src/main/java/org/elasticsearch/rest/RestController.java +++ b/server/src/main/java/org/elasticsearch/rest/RestController.java @@ -30,7 +30,7 @@ import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.rest.RestHandler.Route; import org.elasticsearch.tasks.Task; -import org.elasticsearch.tracing.Tracer; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.usage.SearchUsageHolder; import org.elasticsearch.usage.UsageService; import org.elasticsearch.xcontent.XContentBuilder; diff --git a/server/src/main/java/org/elasticsearch/search/SearchService.java b/server/src/main/java/org/elasticsearch/search/SearchService.java index 5ceeb53a8df6d..f18923a391e3a 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchService.java +++ b/server/src/main/java/org/elasticsearch/search/SearchService.java @@ -114,11 +114,11 @@ import org.elasticsearch.search.suggest.Suggest; import org.elasticsearch.search.suggest.completion.CompletionSuggestion; import org.elasticsearch.tasks.TaskCancelledException; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.Scheduler; import org.elasticsearch.threadpool.Scheduler.Cancellable; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.threadpool.ThreadPool.Names; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.TransportRequest; import java.io.IOException; diff --git a/server/src/main/java/org/elasticsearch/tasks/TaskManager.java b/server/src/main/java/org/elasticsearch/tasks/TaskManager.java index 114f4ded2cc9d..aa7ebc13f1cfb 100644 --- a/server/src/main/java/org/elasticsearch/tasks/TaskManager.java +++ b/server/src/main/java/org/elasticsearch/tasks/TaskManager.java @@ -30,8 +30,8 @@ import org.elasticsearch.core.Nullable; import org.elasticsearch.core.Releasable; import org.elasticsearch.core.Releasables; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.TaskTransportChannel; import org.elasticsearch.transport.TcpChannel; import org.elasticsearch.transport.TcpTransportChannel; diff --git a/server/src/main/java/org/elasticsearch/tracing/Meter.java b/server/src/main/java/org/elasticsearch/telemetry/Meter.java similarity index 84% rename from server/src/main/java/org/elasticsearch/tracing/Meter.java rename to server/src/main/java/org/elasticsearch/telemetry/Meter.java index e25a090a62d93..514e5e684f9d3 100644 --- a/server/src/main/java/org/elasticsearch/tracing/Meter.java +++ b/server/src/main/java/org/elasticsearch/telemetry/Meter.java @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing; +package org.elasticsearch.telemetry; -public interface Meter { -} +public interface Meter {} diff --git a/server/src/main/java/org/elasticsearch/tracing/MetricName.java b/server/src/main/java/org/elasticsearch/telemetry/MetricName.java similarity index 96% rename from server/src/main/java/org/elasticsearch/tracing/MetricName.java rename to server/src/main/java/org/elasticsearch/telemetry/MetricName.java index c92b709b3027f..c3eddce0cb49b 100644 --- a/server/src/main/java/org/elasticsearch/tracing/MetricName.java +++ b/server/src/main/java/org/elasticsearch/telemetry/MetricName.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing; +package org.elasticsearch.telemetry; import java.util.Objects; diff --git a/server/src/main/java/org/elasticsearch/tracing/SpanId.java b/server/src/main/java/org/elasticsearch/telemetry/SpanId.java similarity index 97% rename from server/src/main/java/org/elasticsearch/tracing/SpanId.java rename to server/src/main/java/org/elasticsearch/telemetry/SpanId.java index c91dc4b1080d1..48f8af3a03bab 100644 --- a/server/src/main/java/org/elasticsearch/tracing/SpanId.java +++ b/server/src/main/java/org/elasticsearch/telemetry/SpanId.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing; +package org.elasticsearch.telemetry; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.tasks.Task; diff --git a/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java b/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java new file mode 100644 index 0000000000000..a8ba4311f60af --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry; + +import org.elasticsearch.telemetry.metric.Metric; + +public interface TelemetryProvider { + + Tracer getTracer(); + + Metric getMetric(); + + TelemetryProvider NOOP = new TelemetryProvider() { + + @Override + public Tracer getTracer() { + return Tracer.NOOP; + } + + @Override + public Metric getMetric() { + return Metric.NOOP; + } + }; +} diff --git a/server/src/main/java/org/elasticsearch/tracing/Tracer.java b/server/src/main/java/org/elasticsearch/telemetry/Tracer.java similarity index 99% rename from server/src/main/java/org/elasticsearch/tracing/Tracer.java rename to server/src/main/java/org/elasticsearch/telemetry/Tracer.java index 5d2b2f3c4ea63..b17c69e471021 100644 --- a/server/src/main/java/org/elasticsearch/tracing/Tracer.java +++ b/server/src/main/java/org/elasticsearch/telemetry/Tracer.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing; +package org.elasticsearch.telemetry; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.core.Releasable; diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/Counter.java b/server/src/main/java/org/elasticsearch/telemetry/metric/Counter.java new file mode 100644 index 0000000000000..03eba11a8575d --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/Counter.java @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.metric; + +public interface Counter { + void increment(); + + void incrementBy(long inc); + + Counter NOOP = new Counter() { + @Override + public void increment() { + + } + + @Override + public void incrementBy(long inc) { + + } + }; +} diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleGauge.java b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleGauge.java similarity index 66% rename from modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleGauge.java rename to server/src/main/java/org/elasticsearch/telemetry/metric/DoubleGauge.java index 934321fad7e89..bef1bc8e80535 100644 --- a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleGauge.java +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleGauge.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.metric; import java.util.Map; @@ -15,5 +15,19 @@ */ public interface DoubleGauge { void record(double value); + void record(double value, Map attributes); + + DoubleGauge NOOP = new DoubleGauge() { + + @Override + public void record(double value) { + + } + + @Override + public void record(double value, Map attributes) { + + } + }; } diff --git a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleHistogram.java b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleHistogram.java similarity index 61% rename from modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleHistogram.java rename to server/src/main/java/org/elasticsearch/telemetry/metric/DoubleHistogram.java index 46d0b78b0b02e..487052f7d9799 100644 --- a/modules/apm/src/main/java/org/elasticsearch/tracing/apm/DoubleHistogram.java +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleHistogram.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.tracing.apm; +package org.elasticsearch.telemetry.metric; import org.elasticsearch.common.util.concurrent.ThreadContext; @@ -14,6 +14,25 @@ public interface DoubleHistogram { void record(double value); + void record(double value, Map attributes); + void record(double value, Map attributes, ThreadContext threadContext); + + DoubleHistogram NOOP = new DoubleHistogram() { + @Override + public void record(double value) { + + } + + @Override + public void record(double value, Map attributes) { + + } + + @Override + public void record(double value, Map attributes, ThreadContext threadContext) { + + } + }; } diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/Metric.java b/server/src/main/java/org/elasticsearch/telemetry/metric/Metric.java new file mode 100644 index 0000000000000..47d134fa40d09 --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/Metric.java @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.metric; + +import org.elasticsearch.telemetry.MetricName; + +public interface Metric { + Counter registerCounter(MetricName name, String description, T unit); + + DoubleGauge registerDoubleGauge(MetricName name, String description, T unit); + + DoubleHistogram registerDoubleHistogram(MetricName name, String description, T unit); + + Metric NOOP = new Metric() { + @Override + public Counter registerCounter(MetricName name, String description, T unit) { + return Counter.NOOP; + } + + @Override + public DoubleGauge registerDoubleGauge(MetricName name, String description, T unit) { + return DoubleGauge.NOOP; + } + + @Override + public DoubleHistogram registerDoubleHistogram(MetricName name, String description, T unit) { + return DoubleHistogram.NOOP; + } + }; +} diff --git a/server/src/main/java/org/elasticsearch/transport/RequestHandlerRegistry.java b/server/src/main/java/org/elasticsearch/transport/RequestHandlerRegistry.java index 09581fcc4f1e3..16cb429c0e790 100644 --- a/server/src/main/java/org/elasticsearch/transport/RequestHandlerRegistry.java +++ b/server/src/main/java/org/elasticsearch/transport/RequestHandlerRegistry.java @@ -15,7 +15,7 @@ import org.elasticsearch.tasks.CancellableTask; import org.elasticsearch.tasks.Task; import org.elasticsearch.tasks.TaskManager; -import org.elasticsearch.tracing.Tracer; +import org.elasticsearch.telemetry.Tracer; import java.io.IOException; import java.util.concurrent.Executor; diff --git a/server/src/main/java/org/elasticsearch/transport/TransportService.java b/server/src/main/java/org/elasticsearch/transport/TransportService.java index 5369b9a9eec13..c3ecf2d8d4400 100644 --- a/server/src/main/java/org/elasticsearch/transport/TransportService.java +++ b/server/src/main/java/org/elasticsearch/transport/TransportService.java @@ -42,9 +42,9 @@ import org.elasticsearch.node.ReportingService; import org.elasticsearch.tasks.Task; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.Scheduler; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import java.io.IOException; import java.io.UncheckedIOException; diff --git a/server/src/test/java/org/elasticsearch/action/ActionModuleTests.java b/server/src/test/java/org/elasticsearch/action/ActionModuleTests.java index 1279ea810f0a6..85eef61a012bc 100644 --- a/server/src/test/java/org/elasticsearch/action/ActionModuleTests.java +++ b/server/src/test/java/org/elasticsearch/action/ActionModuleTests.java @@ -35,10 +35,10 @@ import org.elasticsearch.rest.action.admin.cluster.RestNodesInfoAction; import org.elasticsearch.tasks.Task; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.usage.UsageService; import org.hamcrest.Matchers; diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskManagerTestCase.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskManagerTestCase.java index bb0e9977e3ac7..3d4041b53e2bf 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskManagerTestCase.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskManagerTestCase.java @@ -36,11 +36,11 @@ import org.elasticsearch.tasks.Task; import org.elasticsearch.tasks.TaskCancellationService; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.tasks.MockTaskManager; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.AbstractSimpleTransportTestCase; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.transport.TransportService; diff --git a/server/src/test/java/org/elasticsearch/cluster/coordination/JoinHelperTests.java b/server/src/test/java/org/elasticsearch/cluster/coordination/JoinHelperTests.java index db996ec397716..af33296dbd3ad 100644 --- a/server/src/test/java/org/elasticsearch/cluster/coordination/JoinHelperTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/coordination/JoinHelperTests.java @@ -25,13 +25,13 @@ import org.elasticsearch.indices.breaker.NoneCircuitBreakerService; import org.elasticsearch.monitor.StatusInfo; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.MockLogAppender; import org.elasticsearch.test.junit.annotations.TestLogging; import org.elasticsearch.test.transport.CapturingTransport; import org.elasticsearch.test.transport.CapturingTransport.CapturedRequest; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.ClusterConnectionManager; import org.elasticsearch.transport.RemoteTransportException; import org.elasticsearch.transport.TransportException; diff --git a/server/src/test/java/org/elasticsearch/common/network/NetworkModuleTests.java b/server/src/test/java/org/elasticsearch/common/network/NetworkModuleTests.java index d2a7036b7db6f..a28a7cf67927a 100644 --- a/server/src/test/java/org/elasticsearch/common/network/NetworkModuleTests.java +++ b/server/src/test/java/org/elasticsearch/common/network/NetworkModuleTests.java @@ -23,10 +23,10 @@ import org.elasticsearch.http.NullDispatcher; import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.plugins.NetworkPlugin; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportInterceptor; import org.elasticsearch.transport.TransportRequest; diff --git a/server/src/test/java/org/elasticsearch/discovery/PeerFinderTests.java b/server/src/test/java/org/elasticsearch/discovery/PeerFinderTests.java index e844cae4d2bb8..6bbaf21ccceab 100644 --- a/server/src/test/java/org/elasticsearch/discovery/PeerFinderTests.java +++ b/server/src/test/java/org/elasticsearch/discovery/PeerFinderTests.java @@ -22,6 +22,7 @@ import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.util.concurrent.DeterministicTaskQueue; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.MockLogAppender; import org.elasticsearch.test.junit.annotations.TestLogging; @@ -29,7 +30,6 @@ import org.elasticsearch.test.transport.CapturingTransport.CapturedRequest; import org.elasticsearch.test.transport.StubbableConnectionManager; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.ClusterConnectionManager; import org.elasticsearch.transport.ConnectionManager; import org.elasticsearch.transport.TransportException; diff --git a/server/src/test/java/org/elasticsearch/http/AbstractHttpServerTransportTests.java b/server/src/test/java/org/elasticsearch/http/AbstractHttpServerTransportTests.java index b8d102db7e8ae..df371f5206b61 100644 --- a/server/src/test/java/org/elasticsearch/http/AbstractHttpServerTransportTests.java +++ b/server/src/test/java/org/elasticsearch/http/AbstractHttpServerTransportTests.java @@ -39,13 +39,13 @@ import org.elasticsearch.rest.RestResponse; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.MockLogAppender; import org.elasticsearch.test.junit.annotations.TestLogging; import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.BytesRefRecycler; import org.elasticsearch.transport.TransportSettings; import org.elasticsearch.usage.UsageService; diff --git a/server/src/test/java/org/elasticsearch/http/DefaultRestChannelTests.java b/server/src/test/java/org/elasticsearch/http/DefaultRestChannelTests.java index c39302e710d7e..cf7d343a3c7b7 100644 --- a/server/src/test/java/org/elasticsearch/http/DefaultRestChannelTests.java +++ b/server/src/test/java/org/elasticsearch/http/DefaultRestChannelTests.java @@ -36,13 +36,13 @@ import org.elasticsearch.rest.RestResponse; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.MockLogAppender; import org.elasticsearch.test.junit.annotations.TestLogging; import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.BytesRefRecycler; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.json.JsonXContent; diff --git a/server/src/test/java/org/elasticsearch/indices/cluster/ClusterStateChanges.java b/server/src/test/java/org/elasticsearch/indices/cluster/ClusterStateChanges.java index e547a736df034..69882666b5ad4 100644 --- a/server/src/test/java/org/elasticsearch/indices/cluster/ClusterStateChanges.java +++ b/server/src/test/java/org/elasticsearch/indices/cluster/ClusterStateChanges.java @@ -96,10 +96,10 @@ import org.elasticsearch.indices.TestIndexNameExpressionResolver; import org.elasticsearch.snapshots.EmptySnapshotsInfoService; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ClusterServiceUtils; import org.elasticsearch.test.gateway.TestGatewayAllocator; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/server/src/test/java/org/elasticsearch/node/NodeTests.java b/server/src/test/java/org/elasticsearch/node/NodeTests.java index 0a0040eebea39..77e95ca7857f6 100644 --- a/server/src/test/java/org/elasticsearch/node/NodeTests.java +++ b/server/src/test/java/org/elasticsearch/node/NodeTests.java @@ -46,12 +46,12 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.test.MockHttpTransport; import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.TransportService; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.ContextParser; @@ -443,7 +443,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java b/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java index a6142499bc894..c5e974c4abcfd 100644 --- a/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java +++ b/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java @@ -32,12 +32,12 @@ import org.elasticsearch.ingest.Processor; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.PrivilegedOperations; import org.elasticsearch.test.compiler.InMemoryJavaCompiler; import org.elasticsearch.test.jar.JarUtils; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -271,7 +271,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/test/java/org/elasticsearch/rest/RestControllerTests.java b/server/src/test/java/org/elasticsearch/rest/RestControllerTests.java index ddbc1f33cacc6..740b1f2a04381 100644 --- a/server/src/test/java/org/elasticsearch/rest/RestControllerTests.java +++ b/server/src/test/java/org/elasticsearch/rest/RestControllerTests.java @@ -35,10 +35,10 @@ import org.elasticsearch.indices.breaker.HierarchyCircuitBreakerService; import org.elasticsearch.rest.RestHandler.Route; import org.elasticsearch.rest.action.RestToXContentListener; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.client.NoOpNodeClient; import org.elasticsearch.test.rest.FakeRestRequest; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.BytesRefRecycler; import org.elasticsearch.usage.UsageService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/server/src/test/java/org/elasticsearch/rest/RestHttpResponseHeadersTests.java b/server/src/test/java/org/elasticsearch/rest/RestHttpResponseHeadersTests.java index 7bdb4f7120282..11ac22d729b49 100644 --- a/server/src/test/java/org/elasticsearch/rest/RestHttpResponseHeadersTests.java +++ b/server/src/test/java/org/elasticsearch/rest/RestHttpResponseHeadersTests.java @@ -14,10 +14,10 @@ import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.indices.breaker.HierarchyCircuitBreakerService; import org.elasticsearch.rest.RestHandler.Route; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.rest.FakeRestChannel; import org.elasticsearch.test.rest.FakeRestRequest; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.usage.UsageService; import java.util.ArrayList; diff --git a/server/src/test/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryActionTests.java b/server/src/test/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryActionTests.java index 7ac44cf862e49..7c7d503563107 100644 --- a/server/src/test/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryActionTests.java +++ b/server/src/test/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryActionTests.java @@ -27,11 +27,11 @@ import org.elasticsearch.search.AbstractSearchTestCase; import org.elasticsearch.tasks.Task; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.rest.FakeRestChannel; import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.usage.UsageService; import org.elasticsearch.xcontent.XContentType; diff --git a/server/src/test/java/org/elasticsearch/snapshots/SnapshotResiliencyTests.java b/server/src/test/java/org/elasticsearch/snapshots/SnapshotResiliencyTests.java index 67a34bf4a08e9..e55e00f114bf3 100644 --- a/server/src/test/java/org/elasticsearch/snapshots/SnapshotResiliencyTests.java +++ b/server/src/test/java/org/elasticsearch/snapshots/SnapshotResiliencyTests.java @@ -178,9 +178,9 @@ import org.elasticsearch.search.SearchService; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.FetchPhase; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.BytesRefRecycler; import org.elasticsearch.transport.DisruptableMockTransport; import org.elasticsearch.transport.TransportService; diff --git a/server/src/test/java/org/elasticsearch/tasks/TaskManagerTests.java b/server/src/test/java/org/elasticsearch/tasks/TaskManagerTests.java index dc5f7bdfe1c5b..860d40cae7ea3 100644 --- a/server/src/test/java/org/elasticsearch/tasks/TaskManagerTests.java +++ b/server/src/test/java/org/elasticsearch/tasks/TaskManagerTests.java @@ -25,10 +25,10 @@ import org.elasticsearch.core.Releasable; import org.elasticsearch.core.Releasables; import org.elasticsearch.core.TimeValue; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.FakeTcpChannel; import org.elasticsearch.transport.TcpChannel; import org.elasticsearch.transport.TcpTransportChannel; diff --git a/server/src/test/java/org/elasticsearch/transport/InboundHandlerTests.java b/server/src/test/java/org/elasticsearch/transport/InboundHandlerTests.java index bd4be3f3bf49c..cac0b2b945881 100644 --- a/server/src/test/java/org/elasticsearch/transport/InboundHandlerTests.java +++ b/server/src/test/java/org/elasticsearch/transport/InboundHandlerTests.java @@ -32,12 +32,12 @@ import org.elasticsearch.core.Tuple; import org.elasticsearch.tasks.TaskId; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.MockLogAppender; import org.elasticsearch.test.TransportVersionUtils; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.junit.After; import org.junit.Before; diff --git a/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java b/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java index 80a06c55f2349..cc68a3e3ba0cd 100644 --- a/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java +++ b/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java @@ -31,8 +31,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -75,7 +75,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/test/framework/src/main/java/org/elasticsearch/node/MockNode.java b/test/framework/src/main/java/org/elasticsearch/node/MockNode.java index e97d21ae53697..7794f519a8088 100644 --- a/test/framework/src/main/java/org/elasticsearch/node/MockNode.java +++ b/test/framework/src/main/java/org/elasticsearch/node/MockNode.java @@ -40,11 +40,11 @@ import org.elasticsearch.search.SearchService; import org.elasticsearch.search.fetch.FetchPhase; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.MockHttpTransport; import org.elasticsearch.test.transport.MockTransportService; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportInterceptor; import org.elasticsearch.transport.TransportService; diff --git a/test/framework/src/main/java/org/elasticsearch/search/MockSearchService.java b/test/framework/src/main/java/org/elasticsearch/search/MockSearchService.java index a9d78d36fdb96..a4f97f41cbe1c 100644 --- a/test/framework/src/main/java/org/elasticsearch/search/MockSearchService.java +++ b/test/framework/src/main/java/org/elasticsearch/search/MockSearchService.java @@ -22,8 +22,8 @@ import org.elasticsearch.search.internal.ReaderContext; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.internal.ShardSearchRequest; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import java.io.IOException; import java.util.HashMap; diff --git a/test/framework/src/main/java/org/elasticsearch/test/ClusterServiceUtils.java b/test/framework/src/main/java/org/elasticsearch/test/ClusterServiceUtils.java index 80c1f0e700e62..3d0ce7c86ebac 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/ClusterServiceUtils.java +++ b/test/framework/src/main/java/org/elasticsearch/test/ClusterServiceUtils.java @@ -34,8 +34,8 @@ import org.elasticsearch.core.TimeValue; import org.elasticsearch.node.NodeClosedException; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import java.util.Collections; import java.util.concurrent.CountDownLatch; diff --git a/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java b/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java index a130ee136d0be..9b9f464d8dff3 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java +++ b/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java @@ -32,8 +32,8 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -88,7 +88,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/test/framework/src/main/java/org/elasticsearch/test/rest/RestActionTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/rest/RestActionTestCase.java index e15a4e4ec3ece..0f7ad24d32151 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/rest/RestActionTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/rest/RestActionTestCase.java @@ -17,9 +17,9 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.client.NoOpNodeClient; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.usage.UsageService; import org.junit.After; import org.junit.Before; diff --git a/test/framework/src/main/java/org/elasticsearch/test/tasks/MockTaskManager.java b/test/framework/src/main/java/org/elasticsearch/test/tasks/MockTaskManager.java index 0e89df35eca7a..1f2b41297738c 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/tasks/MockTaskManager.java +++ b/test/framework/src/main/java/org/elasticsearch/test/tasks/MockTaskManager.java @@ -17,8 +17,8 @@ import org.elasticsearch.tasks.Task; import org.elasticsearch.tasks.TaskAwareRequest; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import java.util.Collection; import java.util.Set; diff --git a/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransport.java b/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransport.java index 43184c5a220f9..d2395a80b9dfd 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransport.java +++ b/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransport.java @@ -21,8 +21,8 @@ import org.elasticsearch.core.Nullable; import org.elasticsearch.core.Tuple; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.CloseableConnection; import org.elasticsearch.transport.ClusterConnectionManager; import org.elasticsearch.transport.RemoteTransportException; diff --git a/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransportService.java b/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransportService.java index 43cb5b78c1f9f..37226b0e97bf6 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransportService.java +++ b/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransportService.java @@ -37,10 +37,10 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.search.SearchModule; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.tasks.MockTaskManager; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.BytesTransportRequest; import org.elasticsearch.transport.ClusterConnectionManager; import org.elasticsearch.transport.ConnectTransportException; diff --git a/test/framework/src/main/java/org/elasticsearch/transport/DisruptableMockTransport.java b/test/framework/src/main/java/org/elasticsearch/transport/DisruptableMockTransport.java index ff35c50891cf4..07e4f05a21fe9 100644 --- a/test/framework/src/main/java/org/elasticsearch/transport/DisruptableMockTransport.java +++ b/test/framework/src/main/java/org/elasticsearch/transport/DisruptableMockTransport.java @@ -21,9 +21,9 @@ import org.elasticsearch.common.util.concurrent.DeterministicTaskQueue; import org.elasticsearch.core.Nullable; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.transport.MockTransport; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import java.io.IOException; import java.util.ArrayList; diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java index dbefc3989ce45..9360f97990c82 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java @@ -25,8 +25,8 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.analytics.action.AnalyticsInfoTransportAction; @@ -187,7 +187,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java b/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java index ffc2062b237fb..a0e6d0daac322 100644 --- a/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java +++ b/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java @@ -23,8 +23,8 @@ import org.elasticsearch.plugins.SystemIndexPlugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.async.AsyncTaskIndexService; @@ -73,7 +73,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java b/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java index 155c167c57d1d..e2fc1707c0499 100644 --- a/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java +++ b/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java @@ -36,8 +36,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.ParseField; @@ -119,7 +119,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java index ec98a7f9123c2..a139b9a55f1be 100644 --- a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java +++ b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java @@ -50,10 +50,10 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.ParseField; @@ -189,7 +189,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java index bbe5c57b1d00a..1c8881637d4c6 100644 --- a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java +++ b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java @@ -89,8 +89,8 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.cluster.routing.allocation.DataTierAllocationDecider; @@ -333,7 +333,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java index 37358c483a749..d4c7828bc3b98 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java @@ -90,9 +90,10 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.internal.ShardSearchRequest; import org.elasticsearch.snapshots.Snapshot; +import org.elasticsearch.telemetry.TelemetryProvider; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportInterceptor; import org.elasticsearch.watcher.ResourceWatcherService; @@ -204,7 +205,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -221,7 +222,7 @@ public Collection createComponents( namedWriteableRegistry, expressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ) @@ -241,7 +242,7 @@ public Collection createComponents( namedWriteableRegistry, expressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ) diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/termsenum/action/RestTermsEnumActionTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/termsenum/action/RestTermsEnumActionTests.java index 3cbcfe6c074c3..27afe4eeeb952 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/termsenum/action/RestTermsEnumActionTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/termsenum/action/RestTermsEnumActionTests.java @@ -22,12 +22,12 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.tasks.Task; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.rest.FakeRestChannel; import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.usage.UsageService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java index e094ce30e2f8f..349ff1042d3a9 100644 --- a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java +++ b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java @@ -29,8 +29,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.deprecation.logging.DeprecationCacheResetAction; @@ -100,7 +100,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java index 60cc7c847b5e3..5fb20a883560f 100644 --- a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java +++ b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java @@ -35,8 +35,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.ParseField; @@ -201,7 +201,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java index e7cf7e9a7e489..ad2c033b0ee0c 100644 --- a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java +++ b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java @@ -35,8 +35,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.application.analytics.AnalyticsTemplateRegistry; @@ -209,7 +209,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java index 1ebe8a644a73f..f10480e9f64a7 100644 --- a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java +++ b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java @@ -30,8 +30,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.LocalStateCompositeXPackPlugin; @@ -114,7 +114,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -130,7 +130,7 @@ public Collection createComponents( namedWriteableRegistry, indexNameExpressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ); diff --git a/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java b/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java index f7417f31943e5..d65a81db11266 100644 --- a/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java +++ b/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java @@ -34,8 +34,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.XPackPlugin; @@ -83,7 +83,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java index 2ab3feef9fa51..783f5550a00af 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java @@ -39,10 +39,10 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.action.XPackInfoFeatureAction; @@ -89,7 +89,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java b/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java index 009e17bd79e6b..0cfa3c43b6b5a 100644 --- a/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java +++ b/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java @@ -43,8 +43,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.XContentParser; @@ -112,7 +112,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java b/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java index d5cea8ac5caa5..943394f326653 100644 --- a/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java +++ b/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java @@ -32,8 +32,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.XPackPlugin; @@ -98,7 +98,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java b/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java index b084826bc01ca..06ac4673264f3 100644 --- a/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java +++ b/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java @@ -26,9 +26,9 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.ilm.Step.StepKey; @@ -74,7 +74,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java b/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java index cf3021612abd8..6409c2b72e1f1 100644 --- a/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java +++ b/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java @@ -38,8 +38,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.ParseField; @@ -166,7 +166,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java index 1fee5385cea2a..a5b0754a7f178 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java @@ -33,8 +33,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.ClientHelper; @@ -116,7 +116,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java index 59f3f41371b53..d527f998a1ee8 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java @@ -77,10 +77,10 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.ContextParser; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -907,7 +907,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java b/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java index de02debef27a4..47e24b60896da 100644 --- a/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java +++ b/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java @@ -34,8 +34,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.XPackPlugin; @@ -130,7 +130,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java b/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java index 915935a2d6b24..8808482d2256f 100644 --- a/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java +++ b/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java @@ -57,8 +57,8 @@ import org.elasticsearch.snapshots.Snapshot; import org.elasticsearch.snapshots.SnapshotRestoreException; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.XPackPlugin; @@ -102,7 +102,7 @@ public Collection createComponents( final NamedWriteableRegistry registry, final IndexNameExpressionResolver resolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java b/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java index 49e436ea4251b..e9e1801dfcafb 100644 --- a/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java +++ b/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java @@ -33,10 +33,10 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.XPackSettings; @@ -90,7 +90,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java index f7a1d3e42036a..acd9ad9e85f50 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java @@ -70,10 +70,10 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.snapshots.SearchableSnapshotsSettings; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.XContentBuilder; @@ -331,7 +331,7 @@ public Collection createComponents( final NamedWriteableRegistry registry, final IndexNameExpressionResolver resolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java index c8a302249f023..c68b5cdddd789 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java @@ -89,10 +89,11 @@ import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.internal.ShardSearchRequest; +import org.elasticsearch.telemetry.TelemetryProvider; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.RemoteClusterService; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportInterceptor; @@ -633,7 +634,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java index fa7ff7b12994c..f4034117e7036 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java @@ -53,6 +53,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.IndexSettingsModule; import org.elasticsearch.test.MockLogAppender; @@ -61,7 +62,6 @@ import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.usage.UsageService; import org.elasticsearch.watcher.ResourceWatcherService; diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/netty4/SecurityNetty4HeaderSizeLimitTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/netty4/SecurityNetty4HeaderSizeLimitTests.java index df6ba3abda55d..575dac05b50c3 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/netty4/SecurityNetty4HeaderSizeLimitTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/netty4/SecurityNetty4HeaderSizeLimitTests.java @@ -22,9 +22,9 @@ import org.elasticsearch.indices.breaker.NoneCircuitBreakerService; import org.elasticsearch.mocksocket.MockSocket; import org.elasticsearch.tasks.TaskManager; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.RemoteClusterPortSettings; import org.elasticsearch.transport.RequestHandlerRegistry; import org.elasticsearch.transport.TcpHeader; diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/netty4/SecurityNetty4HttpServerTransportTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/netty4/SecurityNetty4HttpServerTransportTests.java index d0cba6b2381d4..1ce1d72f46820 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/netty4/SecurityNetty4HttpServerTransportTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/netty4/SecurityNetty4HttpServerTransportTests.java @@ -44,10 +44,10 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestResponse; import org.elasticsearch.rest.RestStatus; +import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.netty4.SharedGroupFactory; import org.elasticsearch.transport.netty4.TLSConfig; import org.elasticsearch.xpack.core.XPackSettings; diff --git a/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java b/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java index eeb766ff70c92..6c5e1e6af69ce 100644 --- a/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java +++ b/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java @@ -40,9 +40,9 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.ObjectParser; @@ -146,7 +146,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java b/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java index 3b9b7a696c620..754ba7970eaa2 100644 --- a/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java +++ b/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java @@ -28,8 +28,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -53,7 +53,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java b/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java index cb147ab0af345..ba743005bf2df 100644 --- a/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java +++ b/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java @@ -37,8 +37,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.ParseField; @@ -135,7 +135,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java index 6e788c0ebcdc2..8f39ce939a51c 100644 --- a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java +++ b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java @@ -31,8 +31,8 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xpack.core.XPackPlugin; @@ -99,7 +99,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java index 35f651f91ccb7..de0858e59900c 100644 --- a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java +++ b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java @@ -20,8 +20,8 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -55,7 +55,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java index 6eebc97541123..c1964448c2662 100644 --- a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java +++ b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java @@ -49,8 +49,8 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.NamedXContentRegistry.Entry; @@ -241,7 +241,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java b/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java index 81adf69aa47e4..1fee6eda5ad6d 100644 --- a/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java +++ b/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java @@ -36,8 +36,8 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportInterceptor; @@ -96,7 +96,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java b/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java index afcc8a2097e94..0c8690cc62e5f 100644 --- a/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java +++ b/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java @@ -54,10 +54,10 @@ import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; import org.elasticsearch.script.TemplateScript; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; import org.elasticsearch.xcontent.XContentBuilder; @@ -317,7 +317,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java index 5b40bac54ede6..e1f1933242414 100644 --- a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java +++ b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java @@ -15,10 +15,10 @@ import org.elasticsearch.indices.SystemIndexDescriptor; import org.elasticsearch.indices.TestIndexNameExpressionResolver; import org.elasticsearch.plugins.internal.DocumentParsingObserver; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.IndexSettingsModule; import org.elasticsearch.threadpool.ExecutorBuilder; -import org.elasticsearch.tracing.Tracer; import org.elasticsearch.xpack.core.watcher.watch.Watch; import org.elasticsearch.xpack.watcher.notification.NotificationService; @@ -75,7 +75,7 @@ public void testWatcherDisabledTests() throws Exception { // also no component creation if not enabled assertThat( - watcher.createComponents(null, null, null, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null), + watcher.createComponents(null, null, null, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null), hasSize(0) ); From 92edce8af47f406afb05a05728cda95b25d51223 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Tue, 19 Sep 2023 16:32:39 +0200 Subject: [PATCH 03/18] security not working --- .../server/cli/APMJvmOptions.java | 6 +- modules/apm/build.gradle | 2 +- modules/apm/src/main/java/module-info.java | 2 +- .../org/elasticsearch/telemetry/apm/APM.java | 2 +- .../telemetry/apm/APMAgentSettings.java | 5 +- .../telemetry/apm/APMMetric.java | 29 +++++-- .../telemetry/apm/OtelCounter.java | 26 +++---- .../telemetry/apm/OtelDoubleGauge.java | 29 ++++--- .../telemetry/apm/OtelDoubleHistogram.java | 30 ++++---- .../plugin-metadata/plugin-security.policy | 1 + server/src/main/java/module-info.java | 2 +- .../AuditTrailSettingsUpdateTests.java | 9 ++- .../xpack/security/Security.java | 8 +- .../audit/logfile/LoggingAuditTrail.java | 31 +++++++- .../xpack/security/SecurityTests.java | 4 +- .../logfile/LoggingAuditTrailFilterTests.java | 76 ++++++++++++++++--- .../audit/logfile/LoggingAuditTrailTests.java | 7 +- 17 files changed, 194 insertions(+), 75 deletions(-) diff --git a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java index 9dcfc1e373a93..54859fe4a2452 100644 --- a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java +++ b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java @@ -50,8 +50,8 @@ class APMJvmOptions { // by the agent. Don't disable writing to a log file, as the agent will then // require extra Security Manager permissions when it tries to do something // else, and it's just painful. - "log_file", "_AGENT_HOME_/../../logs/apm.log", - + "log_file", "/Users/przemyslawgomulka/workspace/pgomulka/apm.log", + "log_level", "debug", // ES does not use auto-instrumentation. "instrument", "false" ); @@ -82,7 +82,7 @@ class APMJvmOptions { // is doing, leave this value alone. "log_level", "error", "application_packages", "org.elasticsearch,org.apache.lucene", - "metrics_interval", "120s", + "metrics_interval", "5s", "breakdown_metrics", "false", "central_config", "false" ); diff --git a/modules/apm/build.gradle b/modules/apm/build.gradle index 06a942d38bcd6..c8619c97d1068 100644 --- a/modules/apm/build.gradle +++ b/modules/apm/build.gradle @@ -9,7 +9,7 @@ apply plugin: 'elasticsearch.internal-es-plugin' esplugin { name 'apm' description 'Provides APM integration for Elasticsearch' - classname 'org.elasticsearch.tracing.apm.APM' + classname 'org.elasticsearch.telemetry.apm.APM' } def otelVersion = '1.17.0' diff --git a/modules/apm/src/main/java/module-info.java b/modules/apm/src/main/java/module-info.java index 4f1f8e817d2e8..0bea3078f5f00 100644 --- a/modules/apm/src/main/java/module-info.java +++ b/modules/apm/src/main/java/module-info.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -module org.elasticsearch.tracing.apm { +module org.elasticsearch.telemetry.apm { requires org.elasticsearch.base; requires org.elasticsearch.server; requires org.elasticsearch.xcontent; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java index 773d9123f3c82..0cbe2126f9e15 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java @@ -92,7 +92,7 @@ public Collection createComponents( final APMAgentSettings apmAgentSettings = new APMAgentSettings(); apmAgentSettings.syncAgentSystemProperties(settings); - apmAgentSettings.addClusterSettingsListeners(clusterService, apmTracer); + apmAgentSettings.addClusterSettingsListeners(clusterService, telemetryProvider.get()); final APMMetric apmMetric = telemetryProvider.get().getMetric(); diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java index d0fd6c87fe4b6..75a98cd6e34bb 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java @@ -41,10 +41,13 @@ class APMAgentSettings { */ static Map APM_AGENT_DEFAULT_SETTINGS = Map.of("transaction_sample_rate", "0.2"); - void addClusterSettingsListeners(ClusterService clusterService, APMTracer apmTracer) { + void addClusterSettingsListeners(ClusterService clusterService, APMTelemetryProvider telemetryProvider) { + APMTracer apmTracer = telemetryProvider.getTracer(); + APMMetric apmMetric = telemetryProvider.getMetric(); final ClusterSettings clusterSettings = clusterService.getClusterSettings(); clusterSettings.addSettingsUpdateConsumer(APM_ENABLED_SETTING, enabled -> { apmTracer.setEnabled(enabled); + apmMetric.setEnabled(enabled); // The agent records data other than spans, e.g. JVM metrics, so we toggle this setting in order to // minimise its impact to a running Elasticsearch. this.setAgentSetting("recording", Boolean.toString(enabled)); diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java index f88cd4b84cd72..160e42e1f0893 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java @@ -14,6 +14,7 @@ import org.elasticsearch.common.component.AbstractLifecycleComponent; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ConcurrentCollections; import org.elasticsearch.telemetry.MetricName; import org.elasticsearch.telemetry.metric.Counter; @@ -23,6 +24,7 @@ import java.security.AccessController; import java.security.PrivilegedAction; import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_ENABLED_SETTING; @@ -31,7 +33,7 @@ public class APMMetric extends AbstractLifecycleComponent implements org.elastic private final Map doubleGauges = ConcurrentCollections.newConcurrentMap(); private final Map doubleHistograms = ConcurrentCollections.newConcurrentMap(); private volatile boolean enabled; - private volatile APMServices services; + private AtomicReference services = new AtomicReference<>(); record APMServices(Meter meter, OpenTelemetry openTelemetry) {} @@ -71,7 +73,10 @@ public Counter registerCounter(MetricName name, String description, T unit) if (v != null) { throw new IllegalStateException("double gauge [" + name.getRawName() + "] already registered"); } - return OtelCounter.build(services.meter, name, description, unit); + var lazyCounter = new LazyInitializable<>( + () -> services.get().meter.counterBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() + ); + return OtelCounter.build(lazyCounter, name, description, unit); }); } @@ -82,7 +87,11 @@ public DoubleGauge registerDoubleGauge(MetricName name, String description, if (v != null) { throw new IllegalStateException("double gauge [" + name.getRawName() + "] already registered"); } - return OtelDoubleGauge.build(services.meter, name, description, unit); + var lazyGauge = new LazyInitializable<>( + () -> services.get().meter.gaugeBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).buildObserver() + ); + + return OtelDoubleGauge.build(lazyGauge, name, description, unit); }); } @@ -93,19 +102,23 @@ public DoubleHistogram registerDoubleHistogram(MetricName name, String descr if (v != null) { throw new IllegalStateException("double histogram [" + name.getRawName() + "] already registered"); } - return OtelDoubleHistogram.build(services.meter, name, description, unit); + var lazyHistogram = new LazyInitializable<>( + () -> services.get().meter.histogramBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() + ); + + return OtelDoubleHistogram.build(lazyHistogram, name, description, unit); }); } - APMServices createApmServices() { + AtomicReference createApmServices() { assert this.enabled; - assert this.services == null; + assert this.services.get() == null; - return AccessController.doPrivileged((PrivilegedAction) () -> { + return AccessController.doPrivileged((PrivilegedAction>) () -> { var openTelemetry = GlobalOpenTelemetry.get(); var meter = openTelemetry.getMeter("elasticsearch"); - return new APMServices(meter, openTelemetry); + return new AtomicReference<>(new APMServices(meter, openTelemetry)); }); } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java index 4f064313b1e11..0a74d9bf226d6 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java @@ -9,40 +9,40 @@ package org.elasticsearch.telemetry.apm; import io.opentelemetry.api.metrics.LongCounter; -import io.opentelemetry.api.metrics.Meter; +import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.telemetry.MetricName; import org.elasticsearch.telemetry.metric.Counter; public class OtelCounter implements Counter { - private final LongCounter counter; + private final LazyInitializable counter; private final MetricName name; private final String description; private final T unit; - private OtelCounter(LongCounter counter, MetricName name, String description, T unit) { - this.counter = counter; + private OtelCounter(LazyInitializable lazyCounter, MetricName name, String description, T unit) { + this.counter = lazyCounter; this.name = name; this.description = description; this.unit = unit; } - public static OtelCounter build(Meter meter, MetricName name, String description, T unit) { - return new OtelCounter<>( - meter.counterBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build(), - name, - description, - unit - ); + public static OtelCounter build( + LazyInitializable lazyCounter, + MetricName name, + String description, + T unit + ) { + return new OtelCounter<>(lazyCounter, name, description, unit); } @Override public void increment() { - counter.add(1L); + counter.getOrCompute().add(1L); } @Override public void incrementBy(long inc) { - counter.add(inc); + counter.getOrCompute().add(inc); } } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java index ffb2224cc3ece..edb7ce3efe226 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java @@ -8,43 +8,48 @@ package org.elasticsearch.telemetry.apm; -import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.api.metrics.ObservableDoubleMeasurement; +import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.telemetry.MetricName; import org.elasticsearch.telemetry.metric.DoubleGauge; import java.util.Map; public class OtelDoubleGauge implements DoubleGauge { - private final ObservableDoubleMeasurement gauge; + private final LazyInitializable gauge; private final MetricName name; private final String description; private final T unit; - private OtelDoubleGauge(ObservableDoubleMeasurement gauge, MetricName name, String description, T unit) { + private OtelDoubleGauge( + LazyInitializable gauge, + MetricName name, + String description, + T unit + ) { this.gauge = gauge; this.name = name; this.description = description; this.unit = unit; } - public static OtelDoubleGauge build(Meter meter, MetricName name, String description, T unit) { - return new OtelDoubleGauge<>( - meter.gaugeBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).buildObserver(), - name, - description, - unit - ); + public static OtelDoubleGauge build( + LazyInitializable lazyGauge, + MetricName name, + String description, + T unit + ) { + return new OtelDoubleGauge<>(lazyGauge, name, description, unit); } @Override public void record(double value) { - gauge.record(value); + gauge.getOrCompute().record(value); } @Override public void record(double value, Map attributes) { - gauge.record(value, OtelHelper.fromMap(attributes)); + gauge.getOrCompute().record(value, OtelHelper.fromMap(attributes)); } } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java index 78fe9cdf8575c..3de4f5996b7df 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java @@ -8,8 +8,7 @@ package org.elasticsearch.telemetry.apm; -import io.opentelemetry.api.metrics.Meter; - +import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.telemetry.MetricName; import org.elasticsearch.telemetry.metric.DoubleHistogram; @@ -17,35 +16,40 @@ import java.util.Map; public class OtelDoubleHistogram implements DoubleHistogram { - private final io.opentelemetry.api.metrics.DoubleHistogram histogram; + private final LazyInitializable histogram; private final MetricName name; private final String description; private final T unit; - public OtelDoubleHistogram(io.opentelemetry.api.metrics.DoubleHistogram histogram, MetricName name, String description, T unit) { + public OtelDoubleHistogram( + LazyInitializable histogram, + MetricName name, + String description, + T unit + ) { this.histogram = histogram; this.name = name; this.description = description; this.unit = unit; } - public static OtelDoubleHistogram build(Meter meter, MetricName name, String description, T unit) { - return new OtelDoubleHistogram<>( - meter.histogramBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build(), - name, - description, - unit - ); + public static OtelDoubleHistogram build( + LazyInitializable lazyHistogram, + MetricName name, + String description, + T unit + ) { + return new OtelDoubleHistogram<>(lazyHistogram, name, description, unit); } @Override public void record(double value) { - histogram.record(value); + histogram.getOrCompute().record(value); } @Override public void record(double value, Map attributes) { - histogram.record(value, OtelHelper.fromMap(attributes)); + histogram.getOrCompute().record(value, OtelHelper.fromMap(attributes)); } @Override diff --git a/modules/apm/src/main/plugin-metadata/plugin-security.policy b/modules/apm/src/main/plugin-metadata/plugin-security.policy index f0032bb291789..b85d3ec05c277 100644 --- a/modules/apm/src/main/plugin-metadata/plugin-security.policy +++ b/modules/apm/src/main/plugin-metadata/plugin-security.policy @@ -26,4 +26,5 @@ grant codeBase "${codebase.elastic-apm-agent}" { permission java.lang.RuntimePermission "getClassLoader"; permission java.io.FilePermission "<>", "read,write"; permission org.elasticsearch.secure_sm.ThreadPermission "modifyArbitraryThreadGroup"; + permission java.net.NetPermission "getProxySelector"; }; diff --git a/server/src/main/java/module-info.java b/server/src/main/java/module-info.java index 6394c4aaf49bb..c14a977e12488 100644 --- a/server/src/main/java/module-info.java +++ b/server/src/main/java/module-info.java @@ -364,7 +364,7 @@ exports org.elasticsearch.tasks; exports org.elasticsearch.threadpool; exports org.elasticsearch.telemetry; - exports org.elasticsearch.telemetry.metric to org.elasticsearch.tracing.apm; + exports org.elasticsearch.telemetry.metric to org.elasticsearch.telemetry.apm, org.elasticsearch.security; exports org.elasticsearch.transport; exports org.elasticsearch.upgrades; exports org.elasticsearch.usage; diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/audit/logfile/AuditTrailSettingsUpdateTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/audit/logfile/AuditTrailSettingsUpdateTests.java index 84a7f752d56a4..1036ebc000915 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/audit/logfile/AuditTrailSettingsUpdateTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/audit/logfile/AuditTrailSettingsUpdateTests.java @@ -12,6 +12,7 @@ import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.metric.Metric; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; import org.elasticsearch.test.SecurityIntegTestCase; import org.elasticsearch.xpack.security.audit.AuditLevel; @@ -80,7 +81,13 @@ public void testDynamicFilterSettings() throws Exception { settingsBuilder.put(startupFilterSettings); settingsBuilder.put(updateFilterSettings); // reference audit trail containing all filters - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); final String expected = auditTrail.eventFilterPolicyRegistry.toString(); // update settings on internal cluster updateClusterSettings(Settings.builder().put(updateFilterSettings)); diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java index c68b5cdddd789..b3ecdaedd83b5 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java @@ -648,7 +648,8 @@ public Collection createComponents( xContentRegistry, environment, nodeEnvironment.nodeMetadata(), - expressionResolver + expressionResolver, + telemetryProvider ); } catch (final Exception e) { throw new IllegalStateException("security initialization failed", e); @@ -665,7 +666,8 @@ Collection createComponents( NamedXContentRegistry xContentRegistry, Environment environment, NodeMetadata nodeMetadata, - IndexNameExpressionResolver expressionResolver + IndexNameExpressionResolver expressionResolver, + TelemetryProvider telemetryProvider ) throws Exception { logger.info("Security is {}", enabled ? "enabled" : "disabled"); if (enabled == false) { @@ -704,7 +706,7 @@ Collection createComponents( // audit trail service construction final AuditTrail auditTrail = XPackSettings.AUDIT_ENABLED.get(settings) - ? new LoggingAuditTrail(settings, clusterService, threadPool) + ? new LoggingAuditTrail(settings, clusterService, threadPool, telemetryProvider.getMetric()) : null; final AuditTrailService auditTrailService = new AuditTrailService(auditTrail, getLicenseState()); components.add(auditTrailService); diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrail.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrail.java index 1b4f4b891c7ea..4a39f45c94737 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrail.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrail.java @@ -35,6 +35,9 @@ import org.elasticsearch.node.Node; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.MetricName; +import org.elasticsearch.telemetry.metric.Counter; +import org.elasticsearch.telemetry.metric.Metric; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.transport.TransportResponse; @@ -381,6 +384,7 @@ public class LoggingAuditTrail implements AuditTrail, ClusterStateListener { private final ThreadContext threadContext; private final SecurityContext securityContext; final EventFilterPolicyRegistry eventFilterPolicyRegistry; + private final Counter authenticationFailedCounter; // package for testing volatile EnumSet events; boolean includeRequestBody; @@ -392,11 +396,16 @@ public String name() { return NAME; } - public LoggingAuditTrail(Settings settings, ClusterService clusterService, ThreadPool threadPool) { - this(settings, clusterService, LogManager.getLogger(LoggingAuditTrail.class), threadPool.getThreadContext()); + public LoggingAuditTrail(Settings settings, ClusterService clusterService, ThreadPool threadPool, Metric metric) { + this(settings, clusterService, LogManager.getLogger(LoggingAuditTrail.class), threadPool.getThreadContext(), metric); } - LoggingAuditTrail(Settings settings, ClusterService clusterService, Logger logger, ThreadContext threadContext) { + LoggingAuditTrail(Settings settings, ClusterService clusterService, Logger logger, ThreadContext threadContext, Metric metric) { + this.authenticationFailedCounter = metric.registerCounter( + new MetricName("authenticationFailed"), + "authenticationFailed", + new Object() + ); this.logger = logger; this.events = parse(INCLUDE_EVENT_SETTINGS.get(settings), EXCLUDE_EVENT_SETTINGS.get(settings)); this.includeRequestBody = INCLUDE_REQUEST_BODY.get(settings); @@ -564,7 +573,10 @@ public void anonymousAccessDenied(String requestId, HttpPreRequest request) { @Override public void authenticationFailed(String requestId, AuthenticationToken token, String action, TransportRequest transportRequest) { + if (events.contains(AUTHENTICATION_FAILED)) { + authenticationFailedCounter.increment(); + final Optional indices = Optional.ofNullable(indices(transportRequest)); if (eventFilterPolicyRegistry.ignorePredicate() .test(new AuditEventMetaInfo(Optional.of(token), Optional.empty(), indices, Optional.of(action))) == false) { @@ -587,7 +599,10 @@ public void authenticationFailed(String requestId, AuthenticationToken token, St @Override public void authenticationFailed(String requestId, HttpPreRequest request) { + if (events.contains(AUTHENTICATION_FAILED) && eventFilterPolicyRegistry.ignorePredicate().test(AuditEventMetaInfo.EMPTY) == false) { + authenticationFailedCounter.increment(); + new LogEntryBuilder().with(EVENT_TYPE_FIELD_NAME, REST_ORIGIN_FIELD_VALUE) .with(EVENT_ACTION_FIELD_NAME, "authentication_failed") .withRestUriAndMethod(request) @@ -600,7 +615,10 @@ public void authenticationFailed(String requestId, HttpPreRequest request) { @Override public void authenticationFailed(String requestId, String action, TransportRequest transportRequest) { + if (events.contains(AUTHENTICATION_FAILED)) { + authenticationFailedCounter.increment(); + final Optional indices = Optional.ofNullable(indices(transportRequest)); if (eventFilterPolicyRegistry.ignorePredicate() .test(new AuditEventMetaInfo(Optional.empty(), Optional.empty(), indices, Optional.of(action))) == false) { @@ -619,9 +637,12 @@ public void authenticationFailed(String requestId, String action, TransportReque @Override public void authenticationFailed(String requestId, AuthenticationToken token, HttpPreRequest request) { + if (events.contains(AUTHENTICATION_FAILED) && eventFilterPolicyRegistry.ignorePredicate() .test(new AuditEventMetaInfo(Optional.of(token), Optional.empty(), Optional.empty(), Optional.empty())) == false) { + authenticationFailedCounter.increment(); + final LogEntryBuilder logEntryBuilder = new LogEntryBuilder().with(EVENT_TYPE_FIELD_NAME, REST_ORIGIN_FIELD_VALUE) .with(EVENT_ACTION_FIELD_NAME, "authentication_failed") .with(PRINCIPAL_FIELD_NAME, token.principal()) @@ -645,6 +666,8 @@ public void authenticationFailed( TransportRequest transportRequest ) { if (events.contains(REALM_AUTHENTICATION_FAILED)) { + authenticationFailedCounter.increment(); + final Optional indices = Optional.ofNullable(indices(transportRequest)); if (eventFilterPolicyRegistry.ignorePredicate() .test(new AuditEventMetaInfo(Optional.of(token), Optional.of(realm), indices, Optional.of(action))) == false) { @@ -669,6 +692,8 @@ public void authenticationFailed(String requestId, String realm, AuthenticationT if (events.contains(REALM_AUTHENTICATION_FAILED) && eventFilterPolicyRegistry.ignorePredicate() .test(new AuditEventMetaInfo(Optional.of(token), Optional.of(realm), Optional.empty(), Optional.empty())) == false) { + authenticationFailedCounter.increment(); + new LogEntryBuilder().with(EVENT_TYPE_FIELD_NAME, REST_ORIGIN_FIELD_VALUE) .with(EVENT_ACTION_FIELD_NAME, "realm_authentication_failed") .with(REALM_FIELD_NAME, realm) diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java index f4034117e7036..dcef22044a16f 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java @@ -53,6 +53,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.IndexSettingsModule; @@ -211,7 +212,8 @@ private Collection createComponentsUtil(Settings settings) throws Except xContentRegistry(), env, nodeMetadata, - TestIndexNameExpressionResolver.newInstance(threadContext) + TestIndexNameExpressionResolver.newInstance(threadContext), + TelemetryProvider.NOOP ); } diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailFilterTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailFilterTests.java index 9da5de1a5dd9b..14748c47b5bf2 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailFilterTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailFilterTests.java @@ -27,6 +27,7 @@ import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.http.HttpRequest; import org.elasticsearch.rest.RestRequest; +import org.elasticsearch.telemetry.metric.Metric; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.test.rest.FakeRestRequest.Builder; @@ -149,7 +150,13 @@ public void testPolicyDoesNotMatchNullValuesInEvent() throws Exception { final List filteredActions = randomNonEmptyListOfFilteredActions(); settingsBuilder.putList("xpack.security.audit.logfile.events.ignore_filters.actionsPolicy.actions", filteredActions); - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); // user field matches assertTrue( @@ -325,7 +332,13 @@ public void testSingleCompletePolicyPredicate() throws Exception { final List filteredActions = randomNonEmptyListOfFilteredActions(); settingsBuilder.putList("xpack.security.audit.logfile.events.ignore_filters.completeFilterPolicy.actions", filteredActions); - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); // all fields match Random random = random(); @@ -521,7 +534,13 @@ public void testSingleCompleteWithEmptyFieldPolicyPredicate() throws Exception { final List filteredActions = randomNonEmptyListOfFilteredActions(); settingsBuilder.putList("xpack.security.audit.logfile.events.ignore_filters.completeFilterPolicy.actions", filteredActions); - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); // all fields match Random random = random(); @@ -734,7 +753,13 @@ public void testTwoPolicyPredicatesWithMissingFields() throws Exception { final List filteredIndices = randomNonEmptyListOfFilteredNames(); settingsBuilder.putList("xpack.security.audit.logfile.events.ignore_filters.secondPolicy.indices", filteredIndices); - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); final User unfilteredUser; unfilteredUser = new User(UNFILTER_MARKER + randomAlphaOfLengthBetween(1, 8)); @@ -870,7 +895,13 @@ public void testUsersFilter() throws Exception { final MockToken filteredToken = new MockToken(randomFrom(allFilteredUsers)); final MockToken unfilteredToken = new MockToken(UNFILTER_MARKER + randomAlphaOfLengthBetween(1, 4)); - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); final List logOutput = CapturingLogger.output(logger.getName(), Level.INFO); // anonymous accessDenied auditTrail.anonymousAccessDenied(randomAlphaOfLength(8), "_action", request); @@ -1223,7 +1254,13 @@ public void testRealmsFilter() throws Exception { : new MockIndicesRequest(threadContext, new String[] { "idx1", "idx2" }); final MockToken authToken = new MockToken("token1"); - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); final List logOutput = CapturingLogger.output(logger.getName(), Level.INFO); // anonymous accessDenied auditTrail.anonymousAccessDenied(randomAlphaOfLength(8), "_action", request); @@ -1730,7 +1767,13 @@ public void testRolesFilter() throws Exception { : new MockIndicesRequest(threadContext, new String[] { "idx1", "idx2" }); final MockToken authToken = new MockToken("token1"); - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); final List logOutput = CapturingLogger.output(logger.getName(), Level.INFO); // anonymous accessDenied auditTrail.anonymousAccessDenied(randomAlphaOfLength(8), "_action", request); @@ -2047,7 +2090,13 @@ public void testIndicesFilter() throws Exception { final MockToken authToken = new MockToken("token1"); final TransportRequest noIndexRequest = new MockRequest(threadContext); - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); final List logOutput = CapturingLogger.output(logger.getName(), Level.INFO); // anonymous accessDenied auditTrail.anonymousAccessDenied(randomAlphaOfLength(8), "_action", noIndexRequest); @@ -2517,7 +2566,13 @@ public void testActionsFilter() throws Exception { ? new MockRequest(threadContext) : new MockIndicesRequest(threadContext, new String[] { "idx1", "idx2" }); final MockToken authToken = new MockToken("token1"); - final LoggingAuditTrail auditTrail = new LoggingAuditTrail(settingsBuilder.build(), clusterService, logger, threadContext); + final LoggingAuditTrail auditTrail = new LoggingAuditTrail( + settingsBuilder.build(), + clusterService, + logger, + threadContext, + Metric.NOOP + ); final List logOutput = CapturingLogger.output(logger.getName(), Level.INFO); // anonymous accessDenied @@ -2752,7 +2807,8 @@ public void testRemoveIgnoreFilter() throws IllegalAccessException, IOException Settings.builder().put(settings).build(), clusterService, logger, - threadContext + threadContext, + Metric.NOOP ); final List logOutput = CapturingLogger.output(logger.getName(), Level.INFO); diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailTests.java index 9ec2e8be383b6..0b108217d6ec6 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailTests.java @@ -38,6 +38,7 @@ import org.elasticsearch.core.Tuple; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.tasks.Task; +import org.elasticsearch.telemetry.metric.Metric; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.rest.FakeRestRequest; import org.elasticsearch.test.rest.FakeRestRequest.Builder; @@ -353,7 +354,7 @@ public void init() throws Exception { ); } logger = CapturingLogger.newCapturingLogger(randomFrom(Level.OFF, Level.FATAL, Level.ERROR, Level.WARN, Level.INFO), patternLayout); - auditTrail = new LoggingAuditTrail(settings, clusterService, logger, threadContext); + auditTrail = new LoggingAuditTrail(settings, clusterService, logger, threadContext, Metric.NOOP); apiKeyService = new ApiKeyService( settings, Clock.systemUTC(), @@ -2708,7 +2709,7 @@ public void testCrossClusterAccessAuthenticationSuccessTransport() throws Except public void testRequestsWithoutIndices() throws Exception { settings = Settings.builder().put(settings).put("xpack.security.audit.logfile.events.include", "_all").build(); - auditTrail = new LoggingAuditTrail(settings, clusterService, logger, threadContext); + auditTrail = new LoggingAuditTrail(settings, clusterService, logger, threadContext, Metric.NOOP); final AuthorizationInfo authorizationInfo = () -> Collections.singletonMap( PRINCIPAL_ROLES_FIELD_NAME, new String[] { randomAlphaOfLengthBetween(1, 6) } @@ -2796,7 +2797,7 @@ private void updateLoggerSettings(Settings settings) { this.settings = settings; // either create a new audit trail or update the settings on the existing one if (randomBoolean()) { - this.auditTrail = new LoggingAuditTrail(settings, clusterService, logger, threadContext); + this.auditTrail = new LoggingAuditTrail(settings, clusterService, logger, threadContext, Metric.NOOP); } else { this.clusterService.getClusterSettings().applySettings(settings); } From 65bfb4d91e4ff2e1b20dab566e3d5926f4b79ff3 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Tue, 19 Sep 2023 16:58:05 +0200 Subject: [PATCH 04/18] fix startup order --- .../org/elasticsearch/telemetry/apm/APMMetric.java | 13 +++++++------ .../telemetry/apm/APMTelemetryProvider.java | 6 ++++-- .../security/audit/logfile/LoggingAuditTrail.java | 4 ++++ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java index 160e42e1f0893..b504eb1ede843 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java @@ -45,7 +45,7 @@ public APMMetric(Settings settings) { void setEnabled(boolean enabled) { this.enabled = enabled; if (enabled) { - this.services = createApmServices(); + createApmServices(); } else { destroyApmServices(); } @@ -54,7 +54,7 @@ void setEnabled(boolean enabled) { @Override protected void doStart() { if (enabled) { - this.services = createApmServices(); + createApmServices(); } } @@ -110,20 +110,21 @@ public DoubleHistogram registerDoubleHistogram(MetricName name, String descr }); } - AtomicReference createApmServices() { + void createApmServices() { assert this.enabled; assert this.services.get() == null; - return AccessController.doPrivileged((PrivilegedAction>) () -> { + AccessController.doPrivileged((PrivilegedAction) () -> { var openTelemetry = GlobalOpenTelemetry.get(); var meter = openTelemetry.getMeter("elasticsearch"); - return new AtomicReference<>(new APMServices(meter, openTelemetry)); + this.services.set(new APMServices(meter, openTelemetry)); + return null; }); } private void destroyApmServices() { - this.services = null; + this.services.set(null); } } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java index eb17b9d0e19aa..d4f76d56d06c1 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java @@ -13,20 +13,22 @@ public class APMTelemetryProvider implements TelemetryProvider { private Settings settings; + final APMMetric apmMetric; + final APMTracer apmTracer; public APMTelemetryProvider(Settings settings) { this.settings = settings; + apmMetric = new APMMetric(settings); + apmTracer = new APMTracer(settings); } @Override public APMTracer getTracer() { - final APMTracer apmTracer = new APMTracer(settings); return apmTracer; } @Override public APMMetric getMetric() { - final APMMetric apmMetric = new APMMetric(settings); return apmMetric; } } diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrail.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrail.java index 4a39f45c94737..c6bd81b87a96c 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrail.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrail.java @@ -541,6 +541,8 @@ public void authenticationSuccess(String requestId, Authentication authenticatio @Override public void anonymousAccessDenied(String requestId, String action, TransportRequest transportRequest) { if (events.contains(ANONYMOUS_ACCESS_DENIED)) { + authenticationFailedCounter.increment(); + final Optional indices = Optional.ofNullable(indices(transportRequest)); if (eventFilterPolicyRegistry.ignorePredicate() .test(new AuditEventMetaInfo(Optional.empty(), Optional.empty(), indices, Optional.of(action))) == false) { @@ -561,6 +563,8 @@ public void anonymousAccessDenied(String requestId, String action, TransportRequ public void anonymousAccessDenied(String requestId, HttpPreRequest request) { if (events.contains(ANONYMOUS_ACCESS_DENIED) && eventFilterPolicyRegistry.ignorePredicate().test(AuditEventMetaInfo.EMPTY) == false) { + authenticationFailedCounter.increment(); + new LogEntryBuilder().with(EVENT_TYPE_FIELD_NAME, REST_ORIGIN_FIELD_VALUE) .with(EVENT_ACTION_FIELD_NAME, "anonymous_access_denied") .withRestUriAndMethod(request) From 3422c750180a1cd65ba0d7d757b9038c78ac8e8e Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Wed, 20 Sep 2023 14:36:35 +0200 Subject: [PATCH 05/18] update apm agent --- .../elasticsearch/server/cli/APMJvmOptions.java | 4 +++- gradle/verification-metadata.xml | 5 +++++ modules/apm/build.gradle | 2 +- .../telemetry/apm/APMAgentSettings.java | 3 ++- .../elasticsearch/telemetry/apm/APMMetric.java | 17 +++++++++++++++++ .../elasticsearch/telemetry/apm/APMTracer.java | 7 ++----- .../telemetry/apm/APMTracerTests.java | 3 +-- .../main/java/org/elasticsearch/node/Node.java | 4 ++++ 8 files changed, 35 insertions(+), 10 deletions(-) diff --git a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java index 54859fe4a2452..45a4a1d7d8f14 100644 --- a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java +++ b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java @@ -53,7 +53,9 @@ class APMJvmOptions { "log_file", "/Users/przemyslawgomulka/workspace/pgomulka/apm.log", "log_level", "debug", // ES does not use auto-instrumentation. - "instrument", "false" + "instrument", "false", + "experimental", "true", + "enable_experimental_instrumentations", "true" ); /** diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 7a894242f785b..e06946a321ef4 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -74,6 +74,11 @@ + + + + + diff --git a/modules/apm/build.gradle b/modules/apm/build.gradle index c8619c97d1068..c1fecfb25092c 100644 --- a/modules/apm/build.gradle +++ b/modules/apm/build.gradle @@ -18,7 +18,7 @@ dependencies { implementation "io.opentelemetry:opentelemetry-api:${otelVersion}" implementation "io.opentelemetry:opentelemetry-context:${otelVersion}" implementation "io.opentelemetry:opentelemetry-semconv:${otelVersion}-alpha" - runtimeOnly "co.elastic.apm:elastic-apm-agent:1.36.0" + implementation "co.elastic.apm:elastic-apm-agent:1.37.0" } tasks.named("dependencyLicenses").configure { diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java index 75a98cd6e34bb..320d0187a43c0 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java @@ -39,7 +39,8 @@ class APMAgentSettings { * Sensible defaults that Elasticsearch configures. This cannot be done via the APM agent * config file, as then their values could not be overridden dynamically via system properties. */ - static Map APM_AGENT_DEFAULT_SETTINGS = Map.of("transaction_sample_rate", "0.2"); + static Map APM_AGENT_DEFAULT_SETTINGS = Map.of("transaction_sample_rate", "0.2", + "enable_experimental_instrumentations", "true"); void addClusterSettingsListeners(ClusterService clusterService, APMTelemetryProvider telemetryProvider) { APMTracer apmTracer = telemetryProvider.getTracer(); diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java index b504eb1ede843..ecc18ad2d35c2 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java @@ -10,6 +10,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.metrics.LongCounter; import io.opentelemetry.api.metrics.Meter; import org.elasticsearch.common.component.AbstractLifecycleComponent; @@ -119,6 +120,22 @@ void createApmServices() { var meter = openTelemetry.getMeter("elasticsearch"); this.services.set(new APMServices(meter, openTelemetry)); + + Meter myMeter = GlobalOpenTelemetry.getMeter("my_meter"); + LongCounter counter = myMeter.counterBuilder("my_counter").build(); + + new Thread(new Runnable() { + @Override + public void run() { + try { + counter.add(42); + Thread.sleep(2000); + }catch (Exception e){ + + } + } + }).start(); + return null; }); } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java index 0d133dc49994a..3bffd32286ddd 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java @@ -10,7 +10,6 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.OpenTelemetry; -import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanBuilder; import io.opentelemetry.api.trace.SpanKind; @@ -87,7 +86,7 @@ public void setNodeName(String nodeName) { /** * This class is used to make all OpenTelemetry services visible at once */ - record APMServices(Tracer tracer, Meter meter, OpenTelemetry openTelemetry) {} + record APMServices(Tracer tracer, OpenTelemetry openTelemetry) {} public APMTracer(Settings settings) { this.includeNames = APM_TRACING_NAMES_INCLUDE_SETTING.get(settings); @@ -151,9 +150,7 @@ APMServices createApmServices() { return AccessController.doPrivileged((PrivilegedAction) () -> { var openTelemetry = GlobalOpenTelemetry.get(); var tracer = openTelemetry.getTracer("elasticsearch", Version.CURRENT.toString()); - var meter = openTelemetry.getMeter("elasticsearch"); - - return new APMServices(tracer, meter, openTelemetry); + return new APMServices(tracer, openTelemetry); }); } diff --git a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java index a5ffe7ac00ba4..5d4e7fe63ee87 100644 --- a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java @@ -10,7 +10,6 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanBuilder; import io.opentelemetry.api.trace.SpanContext; @@ -270,7 +269,7 @@ APMServices createApmServices() { // spy the spanBuilder return new SpySpanBuilder(apmServices.tracer(), spanName); }).when(mockTracer).spanBuilder(anyString()); - return new APMServices(mockTracer, mock(Meter.class), apmServices.openTelemetry()); + return new APMServices(mockTracer, apmServices.openTelemetry()); } Instant getSpanStartTime(String spanName) { diff --git a/server/src/main/java/org/elasticsearch/node/Node.java b/server/src/main/java/org/elasticsearch/node/Node.java index b8e501be8c20e..466e00e093501 100644 --- a/server/src/main/java/org/elasticsearch/node/Node.java +++ b/server/src/main/java/org/elasticsearch/node/Node.java @@ -213,8 +213,10 @@ import org.elasticsearch.tasks.TaskCancellationService; import org.elasticsearch.tasks.TaskManager; import org.elasticsearch.tasks.TaskResultsService; +import org.elasticsearch.telemetry.MetricName; import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.Tracer; +import org.elasticsearch.telemetry.metric.Metric; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.RemoteClusterPortSettings; @@ -1596,6 +1598,8 @@ public void onTimeout(TimeValue timeout) { pluginsService.filterPlugins(ClusterPlugin.class).forEach(ClusterPlugin::onNodeStarted); + + return this; } From bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Wed, 20 Sep 2023 17:03:18 +0200 Subject: [PATCH 06/18] metric sent --- .../java/org/elasticsearch/server/cli/APMJvmOptions.java | 2 +- modules/apm/build.gradle | 8 +++++++- .../apm/src/main/plugin-metadata/plugin-security.policy | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java index 45a4a1d7d8f14..b0f53286e6e75 100644 --- a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java +++ b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java @@ -319,7 +319,7 @@ static Path findAgentJar(String installDir) throws IOException, UserException { try (var apmStream = Files.list(apmModule)) { final List paths = apmStream.filter( - path -> path.getFileName().toString().matches("elastic-apm-agent-\\d+\\.\\d+\\.\\d+\\.jar") + path -> path.getFileName().toString().matches("elastic-apm-agent-.*.jar") ).toList(); if (paths.size() > 1) { diff --git a/modules/apm/build.gradle b/modules/apm/build.gradle index c1fecfb25092c..96032d873f986 100644 --- a/modules/apm/build.gradle +++ b/modules/apm/build.gradle @@ -14,11 +14,17 @@ esplugin { def otelVersion = '1.17.0' +repositories { + maven { + name "sonatype-nexus-snapshots" + url "https://oss.sonatype.org/content/repositories/snapshots" + } +} dependencies { implementation "io.opentelemetry:opentelemetry-api:${otelVersion}" implementation "io.opentelemetry:opentelemetry-context:${otelVersion}" implementation "io.opentelemetry:opentelemetry-semconv:${otelVersion}-alpha" - implementation "co.elastic.apm:elastic-apm-agent:1.37.0" + implementation "co.elastic.apm:elastic-apm-agent:1.42.1-SNAPSHOT" } tasks.named("dependencyLicenses").configure { diff --git a/modules/apm/src/main/plugin-metadata/plugin-security.policy b/modules/apm/src/main/plugin-metadata/plugin-security.policy index b85d3ec05c277..20c44571df746 100644 --- a/modules/apm/src/main/plugin-metadata/plugin-security.policy +++ b/modules/apm/src/main/plugin-metadata/plugin-security.policy @@ -11,6 +11,7 @@ grant { permission java.lang.RuntimePermission "createClassLoader"; permission java.lang.RuntimePermission "getClassLoader"; permission java.util.PropertyPermission "elastic.apm.*", "write"; + permission java.util.PropertyPermission "*", "read,write"; }; grant codeBase "${codebase.elastic-apm-agent}" { From 227df6e0a3452f19853f7497c547bdc496eaa35e Mon Sep 17 00:00:00 2001 From: Stuart Tettemer Date: Wed, 20 Sep 2023 14:27:40 -0500 Subject: [PATCH 07/18] telemetry provider instead of tracer for components --- .../analysis/common/CommonAnalysisPlugin.java | 4 +-- .../org/elasticsearch/telemetry/apm/APM.java | 26 +++++++++--------- .../telemetry/apm/APMMetric.java | 13 +++++---- .../telemetry/apm/APMTelemetryProvider.java | 1 + .../apm/settings/APMAgentSettings.java | 12 +++------ .../telemetry/apm/tracing/APMTracer.java | 27 ------------------- .../apm/settings/APMAgentSettingsTests.java | 9 ------- .../telemetry/apm/tracing/APMTracerTests.java | 14 ---------- .../datastreams/DataStreamsPlugin.java | 4 +-- .../ingest/geoip/IngestGeoIpPlugin.java | 4 +-- .../painless/PainlessPlugin.java | 4 +-- .../elasticsearch/reindex/ReindexPlugin.java | 4 +-- .../ReindexFromRemoteWithAuthTests.java | 2 +- .../azure/AzureRepositoryPlugin.java | 4 +-- .../repositories/s3/S3RepositoryPlugin.java | 4 +-- .../repository/url/URLRepositoryPlugin.java | 4 +-- .../RuntimeFieldsCommonPlugin.java | 4 +-- .../elasticsearch/systemd/SystemdPlugin.java | 4 +-- .../netty4/Netty4HttpServerTransport.java | 1 + .../http/ClusterInfoRestCancellationIT.java | 1 + .../cluster/SimpleClusterStateIT.java | 2 +- .../metadata/TemplateUpgradeServiceIT.java | 5 ++-- .../health/GetHealthActionIT.java | 2 +- .../elasticsearch/health/HealthServiceIT.java | 2 +- .../elasticsearch/index/FinalPipelineIT.java | 2 +- .../index/SettingsListenerIT.java | 2 +- .../ingest/IngestAsyncProcessorIT.java | 2 +- server/src/main/java/module-info.java | 2 ++ .../elasticsearch/action/ActionModule.java | 20 +++++++++++--- .../java/org/elasticsearch/node/Node.java | 20 +++++++------- .../org/elasticsearch/plugins/Plugin.java | 6 ++--- .../plugins/TelemetryPlugin.java | 5 ++-- .../telemetry/TelemetryProvider.java | 1 + .../telemetry/tracing/SpanId.java | 5 ---- .../telemetry/tracing/Tracer.java | 4 --- .../org/elasticsearch/node/NodeTests.java | 2 +- .../plugins/PluginIntrospectorTests.java | 2 +- .../test/seektracker/SeekTrackerPlugin.java | 3 ++- .../test/MockIndexEventListener.java | 3 ++- .../xpack/analytics/AnalyticsPlugin.java | 2 +- .../xpack/async/AsyncResultsIndexPlugin.java | 4 +-- .../xpack/autoscaling/Autoscaling.java | 4 +-- .../java/org/elasticsearch/xpack/ccr/Ccr.java | 4 +-- .../elasticsearch/xpack/core/XPackPlugin.java | 4 +-- .../core/LocalStateCompositeXPackPlugin.java | 7 ++--- .../xpack/deprecation/Deprecation.java | 4 +-- .../xpack/enrich/EnrichPlugin.java | 4 +-- .../xpack/application/EnterpriseSearch.java | 3 ++- .../LocalStateEnterpriseSearch.java | 5 ++-- .../xpack/eql/plugin/EqlPlugin.java | 3 ++- .../xpack/esql/plugin/EsqlPlugin.java | 4 +-- .../org/elasticsearch/xpack/fleet/Fleet.java | 3 ++- .../xpack/idp/IdentityProviderPlugin.java | 3 ++- .../xpack/ilm/UpdateSettingsStepTests.java | 3 ++- .../xpack/ilm/IndexLifecycle.java | 3 ++- .../xpack/inference/InferencePlugin.java | 4 +-- .../xpack/ml/MachineLearning.java | 3 ++- .../xpack/monitoring/Monitoring.java | 3 ++- .../xpack/lucene/bwc/OldLuceneVersions.java | 3 ++- .../xpack/profiling/ProfilingPlugin.java | 3 ++- .../SearchableSnapshots.java | 3 ++- .../xpack/security/Security.java | 11 +++++--- .../xpack/security/SecurityTests.java | 6 ++++- .../xpack/shutdown/NodeShutdownTasksIT.java | 3 ++- .../xpack/shutdown/ShutdownPlugin.java | 3 ++- .../xpack/slm/SnapshotLifecycle.java | 3 ++- .../xpack/sql/plugin/SqlPlugin.java | 3 ++- .../xpack/stack/StackPlugin.java | 3 ++- .../xpack/transform/Transform.java | 3 ++- .../votingonly/VotingOnlyNodePlugin.java | 3 ++- .../elasticsearch/xpack/watcher/Watcher.java | 3 ++- 71 files changed, 174 insertions(+), 182 deletions(-) diff --git a/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java index 6baa2ddf6c972..dd2fbe8a19bab 100644 --- a/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java @@ -131,7 +131,7 @@ import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; import org.elasticsearch.synonyms.SynonymsManagementAPIService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -168,7 +168,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java index 1208fa1f7b9e5..6058f5ad674cf 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java @@ -21,12 +21,12 @@ import org.elasticsearch.indices.IndicesService; import org.elasticsearch.plugins.NetworkPlugin; import org.elasticsearch.plugins.Plugin; -import org.elasticsearch.plugins.TracerPlugin; +import org.elasticsearch.plugins.TelemetryPlugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.apm.settings.APMAgentSettings; import org.elasticsearch.telemetry.apm.tracing.APMTracer; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -55,8 +55,8 @@ * be passed via system properties to the Java agent, which periodically checks for changes * and applies the new settings values, provided those settings can be dynamically updated. */ -public class APM extends Plugin implements NetworkPlugin, TracerPlugin { - private final SetOnce tracer = new SetOnce<>(); +public class APM extends Plugin implements NetworkPlugin, TelemetryPlugin { + private final SetOnce telemetryProvider = new SetOnce<>(); private final Settings settings; public APM(Settings settings) { @@ -64,10 +64,10 @@ public APM(Settings settings) { } @Override - public Tracer getTracer(Settings settings) { - final APMTracer apmTracer = new APMTracer(settings); - tracer.set(apmTracer); - return apmTracer; + public TelemetryProvider getTelemetryProvider(Settings settings) { + final APMTelemetryProvider apmTelemetryProvider = new APMTelemetryProvider(settings); + telemetryProvider.set(apmTelemetryProvider); + return apmTelemetryProvider; } @Override @@ -83,20 +83,22 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer unused, + TelemetryProvider unused, AllocationService allocationService, IndicesService indicesService ) { - final APMTracer apmTracer = tracer.get(); + final APMTracer apmTracer = telemetryProvider.get().getTracer(); apmTracer.setClusterName(clusterService.getClusterName().value()); apmTracer.setNodeName(clusterService.getNodeName()); final APMAgentSettings apmAgentSettings = new APMAgentSettings(); apmAgentSettings.syncAgentSystemProperties(settings); - apmAgentSettings.addClusterSettingsListeners(clusterService, apmTracer); + apmAgentSettings.addClusterSettingsListeners(clusterService, telemetryProvider.get()); - return List.of(apmTracer); + final APMMetric apmMetric = telemetryProvider.get().getMetric(); + + return List.of(apmTracer, apmMetric); } @Override diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java index ecc18ad2d35c2..45cf1b5ea694e 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java @@ -27,14 +27,14 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicReference; -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_ENABLED_SETTING; +import static org.elasticsearch.telemetry.apm.settings.APMAgentSettings.APM_ENABLED_SETTING; public class APMMetric extends AbstractLifecycleComponent implements org.elasticsearch.telemetry.metric.Metric { private final Map counters = ConcurrentCollections.newConcurrentMap(); private final Map doubleGauges = ConcurrentCollections.newConcurrentMap(); private final Map doubleHistograms = ConcurrentCollections.newConcurrentMap(); private volatile boolean enabled; - private AtomicReference services = new AtomicReference<>(); + private AtomicReference services = new AtomicReference<>(); record APMServices(Meter meter, OpenTelemetry openTelemetry) {} @@ -43,7 +43,7 @@ public APMMetric(Settings settings) { this.enabled = APM_ENABLED_SETTING.get(settings); } - void setEnabled(boolean enabled) { + public void setEnabled(boolean enabled) { this.enabled = enabled; if (enabled) { createApmServices(); @@ -89,7 +89,10 @@ public DoubleGauge registerDoubleGauge(MetricName name, String description, throw new IllegalStateException("double gauge [" + name.getRawName() + "] already registered"); } var lazyGauge = new LazyInitializable<>( - () -> services.get().meter.gaugeBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).buildObserver() + () -> services.get().meter.gaugeBuilder(name.getRawName()) + .setDescription(description) + .setUnit(unit.toString()) + .buildObserver() ); return OtelDoubleGauge.build(lazyGauge, name, description, unit); @@ -130,7 +133,7 @@ public void run() { try { counter.add(42); Thread.sleep(2000); - }catch (Exception e){ + } catch (Exception e) { } } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java index d4f76d56d06c1..817bcb25f87ba 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java @@ -10,6 +10,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.telemetry.TelemetryProvider; +import org.elasticsearch.telemetry.apm.tracing.APMTracer; public class APMTelemetryProvider implements TelemetryProvider { private Settings settings; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java index bfe3018f0464f..425fe3c126692 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java @@ -6,11 +6,7 @@ * Side Public License, v 1. */ -<<<<<<<< HEAD:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java package org.elasticsearch.telemetry.apm.settings; -======== -package org.elasticsearch.telemetry.apm; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -21,6 +17,8 @@ import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.SuppressForbidden; +import org.elasticsearch.telemetry.apm.APMMetric; +import org.elasticsearch.telemetry.apm.APMTelemetryProvider; import org.elasticsearch.telemetry.apm.tracing.APMTracer; import java.security.AccessController; @@ -47,13 +45,9 @@ public class APMAgentSettings { static Map APM_AGENT_DEFAULT_SETTINGS = Map.of("transaction_sample_rate", "0.2", "enable_experimental_instrumentations", "true"); -<<<<<<<< HEAD:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java - public void addClusterSettingsListeners(ClusterService clusterService, APMTracer apmTracer) { -======== - void addClusterSettingsListeners(ClusterService clusterService, APMTelemetryProvider telemetryProvider) { + public void addClusterSettingsListeners(ClusterService clusterService, APMTelemetryProvider telemetryProvider) { APMTracer apmTracer = telemetryProvider.getTracer(); APMMetric apmMetric = telemetryProvider.getMetric(); ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMAgentSettings.java final ClusterSettings clusterSettings = clusterService.getClusterSettings(); clusterSettings.addSettingsUpdateConsumer(APM_ENABLED_SETTING, enabled -> { apmTracer.setEnabled(enabled); diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java index 293af6913bee0..c87fb84fc8619 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java @@ -6,11 +6,7 @@ * Side Public License, v 1. */ -<<<<<<<< HEAD:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java package org.elasticsearch.telemetry.apm.tracing; -======== -package org.elasticsearch.telemetry.apm; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.OpenTelemetry; @@ -38,11 +34,7 @@ import org.elasticsearch.core.Nullable; import org.elasticsearch.core.Releasable; import org.elasticsearch.tasks.Task; -<<<<<<<< HEAD:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java import org.elasticsearch.telemetry.tracing.SpanId; -======== -import org.elasticsearch.telemetry.SpanId; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java import java.security.AccessController; import java.security.PrivilegedAction; @@ -51,7 +43,6 @@ import java.util.Map; import java.util.stream.Collectors; -<<<<<<<< HEAD:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java import static org.elasticsearch.telemetry.apm.settings.APMAgentSettings.APM_ENABLED_SETTING; import static org.elasticsearch.telemetry.apm.settings.APMAgentSettings.APM_TRACING_NAMES_EXCLUDE_SETTING; import static org.elasticsearch.telemetry.apm.settings.APMAgentSettings.APM_TRACING_NAMES_INCLUDE_SETTING; @@ -59,26 +50,13 @@ /** * This is an implementation of the {@link org.elasticsearch.telemetry.tracing.Tracer} interface, which uses -======== -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_ENABLED_SETTING; -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_NAMES_EXCLUDE_SETTING; -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_NAMES_INCLUDE_SETTING; -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_SANITIZE_FIELD_NAMES; - -/** - * This is an implementation of the {@link org.elasticsearch.telemetry.Tracer} interface, which uses ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java * the OpenTelemetry API to capture spans. *

* This module doesn't provide an implementation of the OTel API. Normally that would mean that the * API's default, no-op implementation would be used. However, when the APM Java is attached, it * intercepts the {@link GlobalOpenTelemetry} class and provides its own implementation instead. */ -<<<<<<<< HEAD:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java public class APMTracer extends AbstractLifecycleComponent implements org.elasticsearch.telemetry.tracing.Tracer { -======== -public class APMTracer extends AbstractLifecycleComponent implements org.elasticsearch.telemetry.Tracer { ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java private static final Logger logger = LogManager.getLogger(APMTracer.class); @@ -345,13 +323,8 @@ private void setSpanAttributes(@Nullable Map spanAttributes, Spa spanBuilder.setSpanKind(SpanKind.INTERNAL); } -<<<<<<<< HEAD:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java spanBuilder.setAttribute(org.elasticsearch.telemetry.tracing.Tracer.AttributeKeys.NODE_NAME, nodeName); spanBuilder.setAttribute(org.elasticsearch.telemetry.tracing.Tracer.AttributeKeys.CLUSTER_NAME, clusterName); -======== - spanBuilder.setAttribute(org.elasticsearch.telemetry.Tracer.AttributeKeys.NODE_NAME, nodeName); - spanBuilder.setAttribute(org.elasticsearch.telemetry.Tracer.AttributeKeys.CLUSTER_NAME, clusterName); ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTracer.java } private void setSpanAttributes(ThreadContext threadContext, @Nullable Map spanAttributes, SpanBuilder spanBuilder) { diff --git a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java index f921cb5ffe0e0..3d95c9f85f5e5 100644 --- a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java @@ -6,20 +6,11 @@ * Side Public License, v 1. */ -<<<<<<<< HEAD:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java package org.elasticsearch.telemetry.apm.settings; -======== -package org.elasticsearch.telemetry.apm; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMAgentSettingsTests.java import org.elasticsearch.common.settings.Settings; import org.elasticsearch.test.ESTestCase; -<<<<<<<< HEAD:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java -======== -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_AGENT_SETTINGS; -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_ENABLED_SETTING; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMAgentSettingsTests.java import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; diff --git a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java index 49283d8074033..ffe719197c59f 100644 --- a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java @@ -6,11 +6,7 @@ * Side Public License, v 1. */ -<<<<<<<< HEAD:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java package org.elasticsearch.telemetry.apm.tracing; -======== -package org.elasticsearch.telemetry.apm; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; @@ -25,12 +21,8 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.tasks.Task; -<<<<<<<< HEAD:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java import org.elasticsearch.telemetry.apm.settings.APMAgentSettings; import org.elasticsearch.telemetry.tracing.SpanId; -======== -import org.elasticsearch.telemetry.SpanId; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java import org.elasticsearch.test.ESTestCase; import java.time.Instant; @@ -40,12 +32,6 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Stream; -<<<<<<<< HEAD:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java -======== -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_ENABLED_SETTING; -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_NAMES_EXCLUDE_SETTING; -import static org.elasticsearch.telemetry.apm.APMAgentSettings.APM_TRACING_NAMES_INCLUDE_SETTING; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:modules/apm/src/test/java/org/elasticsearch/telemetry/apm/APMTracerTests.java import static org.hamcrest.Matchers.aMapWithSize; import static org.hamcrest.Matchers.anEmptyMap; import static org.hamcrest.Matchers.hasKey; diff --git a/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java b/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java index 3ec77b848d168..de128c685ae98 100644 --- a/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java +++ b/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java @@ -70,7 +70,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -170,7 +170,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java b/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java index fd40643281da2..afc6fa8a1c92a 100644 --- a/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java +++ b/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java @@ -48,7 +48,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -119,7 +119,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java b/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java index 34e5ed3a5e5b7..52eccbe0dce90 100644 --- a/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java +++ b/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java @@ -43,7 +43,7 @@ import org.elasticsearch.script.ScriptEngine; import org.elasticsearch.script.ScriptModule; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -147,7 +147,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java b/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java index 569c510788b7f..e79f9bdaffee9 100644 --- a/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java +++ b/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java @@ -35,7 +35,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -100,7 +100,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java b/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java index 3be475a9483bf..e2f08fb287660 100644 --- a/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java +++ b/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java @@ -176,7 +176,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java b/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java index cc57692f7ba0c..f88a96e765827 100644 --- a/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java +++ b/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java @@ -30,7 +30,7 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.repositories.Repository; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -96,7 +96,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java b/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java index 120d421fdf48c..62fe279726164 100644 --- a/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java +++ b/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java @@ -31,7 +31,7 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.repositories.Repository; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -102,7 +102,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java b/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java index 78044ae35c5a0..8057684375d69 100644 --- a/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java +++ b/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java @@ -28,7 +28,7 @@ import org.elasticsearch.repositories.Repository; import org.elasticsearch.repositories.url.URLRepository; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -88,7 +88,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java b/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java index 2dc26f665633c..6cad1e057ef74 100644 --- a/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java +++ b/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java @@ -22,7 +22,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -76,7 +76,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java b/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java index db119761641aa..f425de279129b 100644 --- a/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java +++ b/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java @@ -26,7 +26,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.Scheduler; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -92,7 +92,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java b/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java index 8eb1a5789102c..4dd7a92cc4f10 100644 --- a/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java +++ b/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java @@ -55,6 +55,7 @@ import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.http.netty4.internal.HttpHeadersAuthenticatorUtils; import org.elasticsearch.http.netty4.internal.HttpValidator; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.netty4.AcceptChannelHandler; diff --git a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java index cbab099f9cba8..00781e13f7ba8 100644 --- a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java +++ b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java @@ -26,6 +26,7 @@ import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.plugins.NetworkPlugin; import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.netty4.AcceptChannelHandler; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java index 58b824e4676f2..9330431bce06f 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java @@ -415,7 +415,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java index 448bfdb301aeb..af0009f0b9642 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java @@ -22,6 +22,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; @@ -77,7 +78,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -96,7 +97,7 @@ public Collection createComponents( namedWriteableRegistry, expressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java index de42c95d79476..ec9eb76c49ccc 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java @@ -107,7 +107,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java index a4333d51163dc..09118e72e8409 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java @@ -136,7 +136,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java index 60a1e7b5bddbc..d58a2c993fa6c 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java @@ -405,7 +405,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java index bbb6ae9d16fc5..39a5ebc7a331c 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java @@ -75,7 +75,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java index f5453c8ddf1f1..33bbb2738a1a5 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java @@ -97,7 +97,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/main/java/module-info.java b/server/src/main/java/module-info.java index c6e6a207ae6c0..8a9f1f0b87d73 100644 --- a/server/src/main/java/module-info.java +++ b/server/src/main/java/module-info.java @@ -383,6 +383,8 @@ org.elasticsearch.serverless.constants, org.elasticsearch.serverless.apifiltering; exports org.elasticsearch.telemetry.tracing; + exports org.elasticsearch.telemetry; + exports org.elasticsearch.telemetry.metric; provides java.util.spi.CalendarDataProvider with org.elasticsearch.common.time.IsoCalendarDataProvider; provides org.elasticsearch.xcontent.ErrorOnUnknown with org.elasticsearch.common.xcontent.SuggestingErrorOnUnknown; diff --git a/server/src/main/java/org/elasticsearch/action/ActionModule.java b/server/src/main/java/org/elasticsearch/action/ActionModule.java index 7395d6003ec44..eb9058ba5d1bf 100644 --- a/server/src/main/java/org/elasticsearch/action/ActionModule.java +++ b/server/src/main/java/org/elasticsearch/action/ActionModule.java @@ -457,7 +457,7 @@ import org.elasticsearch.rest.action.synonyms.RestPutSynonymRuleAction; import org.elasticsearch.rest.action.synonyms.RestPutSynonymsAction; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.usage.UsageService; @@ -522,7 +522,7 @@ public ActionModule( CircuitBreakerService circuitBreakerService, UsageService usageService, SystemIndices systemIndices, - Tracer tracer, + TelemetryProvider telemetryProvider, ClusterService clusterService, List> reservedStateHandlers, RestExtension restExtension @@ -563,12 +563,24 @@ public ActionModule( var customController = getRestServerComponent( "REST controller", actionPlugins, - restPlugin -> restPlugin.getRestController(restInterceptor, nodeClient, circuitBreakerService, usageService, tracer) + restPlugin -> restPlugin.getRestController( + restInterceptor, + nodeClient, + circuitBreakerService, + usageService, + telemetryProvider.getTracer() + ) ); if (customController != null) { restController = customController; } else { - restController = new RestController(restInterceptor, nodeClient, circuitBreakerService, usageService, tracer); + restController = new RestController( + restInterceptor, + nodeClient, + circuitBreakerService, + usageService, + telemetryProvider.getTracer() + ); } reservedClusterStateService = new ReservedClusterStateService(clusterService, reservedStateHandlers); this.restExtension = restExtension; diff --git a/server/src/main/java/org/elasticsearch/node/Node.java b/server/src/main/java/org/elasticsearch/node/Node.java index 29044084d027d..1965f945561e9 100644 --- a/server/src/main/java/org/elasticsearch/node/Node.java +++ b/server/src/main/java/org/elasticsearch/node/Node.java @@ -179,7 +179,7 @@ import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.plugins.ShutdownAwarePlugin; import org.elasticsearch.plugins.SystemIndexPlugin; -import org.elasticsearch.plugins.TracerPlugin; +import org.elasticsearch.plugins.TelemetryPlugin; import org.elasticsearch.plugins.internal.DocumentParsingObserver; import org.elasticsearch.plugins.internal.DocumentParsingObserverPlugin; import org.elasticsearch.plugins.internal.ReloadAwarePlugin; @@ -213,6 +213,7 @@ import org.elasticsearch.tasks.TaskCancellationService; import org.elasticsearch.tasks.TaskManager; import org.elasticsearch.tasks.TaskResultsService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -456,7 +457,8 @@ protected Node( Task.HEADERS_TO_COPY.stream() ).collect(Collectors.toSet()); - final Tracer tracer = getTracer(pluginsService, settings); + final TelemetryProvider telemetryProvider = getTelemetryProvider(pluginsService, settings); + final Tracer tracer = telemetryProvider.getTracer(); final TaskManager taskManager = new TaskManager(settings, threadPool, taskHeaders, tracer); @@ -756,7 +758,7 @@ protected Node( namedWriteableRegistry, clusterModule.getIndexNameExpressionResolver(), repositoriesServiceReference::get, - tracer, + telemetryProvider, clusterModule.getAllocationService(), indicesService ) @@ -813,7 +815,7 @@ protected Node( circuitBreakerService, usageService, systemIndices, - tracer, + telemetryProvider, clusterService, reservedStateHandlers, pluginsService.loadSingletonServiceProvider(RestExtension.class, RestExtension::allowAll) @@ -1281,14 +1283,14 @@ private static ReloadablePlugin wrapPlugins(List reloadablePlu }; } - private Tracer getTracer(PluginsService pluginsService, Settings settings) { - final List tracerPlugins = pluginsService.filterPlugins(TracerPlugin.class); + private TelemetryProvider getTelemetryProvider(PluginsService pluginsService, Settings settings) { + final List telemetryPlugins = pluginsService.filterPlugins(TelemetryPlugin.class); - if (tracerPlugins.size() > 1) { - throw new IllegalStateException("A single TracerPlugin was expected but got: " + tracerPlugins); + if (telemetryPlugins.size() > 1) { + throw new IllegalStateException("A single TracerPlugin was expected but got: " + telemetryPlugins); } - return tracerPlugins.isEmpty() ? Tracer.NOOP : tracerPlugins.get(0).getTracer(settings); + return telemetryPlugins.isEmpty() ? TelemetryProvider.NOOP : telemetryPlugins.get(0).getTelemetryProvider(settings); } private HealthService createHealthService( diff --git a/server/src/main/java/org/elasticsearch/plugins/Plugin.java b/server/src/main/java/org/elasticsearch/plugins/Plugin.java index 83e620aa30d12..bd5d8e9220517 100644 --- a/server/src/main/java/org/elasticsearch/plugins/Plugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/Plugin.java @@ -26,7 +26,7 @@ import org.elasticsearch.indices.IndicesService; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -81,7 +81,7 @@ public abstract class Plugin implements Closeable { * @param indexNameExpressionResolver A service that resolves expression to index and alias names * @param repositoriesServiceSupplier A supplier for the service that manages snapshot repositories; will return null when this method * is called, but will return the repositories service once the node is initialized. - * @param tracer An interface for distributed tracing + * @param telemetryProvider An interface for distributed tracing * @param allocationService A service to manage shard allocation in the cluster * @param indicesService A service to manage indices in the cluster */ @@ -97,7 +97,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java index eccc38cf9f5c9..d1bf77e1b9525 100644 --- a/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java @@ -9,8 +9,9 @@ package org.elasticsearch.plugins; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; -public interface TracerPlugin { - Tracer getTracer(Settings settings); +public interface TelemetryPlugin { + TelemetryProvider getTelemetryProvider(Settings settings); } diff --git a/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java b/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java index a8ba4311f60af..fc3e4aea5e77b 100644 --- a/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java +++ b/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java @@ -9,6 +9,7 @@ package org.elasticsearch.telemetry; import org.elasticsearch.telemetry.metric.Metric; +import org.elasticsearch.telemetry.tracing.Tracer; public interface TelemetryProvider { diff --git a/server/src/main/java/org/elasticsearch/telemetry/tracing/SpanId.java b/server/src/main/java/org/elasticsearch/telemetry/tracing/SpanId.java index d699bdbccaef8..56141f29f5bdc 100644 --- a/server/src/main/java/org/elasticsearch/telemetry/tracing/SpanId.java +++ b/server/src/main/java/org/elasticsearch/telemetry/tracing/SpanId.java @@ -6,12 +6,7 @@ * Side Public License, v 1. */ -<<<<<<<< HEAD:server/src/main/java/org/elasticsearch/telemetry/tracing/SpanId.java package org.elasticsearch.telemetry.tracing; -======== -package org.elasticsearch.telemetry; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:server/src/main/java/org/elasticsearch/telemetry/SpanId.java - import org.elasticsearch.rest.RestRequest; import org.elasticsearch.tasks.Task; diff --git a/server/src/main/java/org/elasticsearch/telemetry/tracing/Tracer.java b/server/src/main/java/org/elasticsearch/telemetry/tracing/Tracer.java index f6b408fc73a58..ee0b3737abbb0 100644 --- a/server/src/main/java/org/elasticsearch/telemetry/tracing/Tracer.java +++ b/server/src/main/java/org/elasticsearch/telemetry/tracing/Tracer.java @@ -6,11 +6,7 @@ * Side Public License, v 1. */ -<<<<<<<< HEAD:server/src/main/java/org/elasticsearch/telemetry/tracing/Tracer.java package org.elasticsearch.telemetry.tracing; -======== -package org.elasticsearch.telemetry; ->>>>>>>> bd3b9b3d45b31ed7d668a7de04bbe2e5fafb57ae:server/src/main/java/org/elasticsearch/telemetry/Tracer.java import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.core.Releasable; diff --git a/server/src/test/java/org/elasticsearch/node/NodeTests.java b/server/src/test/java/org/elasticsearch/node/NodeTests.java index a7850e8a577c0..ccfd8698e6bbe 100644 --- a/server/src/test/java/org/elasticsearch/node/NodeTests.java +++ b/server/src/test/java/org/elasticsearch/node/NodeTests.java @@ -443,7 +443,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java b/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java index 693b7b0fb0981..c9e2aef920129 100644 --- a/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java +++ b/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java @@ -271,7 +271,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java b/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java index 2ff2b655cc21a..de24c80cec229 100644 --- a/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java +++ b/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java @@ -31,6 +31,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -75,7 +76,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java b/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java index 385778abdbc5c..f2905f24e15ef 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java +++ b/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java @@ -32,6 +32,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -88,7 +89,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java index 8c2dccd65177c..9360f97990c82 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java @@ -25,7 +25,7 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java b/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java index 9d402eef3b55e..a0e6d0daac322 100644 --- a/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java +++ b/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java @@ -23,7 +23,7 @@ import org.elasticsearch.plugins.SystemIndexPlugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -73,7 +73,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java b/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java index cd95958e31b3e..e2fc1707c0499 100644 --- a/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java +++ b/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java @@ -36,7 +36,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -119,7 +119,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java index 63fcabb98672a..a139b9a55f1be 100644 --- a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java +++ b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java @@ -50,7 +50,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -189,7 +189,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java index 721b909e1d3c7..1c8881637d4c6 100644 --- a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java +++ b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java @@ -89,7 +89,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -333,7 +333,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java index d9495afebcab8..afc64140004c7 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java @@ -90,6 +90,7 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.internal.ShardSearchRequest; import org.elasticsearch.snapshots.Snapshot; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -204,7 +205,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -221,7 +222,7 @@ public Collection createComponents( namedWriteableRegistry, expressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ) @@ -241,7 +242,7 @@ public Collection createComponents( namedWriteableRegistry, expressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ) diff --git a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java index 117c7d1265234..349ff1042d3a9 100644 --- a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java +++ b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java @@ -29,7 +29,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -100,7 +100,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java index dcb9e53f1a671..5fb20a883560f 100644 --- a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java +++ b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java @@ -35,7 +35,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -201,7 +201,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java index 19ad17d517cc9..094726d16b0e7 100644 --- a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java +++ b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java @@ -35,6 +35,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -209,7 +210,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java index d137f6e719ee3..3c2a71a56d88d 100644 --- a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java +++ b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java @@ -30,6 +30,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -114,7 +115,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -130,7 +131,7 @@ public Collection createComponents( namedWriteableRegistry, indexNameExpressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ); diff --git a/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java b/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java index 3a18983c8d5a5..a05d7e3727821 100644 --- a/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java +++ b/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java @@ -34,6 +34,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -83,7 +84,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java index 3eec19961d597..783f5550a00af 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java @@ -39,7 +39,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -89,7 +89,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java b/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java index 1a088f9aa1de7..414d5b51db4cd 100644 --- a/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java +++ b/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java @@ -43,6 +43,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -112,7 +113,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java b/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java index 3261ac9d9bdb5..856c2b77abfd9 100644 --- a/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java +++ b/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java @@ -32,6 +32,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -98,7 +99,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java b/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java index 18bf02fdfd8a1..a2847f33060e6 100644 --- a/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java +++ b/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; @@ -74,7 +75,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java b/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java index 6cd807db27566..672e4823111e2 100644 --- a/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java +++ b/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java @@ -38,6 +38,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -166,7 +167,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java index aa3f6e6634678..a5b0754a7f178 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java @@ -33,7 +33,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -116,7 +116,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java index 9b8009e234911..f0a768080a9b3 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java @@ -77,6 +77,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; @@ -907,7 +908,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java b/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java index 2189d759842f4..6c5af462e2be9 100644 --- a/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java +++ b/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java @@ -34,6 +34,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -130,7 +131,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java b/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java index 43d7bbdec4178..e5bfd738ca11c 100644 --- a/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java +++ b/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java @@ -57,6 +57,7 @@ import org.elasticsearch.snapshots.Snapshot; import org.elasticsearch.snapshots.SnapshotRestoreException; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -102,7 +103,7 @@ public Collection createComponents( final NamedWriteableRegistry registry, final IndexNameExpressionResolver resolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java b/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java index 2952594122af4..c947129e5169b 100644 --- a/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java +++ b/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java @@ -33,6 +33,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; @@ -90,7 +91,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java index fd28dd9048275..8e23d379fec59 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java @@ -70,6 +70,7 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.snapshots.SearchableSnapshotsSettings; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; @@ -331,7 +332,7 @@ public Collection createComponents( final NamedWriteableRegistry registry, final IndexNameExpressionResolver resolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java index 9a16785c39dfc..679032d7cdc80 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java @@ -90,6 +90,7 @@ import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.internal.ShardSearchRequest; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; @@ -635,7 +636,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -649,7 +650,8 @@ public Collection createComponents( xContentRegistry, environment, nodeEnvironment.nodeMetadata(), - expressionResolver + expressionResolver, + telemetryProvider ); } catch (final Exception e) { throw new IllegalStateException("security initialization failed", e); @@ -666,7 +668,8 @@ Collection createComponents( NamedXContentRegistry xContentRegistry, Environment environment, NodeMetadata nodeMetadata, - IndexNameExpressionResolver expressionResolver + IndexNameExpressionResolver expressionResolver, + TelemetryProvider telemetryProvider ) throws Exception { logger.info("Security is {}", enabled ? "enabled" : "disabled"); if (enabled == false) { @@ -705,7 +708,7 @@ Collection createComponents( // audit trail service construction final AuditTrail auditTrail = XPackSettings.AUDIT_ENABLED.get(settings) - ? new LoggingAuditTrail(settings, clusterService, threadPool) + ? new LoggingAuditTrail(settings, clusterService, threadPool, telemetryProvider.getMetric()) : null; final AuditTrailService auditTrailService = new AuditTrailService(auditTrail, getLicenseState()); components.add(auditTrailService); diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java index 88725e015e511..e3065aae01336 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java @@ -53,6 +53,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.IndexSettingsModule; @@ -202,6 +203,8 @@ private Collection createComponentsUtil(Settings settings) throws Except Client client = mock(Client.class); when(client.threadPool()).thenReturn(threadPool); when(client.settings()).thenReturn(settings); + TelemetryProvider telemetryProvider = mock(TelemetryProvider.class); + when(telemetryProvider.getMetric()).thenReturn(null); return security.createComponents( client, threadPool, @@ -211,7 +214,8 @@ private Collection createComponentsUtil(Settings settings) throws Except xContentRegistry(), env, nodeMetadata, - TestIndexNameExpressionResolver.newInstance(threadContext) + TestIndexNameExpressionResolver.newInstance(threadContext), + telemetryProvider ); } diff --git a/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java b/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java index c8838194f461d..c405bba70d215 100644 --- a/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java +++ b/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java @@ -40,6 +40,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; @@ -146,7 +147,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java b/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java index 55af966b4d7e1..953b532483284 100644 --- a/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java +++ b/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java @@ -28,6 +28,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -53,7 +54,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java b/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java index aa39ec1968ff0..5f60ad294ddd1 100644 --- a/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java +++ b/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java @@ -37,6 +37,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -135,7 +136,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java index 6b0500162b567..4737df1588ac2 100644 --- a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java +++ b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java @@ -31,6 +31,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -99,7 +100,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java index 8c16ad6057706..1fecf97d83928 100644 --- a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java +++ b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java @@ -20,6 +20,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -55,7 +56,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java index 05546d9b1345b..527fcdda83c9d 100644 --- a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java +++ b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java @@ -49,6 +49,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -241,7 +242,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java b/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java index b6b3a709924aa..be65af2e5a1dc 100644 --- a/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java +++ b/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java @@ -36,6 +36,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.Transport; @@ -96,7 +97,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java b/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java index e9a8e04b57c73..1146d92498216 100644 --- a/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java +++ b/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java @@ -54,6 +54,7 @@ import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; import org.elasticsearch.script.TemplateScript; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; @@ -317,7 +318,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { From 2057be4aa85d57434e5ddf0439b88388715911e2 Mon Sep 17 00:00:00 2001 From: Stuart Tettemer Date: Wed, 20 Sep 2023 14:31:44 -0500 Subject: [PATCH 08/18] spotless --- .../java/org/elasticsearch/server/cli/APMJvmOptions.java | 4 +--- .../telemetry/apm/settings/APMAgentSettings.java | 8 ++++++-- .../reindex/ReindexFromRemoteWithAuthTests.java | 1 - .../http/netty4/Netty4HttpServerTransport.java | 1 - .../elasticsearch/http/ClusterInfoRestCancellationIT.java | 1 - .../org/elasticsearch/cluster/SimpleClusterStateIT.java | 1 - .../cluster/metadata/TemplateUpgradeServiceIT.java | 1 - .../java/org/elasticsearch/health/GetHealthActionIT.java | 1 - .../java/org/elasticsearch/health/HealthServiceIT.java | 1 - .../java/org/elasticsearch/index/FinalPipelineIT.java | 1 - .../java/org/elasticsearch/index/SettingsListenerIT.java | 1 - .../org/elasticsearch/ingest/IngestAsyncProcessorIT.java | 1 - .../java/org/elasticsearch/plugins/TelemetryPlugin.java | 1 - .../java/org/elasticsearch/telemetry/tracing/SpanId.java | 1 + .../src/test/java/org/elasticsearch/node/NodeTests.java | 1 - .../elasticsearch/plugins/PluginIntrospectorTests.java | 1 - .../elasticsearch/test/seektracker/SeekTrackerPlugin.java | 1 - .../org/elasticsearch/test/MockIndexEventListener.java | 1 - .../elasticsearch/xpack/application/EnterpriseSearch.java | 1 - .../xpack/application/LocalStateEnterpriseSearch.java | 1 - .../org/elasticsearch/xpack/eql/plugin/EqlPlugin.java | 1 - .../main/java/org/elasticsearch/xpack/fleet/Fleet.java | 1 - .../elasticsearch/xpack/idp/IdentityProviderPlugin.java | 1 - .../elasticsearch/xpack/ilm/UpdateSettingsStepTests.java | 1 - .../java/org/elasticsearch/xpack/ilm/IndexLifecycle.java | 1 - .../java/org/elasticsearch/xpack/ml/MachineLearning.java | 1 - .../org/elasticsearch/xpack/monitoring/Monitoring.java | 1 - .../elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java | 1 - .../elasticsearch/xpack/profiling/ProfilingPlugin.java | 1 - .../xpack/searchablesnapshots/SearchableSnapshots.java | 1 - .../elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java | 1 - .../org/elasticsearch/xpack/shutdown/ShutdownPlugin.java | 1 - .../org/elasticsearch/xpack/slm/SnapshotLifecycle.java | 1 - .../org/elasticsearch/xpack/sql/plugin/SqlPlugin.java | 1 - .../java/org/elasticsearch/xpack/stack/StackPlugin.java | 1 - .../java/org/elasticsearch/xpack/transform/Transform.java | 1 - .../coordination/votingonly/VotingOnlyNodePlugin.java | 1 - .../java/org/elasticsearch/xpack/watcher/Watcher.java | 1 - 38 files changed, 8 insertions(+), 40 deletions(-) diff --git a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java index b0f53286e6e75..898ea9757ec85 100644 --- a/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java +++ b/distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/APMJvmOptions.java @@ -318,9 +318,7 @@ static Path findAgentJar(String installDir) throws IOException, UserException { } try (var apmStream = Files.list(apmModule)) { - final List paths = apmStream.filter( - path -> path.getFileName().toString().matches("elastic-apm-agent-.*.jar") - ).toList(); + final List paths = apmStream.filter(path -> path.getFileName().toString().matches("elastic-apm-agent-.*.jar")).toList(); if (paths.size() > 1) { throw new UserException( diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java index 425fe3c126692..bb39365dbead7 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java @@ -42,8 +42,12 @@ public class APMAgentSettings { * Sensible defaults that Elasticsearch configures. This cannot be done via the APM agent * config file, as then their values could not be overridden dynamically via system properties. */ - static Map APM_AGENT_DEFAULT_SETTINGS = Map.of("transaction_sample_rate", "0.2", - "enable_experimental_instrumentations", "true"); + static Map APM_AGENT_DEFAULT_SETTINGS = Map.of( + "transaction_sample_rate", + "0.2", + "enable_experimental_instrumentations", + "true" + ); public void addClusterSettingsListeners(ClusterService clusterService, APMTelemetryProvider telemetryProvider) { APMTracer apmTracer = telemetryProvider.getTracer(); diff --git a/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java b/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java index e2f08fb287660..7ab2ff508af5a 100644 --- a/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java +++ b/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java @@ -45,7 +45,6 @@ import org.elasticsearch.rest.root.MainRestPlugin; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.netty4.Netty4Plugin; diff --git a/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java b/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java index 4dd7a92cc4f10..8eb1a5789102c 100644 --- a/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java +++ b/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java @@ -55,7 +55,6 @@ import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.http.netty4.internal.HttpHeadersAuthenticatorUtils; import org.elasticsearch.http.netty4.internal.HttpValidator; -import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.netty4.AcceptChannelHandler; diff --git a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java index 00781e13f7ba8..cbab099f9cba8 100644 --- a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java +++ b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java @@ -26,7 +26,6 @@ import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.plugins.NetworkPlugin; import org.elasticsearch.plugins.Plugin; -import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.netty4.AcceptChannelHandler; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java index 9330431bce06f..b40f348e69a86 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java @@ -37,7 +37,6 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java index af0009f0b9642..aff04ca521844 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java @@ -23,7 +23,6 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java index ec9eb76c49ccc..d23a51abf54a0 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java @@ -27,7 +27,6 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java index 09118e72e8409..68cda5b1c0d0e 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java @@ -27,7 +27,6 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.threadpool.ThreadPool; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java index d58a2c993fa6c..d8496c141c1c3 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java @@ -38,7 +38,6 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java index 39a5ebc7a331c..25784ffdfca54 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java @@ -22,7 +22,6 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; import org.elasticsearch.threadpool.ThreadPool; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java index 33bbb2738a1a5..06a88581534f7 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java @@ -27,7 +27,6 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; diff --git a/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java index d1bf77e1b9525..4f47da99a3d5f 100644 --- a/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java @@ -10,7 +10,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; public interface TelemetryPlugin { TelemetryProvider getTelemetryProvider(Settings settings); diff --git a/server/src/main/java/org/elasticsearch/telemetry/tracing/SpanId.java b/server/src/main/java/org/elasticsearch/telemetry/tracing/SpanId.java index 56141f29f5bdc..8a22102baadf9 100644 --- a/server/src/main/java/org/elasticsearch/telemetry/tracing/SpanId.java +++ b/server/src/main/java/org/elasticsearch/telemetry/tracing/SpanId.java @@ -7,6 +7,7 @@ */ package org.elasticsearch.telemetry.tracing; + import org.elasticsearch.rest.RestRequest; import org.elasticsearch.tasks.Task; diff --git a/server/src/test/java/org/elasticsearch/node/NodeTests.java b/server/src/test/java/org/elasticsearch/node/NodeTests.java index ccfd8698e6bbe..135bb019e9f50 100644 --- a/server/src/test/java/org/elasticsearch/node/NodeTests.java +++ b/server/src/test/java/org/elasticsearch/node/NodeTests.java @@ -46,7 +46,6 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.test.MockHttpTransport; diff --git a/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java b/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java index c9e2aef920129..f124b5c86ac64 100644 --- a/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java +++ b/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java @@ -32,7 +32,6 @@ import org.elasticsearch.ingest.Processor; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.PrivilegedOperations; import org.elasticsearch.test.compiler.InMemoryJavaCompiler; diff --git a/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java b/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java index de24c80cec229..cc68a3e3ba0cd 100644 --- a/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java +++ b/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java @@ -32,7 +32,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java b/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java index f2905f24e15ef..9b9f464d8dff3 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java +++ b/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java @@ -33,7 +33,6 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java index 094726d16b0e7..ad2c033b0ee0c 100644 --- a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java +++ b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java @@ -36,7 +36,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java index 3c2a71a56d88d..f10480e9f64a7 100644 --- a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java +++ b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java @@ -31,7 +31,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java b/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java index a05d7e3727821..d65a81db11266 100644 --- a/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java +++ b/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java @@ -35,7 +35,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java b/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java index 414d5b51db4cd..0cfa3c43b6b5a 100644 --- a/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java +++ b/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java @@ -44,7 +44,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java b/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java index 856c2b77abfd9..943394f326653 100644 --- a/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java +++ b/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java @@ -33,7 +33,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java b/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java index a2847f33060e6..06ac4673264f3 100644 --- a/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java +++ b/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java @@ -27,7 +27,6 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; diff --git a/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java b/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java index 672e4823111e2..6409c2b72e1f1 100644 --- a/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java +++ b/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java @@ -39,7 +39,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java index f0a768080a9b3..d527f998a1ee8 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java @@ -78,7 +78,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; diff --git a/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java b/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java index 6c5af462e2be9..47e24b60896da 100644 --- a/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java +++ b/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java @@ -35,7 +35,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java b/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java index e5bfd738ca11c..8808482d2256f 100644 --- a/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java +++ b/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java @@ -58,7 +58,6 @@ import org.elasticsearch.snapshots.SnapshotRestoreException; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java b/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java index c947129e5169b..e9e1801dfcafb 100644 --- a/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java +++ b/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java @@ -34,7 +34,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java index 8e23d379fec59..acd9ad9e85f50 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java @@ -71,7 +71,6 @@ import org.elasticsearch.snapshots.SearchableSnapshotsSettings; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; diff --git a/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java b/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java index c405bba70d215..6c5e1e6af69ce 100644 --- a/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java +++ b/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java @@ -41,7 +41,6 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; diff --git a/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java b/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java index 953b532483284..754ba7970eaa2 100644 --- a/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java +++ b/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java @@ -29,7 +29,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java b/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java index 5f60ad294ddd1..ba743005bf2df 100644 --- a/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java +++ b/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java @@ -38,7 +38,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java index 4737df1588ac2..8f39ce939a51c 100644 --- a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java +++ b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java @@ -32,7 +32,6 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java index 1fecf97d83928..de0858e59900c 100644 --- a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java +++ b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java @@ -21,7 +21,6 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java index 527fcdda83c9d..c1964448c2662 100644 --- a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java +++ b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java @@ -50,7 +50,6 @@ import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; diff --git a/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java b/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java index be65af2e5a1dc..1fee6eda5ad6d 100644 --- a/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java +++ b/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java @@ -37,7 +37,6 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; diff --git a/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java b/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java index 1146d92498216..0c8690cc62e5f 100644 --- a/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java +++ b/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java @@ -55,7 +55,6 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.script.TemplateScript; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; From 8b90b0415d222e363b543cec9c37dd818255751b Mon Sep 17 00:00:00 2001 From: Stuart Tettemer Date: Wed, 20 Sep 2023 15:47:18 -0500 Subject: [PATCH 09/18] Add long and double instruments --- .../telemetry/apm/APMMetric.java | 146 ++++++++++++------ .../telemetry/apm/InstrumentRegistrar.java | 35 +++++ .../telemetry/apm/OtelDoubleCounter.java | 67 ++++++++ .../telemetry/apm/OtelDoubleGauge.java | 5 + .../telemetry/apm/OtelDoubleHistogram.java | 5 + .../apm/OtelDoubleUpDownCounter.java | 65 ++++++++ ...{OtelCounter.java => OtelLongCounter.java} | 29 +++- .../telemetry/apm/OtelLongGauge.java | 59 +++++++ .../telemetry/apm/OtelLongHistogram.java | 63 ++++++++ .../telemetry/apm/OtelLongUpDownCounter.java | 65 ++++++++ .../telemetry/metric/DoubleCounter.java | 51 ++++++ .../telemetry/metric/DoubleGauge.java | 8 +- .../telemetry/metric/DoubleHistogram.java | 8 +- .../telemetry/metric/DoubleUpDownCounter.java | 45 ++++++ .../metric/{Counter.java => Instrument.java} | 18 +-- .../telemetry/metric/LongCounter.java | 51 ++++++ .../telemetry/metric/LongGauge.java | 39 +++++ .../telemetry/metric/LongHistogram.java | 44 ++++++ .../telemetry/metric/LongUpDownCounter.java | 44 ++++++ .../telemetry/metric/Metric.java | 41 ++++- 20 files changed, 820 insertions(+), 68 deletions(-) create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/InstrumentRegistrar.java create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleCounter.java create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleUpDownCounter.java rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{OtelCounter.java => OtelLongCounter.java} (56%) create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongGauge.java create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongHistogram.java create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongUpDownCounter.java create mode 100644 server/src/main/java/org/elasticsearch/telemetry/metric/DoubleCounter.java create mode 100644 server/src/main/java/org/elasticsearch/telemetry/metric/DoubleUpDownCounter.java rename server/src/main/java/org/elasticsearch/telemetry/metric/{Counter.java => Instrument.java} (60%) create mode 100644 server/src/main/java/org/elasticsearch/telemetry/metric/LongCounter.java create mode 100644 server/src/main/java/org/elasticsearch/telemetry/metric/LongGauge.java create mode 100644 server/src/main/java/org/elasticsearch/telemetry/metric/LongHistogram.java create mode 100644 server/src/main/java/org/elasticsearch/telemetry/metric/LongUpDownCounter.java diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java index 45cf1b5ea694e..868df113e1613 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java @@ -10,29 +10,36 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.OpenTelemetry; -import io.opentelemetry.api.metrics.LongCounter; import io.opentelemetry.api.metrics.Meter; import org.elasticsearch.common.component.AbstractLifecycleComponent; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.LazyInitializable; -import org.elasticsearch.common.util.concurrent.ConcurrentCollections; import org.elasticsearch.telemetry.MetricName; -import org.elasticsearch.telemetry.metric.Counter; +import org.elasticsearch.telemetry.metric.DoubleCounter; import org.elasticsearch.telemetry.metric.DoubleGauge; import org.elasticsearch.telemetry.metric.DoubleHistogram; +import org.elasticsearch.telemetry.metric.DoubleUpDownCounter; +import org.elasticsearch.telemetry.metric.LongCounter; +import org.elasticsearch.telemetry.metric.LongGauge; +import org.elasticsearch.telemetry.metric.LongHistogram; +import org.elasticsearch.telemetry.metric.LongUpDownCounter; import java.security.AccessController; import java.security.PrivilegedAction; -import java.util.Map; import java.util.concurrent.atomic.AtomicReference; import static org.elasticsearch.telemetry.apm.settings.APMAgentSettings.APM_ENABLED_SETTING; public class APMMetric extends AbstractLifecycleComponent implements org.elasticsearch.telemetry.metric.Metric { - private final Map counters = ConcurrentCollections.newConcurrentMap(); - private final Map doubleGauges = ConcurrentCollections.newConcurrentMap(); - private final Map doubleHistograms = ConcurrentCollections.newConcurrentMap(); + private final InstrumentRegistrar doubleCounters = new InstrumentRegistrar<>(); + private final InstrumentRegistrar doubleUpDownCounters = new InstrumentRegistrar<>(); + private final InstrumentRegistrar doubleGauges = new InstrumentRegistrar<>(); + private final InstrumentRegistrar doubleHistograms = new InstrumentRegistrar<>(); + private final InstrumentRegistrar longCounters = new InstrumentRegistrar<>(); + private final InstrumentRegistrar longUpDownCounters = new InstrumentRegistrar<>(); + private final InstrumentRegistrar longGauges = new InstrumentRegistrar<>(); + private final InstrumentRegistrar longHistograms = new InstrumentRegistrar<>(); private volatile boolean enabled; private AtomicReference services = new AtomicReference<>(); @@ -68,50 +75,103 @@ protected void doStop() { protected void doClose() {} @Override - - public Counter registerCounter(MetricName name, String description, T unit) { - return counters.compute(name, (k, v) -> { - if (v != null) { - throw new IllegalStateException("double gauge [" + name.getRawName() + "] already registered"); - } - var lazyCounter = new LazyInitializable<>( - () -> services.get().meter.counterBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() - ); - return OtelCounter.build(lazyCounter, name, description, unit); - }); + public DoubleCounter registerDoubleCounter(MetricName name, String description, T unit) { + var lazyCounter = new LazyInitializable<>( + () -> services.get().meter.counterBuilder(name.getRawName()) + .ofDoubles() + .setDescription(description) + .setUnit(unit.toString()) + .build() + ); + var counter = OtelDoubleCounter.build(lazyCounter, name, description, unit); + doubleCounters.register(counter); + return counter; } @Override + public DoubleUpDownCounter registerDoubleUpDownCounter(MetricName name, String description, T unit) { + var lazyCounter = new LazyInitializable<>( + () -> services.get().meter.upDownCounterBuilder(name.getRawName()) + .ofDoubles() + .setDescription(description) + .setUnit(unit.toString()) + .build() + ); + var counter = OtelDoubleUpDownCounter.build(lazyCounter, name, description, unit); + doubleUpDownCounters.register(counter); + return counter; + } + @Override public DoubleGauge registerDoubleGauge(MetricName name, String description, T unit) { - return doubleGauges.compute(name, (k, v) -> { - if (v != null) { - throw new IllegalStateException("double gauge [" + name.getRawName() + "] already registered"); - } - var lazyGauge = new LazyInitializable<>( - () -> services.get().meter.gaugeBuilder(name.getRawName()) - .setDescription(description) - .setUnit(unit.toString()) - .buildObserver() - ); - - return OtelDoubleGauge.build(lazyGauge, name, description, unit); - }); + var lazyGauge = new LazyInitializable<>( + () -> services.get().meter.gaugeBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).buildObserver() + ); + + var gauge = OtelDoubleGauge.build(lazyGauge, name, description, unit); + doubleGauges.register(gauge); + return gauge; } @Override - public DoubleHistogram registerDoubleHistogram(MetricName name, String description, T unit) { - return doubleHistograms.compute(name, (k, v) -> { - if (v != null) { - throw new IllegalStateException("double histogram [" + name.getRawName() + "] already registered"); - } - var lazyHistogram = new LazyInitializable<>( - () -> services.get().meter.histogramBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() - ); - - return OtelDoubleHistogram.build(lazyHistogram, name, description, unit); - }); + var lazyHistogram = new LazyInitializable<>( + () -> services.get().meter.histogramBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() + ); + + var histogram = OtelDoubleHistogram.build(lazyHistogram, name, description, unit); + doubleHistograms.register(histogram); + return histogram; + } + + @Override + public LongCounter registerLongCounter(MetricName name, String description, T unit) { + var lazyCounter = new LazyInitializable<>( + () -> services.get().meter.counterBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() + ); + var counter = OtelLongCounter.build(lazyCounter, name, description, unit); + longCounters.register(counter); + return counter; + } + + @Override + public LongUpDownCounter registerLongUpDownCounter(MetricName name, String description, T unit) { + var lazyCounter = new LazyInitializable<>( + () -> services.get().meter.upDownCounterBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() + ); + var counter = OtelLongUpDownCounter.build(lazyCounter, name, description, unit); + longUpDownCounters.register(counter); + return counter; + } + + @Override + public LongGauge registerLongGauge(MetricName name, String description, T unit) { + var lazyGauge = new LazyInitializable<>( + () -> services.get().meter.gaugeBuilder(name.getRawName()) + .ofLongs() + .setDescription(description) + .setUnit(unit.toString()) + .buildObserver() + ); + + var gauge = OtelLongGauge.build(lazyGauge, name, description, unit); + longGauges.register(gauge); + return gauge; + } + + @Override + public LongHistogram registerLongHistogram(MetricName name, String description, T unit) { + var lazyHistogram = new LazyInitializable<>( + () -> services.get().meter.histogramBuilder(name.getRawName()) + .ofLongs() + .setDescription(description) + .setUnit(unit.toString()) + .build() + ); + + var histogram = OtelLongHistogram.build(lazyHistogram, name, description, unit); + longHistograms.register(histogram); + return histogram; } void createApmServices() { @@ -125,7 +185,7 @@ void createApmServices() { this.services.set(new APMServices(meter, openTelemetry)); Meter myMeter = GlobalOpenTelemetry.getMeter("my_meter"); - LongCounter counter = myMeter.counterBuilder("my_counter").build(); + var counter = myMeter.counterBuilder("my_counter").build(); new Thread(new Runnable() { @Override diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/InstrumentRegistrar.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/InstrumentRegistrar.java new file mode 100644 index 0000000000000..0d1c30b2b7e06 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/InstrumentRegistrar.java @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm; + +import org.elasticsearch.common.util.concurrent.ConcurrentCollections; +import org.elasticsearch.telemetry.MetricName; +import org.elasticsearch.telemetry.metric.Instrument; + +import java.util.Map; + +public class InstrumentRegistrar { + private final Map registered = ConcurrentCollections.newConcurrentMap(); + + void register(T instrument) { + registered.compute(instrument.getName(), (k, v) -> { + if (v != null) { + throw new IllegalStateException( + instrument.getClass().getSimpleName() + "[" + instrument.getName().getRawName() + "] already registered" + ); + } + + return instrument; + }); + } + + T get(MetricName name) { + return registered.get(name); + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleCounter.java new file mode 100644 index 0000000000000..2f86e70f6e735 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleCounter.java @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm; + +import io.opentelemetry.api.metrics.DoubleCounter; + +import org.elasticsearch.common.util.LazyInitializable; +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public class OtelDoubleCounter implements org.elasticsearch.telemetry.metric.DoubleCounter { + private final LazyInitializable counter; + private final MetricName name; + private final String description; + private final T unit; + + private OtelDoubleCounter(LazyInitializable lazyCounter, MetricName name, String description, T unit) { + this.counter = lazyCounter; + this.name = name; + this.description = description; + this.unit = unit; + } + + public static OtelDoubleCounter build( + LazyInitializable lazyCounter, + MetricName name, + String description, + T unit + ) { + return new OtelDoubleCounter<>(lazyCounter, name, description, unit); + } + + @Override + public MetricName getName() { + return name; + } + + @Override + public void increment() { + counter.getOrCompute().add(1d); + } + + @Override + public void incrementBy(double inc) { + assert inc >= 0; + counter.getOrCompute().add(inc); + } + + @Override + public void incrementBy(double inc, Map attributes) { + assert inc >= 0; + counter.getOrCompute().add(inc, OtelHelper.fromMap(attributes)); + } + + @Override + public void incrementBy(double inc, Map attributes, ThreadContext threadContext) { + throw new UnsupportedOperationException("unimplemented"); + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java index edb7ce3efe226..da912fd015ab0 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java @@ -43,6 +43,11 @@ public static OtelDoubleGauge build( return new OtelDoubleGauge<>(lazyGauge, name, description, unit); } + @Override + public MetricName getName() { + return name; + } + @Override public void record(double value) { gauge.getOrCompute().record(value); diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java index 3de4f5996b7df..f850f26926dcc 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java @@ -42,6 +42,11 @@ public static OtelDoubleHistogram build( return new OtelDoubleHistogram<>(lazyHistogram, name, description, unit); } + @Override + public MetricName getName() { + return name; + } + @Override public void record(double value) { histogram.getOrCompute().record(value); diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleUpDownCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleUpDownCounter.java new file mode 100644 index 0000000000000..30842d3c1f469 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleUpDownCounter.java @@ -0,0 +1,65 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm; + +import io.opentelemetry.api.metrics.DoubleUpDownCounter; + +import org.elasticsearch.common.util.LazyInitializable; +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public class OtelDoubleUpDownCounter implements org.elasticsearch.telemetry.metric.DoubleUpDownCounter { + private final LazyInitializable counter; + private final MetricName name; + private final String description; + private final T unit; + + private OtelDoubleUpDownCounter( + LazyInitializable lazyCounter, + MetricName name, + String description, + T unit + ) { + this.counter = lazyCounter; + this.name = name; + this.description = description; + this.unit = unit; + } + + public static OtelDoubleUpDownCounter build( + LazyInitializable lazyCounter, + MetricName name, + String description, + T unit + ) { + return new OtelDoubleUpDownCounter<>(lazyCounter, name, description, unit); + } + + @Override + public MetricName getName() { + return name; + } + + @Override + public void add(double inc) { + counter.getOrCompute().add(inc); + } + + @Override + public void add(double inc, Map attributes) { + counter.getOrCompute().add(inc, OtelHelper.fromMap(attributes)); + } + + @Override + public void add(double inc, Map attributes, ThreadContext threadContext) { + throw new UnsupportedOperationException("unimplemented"); + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongCounter.java similarity index 56% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongCounter.java index 0a74d9bf226d6..be4cd3b69371a 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongCounter.java @@ -11,29 +11,36 @@ import io.opentelemetry.api.metrics.LongCounter; import org.elasticsearch.common.util.LazyInitializable; +import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.telemetry.MetricName; -import org.elasticsearch.telemetry.metric.Counter; -public class OtelCounter implements Counter { +import java.util.Map; + +public class OtelLongCounter implements org.elasticsearch.telemetry.metric.LongCounter { private final LazyInitializable counter; private final MetricName name; private final String description; private final T unit; - private OtelCounter(LazyInitializable lazyCounter, MetricName name, String description, T unit) { + private OtelLongCounter(LazyInitializable lazyCounter, MetricName name, String description, T unit) { this.counter = lazyCounter; this.name = name; this.description = description; this.unit = unit; } - public static OtelCounter build( + public static OtelLongCounter build( LazyInitializable lazyCounter, MetricName name, String description, T unit ) { - return new OtelCounter<>(lazyCounter, name, description, unit); + return new OtelLongCounter<>(lazyCounter, name, description, unit); + } + + @Override + public MetricName getName() { + return name; } @Override @@ -43,6 +50,18 @@ public void increment() { @Override public void incrementBy(long inc) { + assert inc >= 0; counter.getOrCompute().add(inc); } + + @Override + public void incrementBy(long inc, Map attributes) { + assert inc >= 0; + counter.getOrCompute().add(inc, OtelHelper.fromMap(attributes)); + } + + @Override + public void incrementBy(double inc, Map attributes, ThreadContext threadContext) { + throw new UnsupportedOperationException("unimplemented"); + } } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongGauge.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongGauge.java new file mode 100644 index 0000000000000..e003a32f2c762 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongGauge.java @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm; + +import io.opentelemetry.api.metrics.ObservableLongMeasurement; + +import org.elasticsearch.common.util.LazyInitializable; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public class OtelLongGauge implements org.elasticsearch.telemetry.metric.LongGauge { + private final LazyInitializable gauge; + private final MetricName name; + private final String description; + private final T unit; + + private OtelLongGauge( + LazyInitializable gauge, + MetricName name, + String description, + T unit + ) { + this.gauge = gauge; + this.name = name; + this.description = description; + this.unit = unit; + } + + public static OtelLongGauge build( + LazyInitializable lazyGauge, + MetricName name, + String description, + T unit + ) { + return new OtelLongGauge<>(lazyGauge, name, description, unit); + } + + @Override + public MetricName getName() { + return name; + } + + @Override + public void record(long value) { + gauge.getOrCompute().record(value); + } + + @Override + public void record(long value, Map attributes) { + gauge.getOrCompute().record(value, OtelHelper.fromMap(attributes)); + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongHistogram.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongHistogram.java new file mode 100644 index 0000000000000..244e5e130edea --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongHistogram.java @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm; + +import org.elasticsearch.common.util.LazyInitializable; +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public class OtelLongHistogram implements org.elasticsearch.telemetry.metric.LongHistogram { + private final LazyInitializable histogram; + private final MetricName name; + private final String description; + private final T unit; + + public OtelLongHistogram( + LazyInitializable histogram, + MetricName name, + String description, + T unit + ) { + this.histogram = histogram; + this.name = name; + this.description = description; + this.unit = unit; + } + + public static OtelLongHistogram build( + LazyInitializable lazyHistogram, + MetricName name, + String description, + T unit + ) { + return new OtelLongHistogram<>(lazyHistogram, name, description, unit); + } + + @Override + public MetricName getName() { + return name; + } + + @Override + public void record(long value) { + histogram.getOrCompute().record(value); + } + + @Override + public void record(long value, Map attributes) { + histogram.getOrCompute().record(value, OtelHelper.fromMap(attributes)); + } + + @Override + public void record(long value, Map attributes, ThreadContext threadContext) { + throw new UnsupportedOperationException("unimplemented"); + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongUpDownCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongUpDownCounter.java new file mode 100644 index 0000000000000..d882702710590 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongUpDownCounter.java @@ -0,0 +1,65 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm; + +import io.opentelemetry.api.metrics.LongUpDownCounter; + +import org.elasticsearch.common.util.LazyInitializable; +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public class OtelLongUpDownCounter implements org.elasticsearch.telemetry.metric.LongUpDownCounter { + private final LazyInitializable counter; + private final MetricName name; + private final String description; + private final T unit; + + private OtelLongUpDownCounter( + LazyInitializable lazyCounter, + MetricName name, + String description, + T unit + ) { + this.counter = lazyCounter; + this.name = name; + this.description = description; + this.unit = unit; + } + + public static OtelLongUpDownCounter build( + LazyInitializable lazyCounter, + MetricName name, + String description, + T unit + ) { + return new OtelLongUpDownCounter<>(lazyCounter, name, description, unit); + } + + @Override + public MetricName getName() { + return name; + } + + @Override + public void add(long inc) { + counter.getOrCompute().add(inc); + } + + @Override + public void add(long inc, Map attributes) { + counter.getOrCompute().add(inc, OtelHelper.fromMap(attributes)); + } + + @Override + public void add(long inc, Map attributes, ThreadContext threadContext) { + throw new UnsupportedOperationException("unimplemented"); + } +} diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleCounter.java b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleCounter.java new file mode 100644 index 0000000000000..692f75c0a1e8b --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleCounter.java @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.metric; + +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public interface DoubleCounter extends Instrument { + void increment(); + + void incrementBy(double inc); + + void incrementBy(double inc, Map attributes); + + void incrementBy(double inc, Map attributes, ThreadContext threadContext); + + DoubleCounter NOOP = new DoubleCounter() { + @Override + public MetricName getName() { + return null; + } + + @Override + public void increment() { + + } + + @Override + public void incrementBy(double inc) { + + } + + @Override + public void incrementBy(double inc, Map attributes) { + + } + + @Override + public void incrementBy(double inc, Map attributes, ThreadContext threadContext) { + + } + }; +} diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleGauge.java b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleGauge.java index bef1bc8e80535..002d0a854e0e2 100644 --- a/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleGauge.java +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleGauge.java @@ -8,17 +8,23 @@ package org.elasticsearch.telemetry.metric; +import org.elasticsearch.telemetry.MetricName; + import java.util.Map; /** * Record non-additive double values */ -public interface DoubleGauge { +public interface DoubleGauge extends Instrument { void record(double value); void record(double value, Map attributes); DoubleGauge NOOP = new DoubleGauge() { + @Override + public MetricName getName() { + return null; + } @Override public void record(double value) { diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleHistogram.java b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleHistogram.java index 487052f7d9799..88feacaffe42e 100644 --- a/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleHistogram.java +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleHistogram.java @@ -9,10 +9,11 @@ package org.elasticsearch.telemetry.metric; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; import java.util.Map; -public interface DoubleHistogram { +public interface DoubleHistogram extends Instrument { void record(double value); void record(double value, Map attributes); @@ -20,6 +21,11 @@ public interface DoubleHistogram { void record(double value, Map attributes, ThreadContext threadContext); DoubleHistogram NOOP = new DoubleHistogram() { + @Override + public MetricName getName() { + return null; + } + @Override public void record(double value) { diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleUpDownCounter.java b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleUpDownCounter.java new file mode 100644 index 0000000000000..4b88d3fcc9d3b --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/DoubleUpDownCounter.java @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.metric; + +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public interface DoubleUpDownCounter extends Instrument { + // inc may be negative + void add(double inc); + + void add(double inc, Map attributes); + + void add(double inc, Map attributes, ThreadContext threadContext); + + DoubleUpDownCounter NOOP = new DoubleUpDownCounter() { + @Override + public MetricName getName() { + return null; + } + + @Override + public void add(double inc) { + + } + + @Override + public void add(double inc, Map attributes) { + + } + + @Override + public void add(double inc, Map attributes, ThreadContext threadContext) { + + } + }; +} diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/Counter.java b/server/src/main/java/org/elasticsearch/telemetry/metric/Instrument.java similarity index 60% rename from server/src/main/java/org/elasticsearch/telemetry/metric/Counter.java rename to server/src/main/java/org/elasticsearch/telemetry/metric/Instrument.java index 03eba11a8575d..0b479ca59c513 100644 --- a/server/src/main/java/org/elasticsearch/telemetry/metric/Counter.java +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/Instrument.java @@ -8,20 +8,8 @@ package org.elasticsearch.telemetry.metric; -public interface Counter { - void increment(); +import org.elasticsearch.telemetry.MetricName; - void incrementBy(long inc); - - Counter NOOP = new Counter() { - @Override - public void increment() { - - } - - @Override - public void incrementBy(long inc) { - - } - }; +public interface Instrument { + MetricName getName(); } diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/LongCounter.java b/server/src/main/java/org/elasticsearch/telemetry/metric/LongCounter.java new file mode 100644 index 0000000000000..02c454869f759 --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/LongCounter.java @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.metric; + +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public interface LongCounter extends Instrument { + void increment(); + + void incrementBy(long inc); + + void incrementBy(long inc, Map attributes); + + void incrementBy(double inc, Map attributes, ThreadContext threadContext); + + LongCounter NOOP = new LongCounter() { + @Override + public MetricName getName() { + return null; + } + + @Override + public void increment() { + + } + + @Override + public void incrementBy(long inc) { + + } + + @Override + public void incrementBy(long inc, Map attributes) { + + } + + @Override + public void incrementBy(double inc, Map attributes, ThreadContext threadContext) { + + } + }; +} diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/LongGauge.java b/server/src/main/java/org/elasticsearch/telemetry/metric/LongGauge.java new file mode 100644 index 0000000000000..79f382a3c06ce --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/LongGauge.java @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.metric; + +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +/** + * Record non-additive double values + */ +public interface LongGauge extends Instrument { + void record(long value); + + void record(long value, Map attributes); + + LongGauge NOOP = new LongGauge() { + @Override + public MetricName getName() { + return null; + } + + @Override + public void record(long value) { + + } + + @Override + public void record(long value, Map attributes) { + + } + }; +} diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/LongHistogram.java b/server/src/main/java/org/elasticsearch/telemetry/metric/LongHistogram.java new file mode 100644 index 0000000000000..844835564a574 --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/LongHistogram.java @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.metric; + +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public interface LongHistogram extends Instrument { + void record(long value); + + void record(long value, Map attributes); + + void record(long value, Map attributes, ThreadContext threadContext); + + LongHistogram NOOP = new LongHistogram() { + @Override + public MetricName getName() { + return null; + } + + @Override + public void record(long value) { + + } + + @Override + public void record(long value, Map attributes) { + + } + + @Override + public void record(long value, Map attributes, ThreadContext threadContext) { + + } + }; +} diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/LongUpDownCounter.java b/server/src/main/java/org/elasticsearch/telemetry/metric/LongUpDownCounter.java new file mode 100644 index 0000000000000..92fc17ec2074b --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/LongUpDownCounter.java @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.metric; + +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.telemetry.MetricName; + +import java.util.Map; + +public interface LongUpDownCounter extends Instrument { + void add(long inc); + + void add(long inc, Map attributes); + + void add(long inc, Map attributes, ThreadContext threadContext); + + LongUpDownCounter NOOP = new LongUpDownCounter() { + @Override + public MetricName getName() { + return null; + } + + @Override + public void add(long inc) { + + } + + @Override + public void add(long inc, Map attributes) { + + } + + @Override + public void add(long inc, Map attributes, ThreadContext threadContext) { + + } + }; +} diff --git a/server/src/main/java/org/elasticsearch/telemetry/metric/Metric.java b/server/src/main/java/org/elasticsearch/telemetry/metric/Metric.java index 47d134fa40d09..40da909c24f91 100644 --- a/server/src/main/java/org/elasticsearch/telemetry/metric/Metric.java +++ b/server/src/main/java/org/elasticsearch/telemetry/metric/Metric.java @@ -11,16 +11,30 @@ import org.elasticsearch.telemetry.MetricName; public interface Metric { - Counter registerCounter(MetricName name, String description, T unit); + DoubleCounter registerDoubleCounter(MetricName name, String description, T unit); + + DoubleUpDownCounter registerDoubleUpDownCounter(MetricName name, String description, T unit); DoubleGauge registerDoubleGauge(MetricName name, String description, T unit); DoubleHistogram registerDoubleHistogram(MetricName name, String description, T unit); + LongCounter registerLongCounter(MetricName name, String description, T unit); + + LongUpDownCounter registerLongUpDownCounter(MetricName name, String description, T unit); + + LongGauge registerLongGauge(MetricName name, String description, T unit); + + LongHistogram registerLongHistogram(MetricName name, String description, T unit); + Metric NOOP = new Metric() { @Override - public Counter registerCounter(MetricName name, String description, T unit) { - return Counter.NOOP; + public DoubleCounter registerDoubleCounter(MetricName name, String description, T unit) { + return DoubleCounter.NOOP; + } + + public DoubleUpDownCounter registerDoubleUpDownCounter(MetricName name, String description, T unit) { + return DoubleUpDownCounter.NOOP; } @Override @@ -32,5 +46,26 @@ public DoubleGauge registerDoubleGauge(MetricName name, String description, public DoubleHistogram registerDoubleHistogram(MetricName name, String description, T unit) { return DoubleHistogram.NOOP; } + + @Override + public LongCounter registerLongCounter(MetricName name, String description, T unit) { + return LongCounter.NOOP; + } + + public LongUpDownCounter registerLongUpDownCounter(MetricName name, String description, T unit) { + return LongUpDownCounter.NOOP; + } + + @Override + + public LongGauge registerLongGauge(MetricName name, String description, T unit) { + return LongGauge.NOOP; + } + + @Override + + public LongHistogram registerLongHistogram(MetricName name, String description, T unit) { + return LongHistogram.NOOP; + } }; } From a1674dc4c848e451648a5033539683850ff075a5 Mon Sep 17 00:00:00 2001 From: Stuart Tettemer Date: Wed, 20 Sep 2023 16:10:53 -0500 Subject: [PATCH 10/18] Replace Tracer with TelemetryProvider --- .../PredicateTokenScriptFilterTests.java | 19 +++++++++++++++++-- .../ScriptedConditionTokenFilterTests.java | 19 +++++++++++++++++-- .../ReindexFromRemoteWithAuthTests.java | 1 + .../azure/AzureStorageServiceTests.java | 4 ++-- .../systemd/SystemdPluginTests.java | 12 ++++++------ .../cluster/SimpleClusterStateIT.java | 1 + .../health/GetHealthActionIT.java | 1 + .../elasticsearch/health/HealthServiceIT.java | 1 + .../elasticsearch/index/FinalPipelineIT.java | 1 + .../index/SettingsListenerIT.java | 1 + .../ingest/IngestAsyncProcessorIT.java | 1 + .../org/elasticsearch/telemetry/Meter.java | 11 ----------- .../org/elasticsearch/node/NodeTests.java | 1 + .../plugins/PluginIntrospectorTests.java | 1 + .../audit/logfile/LoggingAuditTrail.java | 6 +++--- .../xpack/security/SecurityTests.java | 3 +-- .../xpack/watcher/WatcherPluginTests.java | 4 ++-- 17 files changed, 57 insertions(+), 30 deletions(-) delete mode 100644 server/src/main/java/org/elasticsearch/telemetry/Meter.java diff --git a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java index af7386ba9b629..7b60c1a64abb6 100644 --- a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java +++ b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java @@ -28,7 +28,7 @@ import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTokenStreamTestCase; import org.elasticsearch.test.IndexSettingsModule; import org.elasticsearch.threadpool.ThreadPool; @@ -68,7 +68,22 @@ public FactoryType compile(Script script, ScriptContext FactoryType compile(Script script, ScriptContext events; boolean includeRequestBody; @@ -401,7 +401,7 @@ public LoggingAuditTrail(Settings settings, ClusterService clusterService, Threa } LoggingAuditTrail(Settings settings, ClusterService clusterService, Logger logger, ThreadContext threadContext, Metric metric) { - this.authenticationFailedCounter = metric.registerCounter( + this.authenticationFailedCounter = metric.registerLongCounter( new MetricName("authenticationFailed"), "authenticationFailed", new Object() diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java index e3065aae01336..f082cfa443acb 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/SecurityTests.java @@ -54,7 +54,6 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.IndexSettingsModule; import org.elasticsearch.test.MockLogAppender; @@ -778,7 +777,7 @@ public void testSecurityRestHandlerInterceptorCanBeInstalled() throws IllegalAcc null, usageService, null, - Tracer.NOOP, + TelemetryProvider.NOOP, mock(ClusterService.class), List.of(), RestExtension.allowAll() diff --git a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java index a427b8bfcfee2..e1f1933242414 100644 --- a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java +++ b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java @@ -15,7 +15,7 @@ import org.elasticsearch.indices.SystemIndexDescriptor; import org.elasticsearch.indices.TestIndexNameExpressionResolver; import org.elasticsearch.plugins.internal.DocumentParsingObserver; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.IndexSettingsModule; import org.elasticsearch.threadpool.ExecutorBuilder; @@ -75,7 +75,7 @@ public void testWatcherDisabledTests() throws Exception { // also no component creation if not enabled assertThat( - watcher.createComponents(null, null, null, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null), + watcher.createComponents(null, null, null, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null), hasSize(0) ); From aeed9b4b388d66ea0aa294cb3002a5926360779c Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Thu, 21 Sep 2023 09:23:33 +0200 Subject: [PATCH 11/18] sm --- modules/apm/build.gradle | 2 +- .../java/org/elasticsearch/telemetry/apm/APM.java | 3 +++ .../elasticsearch/telemetry/apm/APMMetric.java | 15 --------------- .../main/plugin-metadata/plugin-security.policy | 3 ++- 4 files changed, 6 insertions(+), 17 deletions(-) diff --git a/modules/apm/build.gradle b/modules/apm/build.gradle index 96032d873f986..4a9d37f2dd2a3 100644 --- a/modules/apm/build.gradle +++ b/modules/apm/build.gradle @@ -24,7 +24,7 @@ dependencies { implementation "io.opentelemetry:opentelemetry-api:${otelVersion}" implementation "io.opentelemetry:opentelemetry-context:${otelVersion}" implementation "io.opentelemetry:opentelemetry-semconv:${otelVersion}-alpha" - implementation "co.elastic.apm:elastic-apm-agent:1.42.1-SNAPSHOT" + runtime "co.elastic.apm:elastic-apm-agent:1.42.1-SNAPSHOT" } tasks.named("dependencyLicenses").configure { diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java index 0cbe2126f9e15..1ac14e500404f 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java @@ -29,6 +29,9 @@ import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; +import java.lang.invoke.MethodHandles; +import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.Collection; import java.util.List; import java.util.function.Supplier; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java index ecc18ad2d35c2..312d8e2774ed7 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java @@ -121,21 +121,6 @@ void createApmServices() { this.services.set(new APMServices(meter, openTelemetry)); - Meter myMeter = GlobalOpenTelemetry.getMeter("my_meter"); - LongCounter counter = myMeter.counterBuilder("my_counter").build(); - - new Thread(new Runnable() { - @Override - public void run() { - try { - counter.add(42); - Thread.sleep(2000); - }catch (Exception e){ - - } - } - }).start(); - return null; }); } diff --git a/modules/apm/src/main/plugin-metadata/plugin-security.policy b/modules/apm/src/main/plugin-metadata/plugin-security.policy index 20c44571df746..450896fe151ec 100644 --- a/modules/apm/src/main/plugin-metadata/plugin-security.policy +++ b/modules/apm/src/main/plugin-metadata/plugin-security.policy @@ -10,11 +10,12 @@ grant { permission java.lang.RuntimePermission "accessSystemModules"; permission java.lang.RuntimePermission "createClassLoader"; permission java.lang.RuntimePermission "getClassLoader"; - permission java.util.PropertyPermission "elastic.apm.*", "write"; permission java.util.PropertyPermission "*", "read,write"; + }; grant codeBase "${codebase.elastic-apm-agent}" { + permission java.lang.RuntimePermission "accessDeclaredMembers"; permission java.lang.RuntimePermission "setContextClassLoader"; permission java.lang.RuntimePermission "setFactory"; From 2dbac8c6b8d13d4291aea509b8a9226b086a6590 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Thu, 21 Sep 2023 09:42:40 +0200 Subject: [PATCH 12/18] metric package --- modules/apm/build.gradle | 2 +- modules/apm/src/main/java/module-info.java | 1 + .../src/main/java/org/elasticsearch/telemetry/apm/APM.java | 4 +--- .../org/elasticsearch/telemetry/apm/APMTelemetryProvider.java | 1 + .../elasticsearch/telemetry/apm/{ => metrics}/APMMetric.java | 2 +- .../telemetry/apm/{ => metrics}/InstrumentRegistrar.java | 2 +- .../telemetry/apm/{ => metrics}/OtelDoubleCounter.java | 2 +- .../telemetry/apm/{ => metrics}/OtelDoubleGauge.java | 2 +- .../telemetry/apm/{ => metrics}/OtelDoubleHistogram.java | 2 +- .../telemetry/apm/{ => metrics}/OtelDoubleUpDownCounter.java | 2 +- .../elasticsearch/telemetry/apm/{ => metrics}/OtelHelper.java | 2 +- .../telemetry/apm/{ => metrics}/OtelLongCounter.java | 2 +- .../telemetry/apm/{ => metrics}/OtelLongGauge.java | 2 +- .../telemetry/apm/{ => metrics}/OtelLongHistogram.java | 2 +- .../telemetry/apm/{ => metrics}/OtelLongUpDownCounter.java | 2 +- .../telemetry/apm/settings/APMAgentSettings.java | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/APMMetric.java (99%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/InstrumentRegistrar.java (95%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/OtelDoubleCounter.java (97%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/OtelDoubleGauge.java (97%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/OtelDoubleHistogram.java (97%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/OtelDoubleUpDownCounter.java (97%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/OtelHelper.java (96%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/OtelLongCounter.java (97%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/OtelLongGauge.java (97%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/OtelLongHistogram.java (97%) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => metrics}/OtelLongUpDownCounter.java (97%) diff --git a/modules/apm/build.gradle b/modules/apm/build.gradle index 4a9d37f2dd2a3..83ab0b84bf8c5 100644 --- a/modules/apm/build.gradle +++ b/modules/apm/build.gradle @@ -24,7 +24,7 @@ dependencies { implementation "io.opentelemetry:opentelemetry-api:${otelVersion}" implementation "io.opentelemetry:opentelemetry-context:${otelVersion}" implementation "io.opentelemetry:opentelemetry-semconv:${otelVersion}-alpha" - runtime "co.elastic.apm:elastic-apm-agent:1.42.1-SNAPSHOT" + runtimeOnly "co.elastic.apm:elastic-apm-agent:1.42.1-SNAPSHOT" } tasks.named("dependencyLicenses").configure { diff --git a/modules/apm/src/main/java/module-info.java b/modules/apm/src/main/java/module-info.java index 0bea3078f5f00..4576a6882b465 100644 --- a/modules/apm/src/main/java/module-info.java +++ b/modules/apm/src/main/java/module-info.java @@ -16,4 +16,5 @@ requires io.opentelemetry.api; exports org.elasticsearch.telemetry.apm; + exports org.elasticsearch.telemetry.apm.metrics; } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java index 888c74fa328d2..b66e4893424aa 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java @@ -25,15 +25,13 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; +import org.elasticsearch.telemetry.apm.metrics.APMMetric; import org.elasticsearch.telemetry.apm.settings.APMAgentSettings; import org.elasticsearch.telemetry.apm.tracing.APMTracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; -import java.lang.invoke.MethodHandles; -import java.security.AccessController; -import java.security.PrivilegedAction; import java.util.Collection; import java.util.List; import java.util.function.Supplier; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java index 817bcb25f87ba..5da1f18e1bc94 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMTelemetryProvider.java @@ -10,6 +10,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.telemetry.TelemetryProvider; +import org.elasticsearch.telemetry.apm.metrics.APMMetric; import org.elasticsearch.telemetry.apm.tracing.APMTracer; public class APMTelemetryProvider implements TelemetryProvider { diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/APMMetric.java similarity index 99% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/APMMetric.java index 588f9ffe650c6..88fd772033005 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APMMetric.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/APMMetric.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.OpenTelemetry; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/InstrumentRegistrar.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/InstrumentRegistrar.java similarity index 95% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/InstrumentRegistrar.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/InstrumentRegistrar.java index 0d1c30b2b7e06..70f303ef2ceb7 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/InstrumentRegistrar.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/InstrumentRegistrar.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import org.elasticsearch.common.util.concurrent.ConcurrentCollections; import org.elasticsearch.telemetry.MetricName; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleCounter.java similarity index 97% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleCounter.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleCounter.java index 2f86e70f6e735..8b69efee7b269 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleCounter.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import io.opentelemetry.api.metrics.DoubleCounter; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleGauge.java similarity index 97% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleGauge.java index da912fd015ab0..efba54f71cac7 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleGauge.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleGauge.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import io.opentelemetry.api.metrics.ObservableDoubleMeasurement; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleHistogram.java similarity index 97% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleHistogram.java index f850f26926dcc..331d438e560f4 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleHistogram.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleHistogram.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ThreadContext; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleUpDownCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleUpDownCounter.java similarity index 97% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleUpDownCounter.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleUpDownCounter.java index 30842d3c1f469..ba0f4ceceeb35 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelDoubleUpDownCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelDoubleUpDownCounter.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import io.opentelemetry.api.metrics.DoubleUpDownCounter; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelHelper.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelHelper.java similarity index 96% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelHelper.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelHelper.java index 370887e35fe71..fe69d2914560f 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelHelper.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelHelper.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import io.opentelemetry.api.common.Attributes; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongCounter.java similarity index 97% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongCounter.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongCounter.java index be4cd3b69371a..af21560b693e4 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongCounter.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import io.opentelemetry.api.metrics.LongCounter; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongGauge.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongGauge.java similarity index 97% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongGauge.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongGauge.java index e003a32f2c762..58afc8dab5f2f 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongGauge.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongGauge.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import io.opentelemetry.api.metrics.ObservableLongMeasurement; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongHistogram.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongHistogram.java similarity index 97% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongHistogram.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongHistogram.java index 244e5e130edea..c512e81487ede 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongHistogram.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongHistogram.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ThreadContext; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongUpDownCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongUpDownCounter.java similarity index 97% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongUpDownCounter.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongUpDownCounter.java index d882702710590..1251e2e658846 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/OtelLongUpDownCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/metrics/OtelLongUpDownCounter.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm; +package org.elasticsearch.telemetry.apm.metrics; import io.opentelemetry.api.metrics.LongUpDownCounter; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java index bb39365dbead7..468a3d1a73c3e 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java @@ -17,8 +17,8 @@ import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.SuppressForbidden; -import org.elasticsearch.telemetry.apm.APMMetric; import org.elasticsearch.telemetry.apm.APMTelemetryProvider; +import org.elasticsearch.telemetry.apm.metrics.APMMetric; import org.elasticsearch.telemetry.apm.tracing.APMTracer; import java.security.AccessController; From d2f2c59c5d064013c77641549127714f763fa879 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Thu, 21 Sep 2023 09:55:57 +0200 Subject: [PATCH 13/18] introduce telemetry provider interface --- .../org/elasticsearch/telemetry/apm/APM.java | 22 +++++++------- .../APMAgentSettings.java | 6 ++-- .../apm/internal/APMTelemetryProvider.java | 29 +++++++++++++++++++ .../telemetry/apm/tracing/APMTracer.java | 8 ++--- .../apm/settings/APMAgentSettingsTests.java | 1 + .../telemetry/apm/tracing/APMTracerTests.java | 2 +- server/src/main/java/module-info.java | 1 + .../java/org/elasticsearch/node/Node.java | 16 +++++----- ...TracerPlugin.java => TelemetryPlugin.java} | 5 ++-- .../telemetry/TelemetryProvider.java | 23 +++++++++++++++ 10 files changed, 87 insertions(+), 26 deletions(-) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{settings => internal}/APMAgentSettings.java (97%) create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMTelemetryProvider.java rename server/src/main/java/org/elasticsearch/plugins/{TracerPlugin.java => TelemetryPlugin.java} (76%) create mode 100644 server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java index 1208fa1f7b9e5..ed3b801c5752e 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java @@ -21,10 +21,12 @@ import org.elasticsearch.indices.IndicesService; import org.elasticsearch.plugins.NetworkPlugin; import org.elasticsearch.plugins.Plugin; -import org.elasticsearch.plugins.TracerPlugin; +import org.elasticsearch.plugins.TelemetryPlugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.apm.settings.APMAgentSettings; +import org.elasticsearch.telemetry.TelemetryProvider; +import org.elasticsearch.telemetry.apm.internal.APMAgentSettings; +import org.elasticsearch.telemetry.apm.internal.APMTelemetryProvider; import org.elasticsearch.telemetry.apm.tracing.APMTracer; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; @@ -55,8 +57,8 @@ * be passed via system properties to the Java agent, which periodically checks for changes * and applies the new settings values, provided those settings can be dynamically updated. */ -public class APM extends Plugin implements NetworkPlugin, TracerPlugin { - private final SetOnce tracer = new SetOnce<>(); +public class APM extends Plugin implements NetworkPlugin, TelemetryPlugin { + private final SetOnce telemetryProvider = new SetOnce<>(); private final Settings settings; public APM(Settings settings) { @@ -64,10 +66,10 @@ public APM(Settings settings) { } @Override - public Tracer getTracer(Settings settings) { - final APMTracer apmTracer = new APMTracer(settings); - tracer.set(apmTracer); - return apmTracer; + public TelemetryProvider getTelemetryProvider(Settings settings) { + final APMTelemetryProvider apmTelemetryProvider = new APMTelemetryProvider(settings); + telemetryProvider.set(apmTelemetryProvider); + return apmTelemetryProvider; } @Override @@ -87,14 +89,14 @@ public Collection createComponents( AllocationService allocationService, IndicesService indicesService ) { - final APMTracer apmTracer = tracer.get(); + final APMTracer apmTracer = telemetryProvider.get().getTracer(); apmTracer.setClusterName(clusterService.getClusterName().value()); apmTracer.setNodeName(clusterService.getNodeName()); final APMAgentSettings apmAgentSettings = new APMAgentSettings(); apmAgentSettings.syncAgentSystemProperties(settings); - apmAgentSettings.addClusterSettingsListeners(clusterService, apmTracer); + apmAgentSettings.addClusterSettingsListeners(clusterService, telemetryProvider.get()); return List.of(apmTracer); } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettings.java similarity index 97% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettings.java index 49317ab36543d..425408270a417 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettings.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettings.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm.settings; +package org.elasticsearch.telemetry.apm.internal; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -42,8 +42,10 @@ public class APMAgentSettings { */ static Map APM_AGENT_DEFAULT_SETTINGS = Map.of("transaction_sample_rate", "0.2"); - public void addClusterSettingsListeners(ClusterService clusterService, APMTracer apmTracer) { + public void addClusterSettingsListeners(ClusterService clusterService, APMTelemetryProvider apmTelemetryProvider) { final ClusterSettings clusterSettings = clusterService.getClusterSettings(); + final APMTracer apmTracer = apmTelemetryProvider.getTracer(); + clusterSettings.addSettingsUpdateConsumer(APM_ENABLED_SETTING, enabled -> { apmTracer.setEnabled(enabled); // The agent records data other than spans, e.g. JVM metrics, so we toggle this setting in order to diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMTelemetryProvider.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMTelemetryProvider.java new file mode 100644 index 0000000000000..4a98f2cbda690 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMTelemetryProvider.java @@ -0,0 +1,29 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm.internal; + +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.telemetry.TelemetryProvider; +import org.elasticsearch.telemetry.apm.tracing.APMTracer; +import org.elasticsearch.telemetry.tracing.Tracer; + +public class APMTelemetryProvider implements TelemetryProvider { + private final Settings settings; + private final APMTracer apmTracer; + + public APMTelemetryProvider(Settings settings) { + this.settings = settings; + apmTracer = new APMTracer(settings); + } + + @Override + public APMTracer getTracer() { + return apmTracer; + } +} diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java index fc390f1c3d603..7bac523e1aea1 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java @@ -43,10 +43,10 @@ import java.util.Map; import java.util.stream.Collectors; -import static org.elasticsearch.telemetry.apm.settings.APMAgentSettings.APM_ENABLED_SETTING; -import static org.elasticsearch.telemetry.apm.settings.APMAgentSettings.APM_TRACING_NAMES_EXCLUDE_SETTING; -import static org.elasticsearch.telemetry.apm.settings.APMAgentSettings.APM_TRACING_NAMES_INCLUDE_SETTING; -import static org.elasticsearch.telemetry.apm.settings.APMAgentSettings.APM_TRACING_SANITIZE_FIELD_NAMES; +import static org.elasticsearch.telemetry.apm.internal.APMAgentSettings.APM_ENABLED_SETTING; +import static org.elasticsearch.telemetry.apm.internal.APMAgentSettings.APM_TRACING_NAMES_EXCLUDE_SETTING; +import static org.elasticsearch.telemetry.apm.internal.APMAgentSettings.APM_TRACING_NAMES_INCLUDE_SETTING; +import static org.elasticsearch.telemetry.apm.internal.APMAgentSettings.APM_TRACING_SANITIZE_FIELD_NAMES; /** * This is an implementation of the {@link org.elasticsearch.telemetry.tracing.Tracer} interface, which uses diff --git a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java index 3d95c9f85f5e5..afac73b870e41 100644 --- a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java @@ -9,6 +9,7 @@ package org.elasticsearch.telemetry.apm.settings; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.telemetry.apm.internal.APMAgentSettings; import org.elasticsearch.test.ESTestCase; import static org.mockito.Mockito.spy; diff --git a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java index ffe719197c59f..b87e77e5e43d5 100644 --- a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java @@ -21,7 +21,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.apm.settings.APMAgentSettings; +import org.elasticsearch.telemetry.apm.internal.APMAgentSettings; import org.elasticsearch.telemetry.tracing.SpanId; import org.elasticsearch.test.ESTestCase; diff --git a/server/src/main/java/module-info.java b/server/src/main/java/module-info.java index c6e6a207ae6c0..c354d510765c2 100644 --- a/server/src/main/java/module-info.java +++ b/server/src/main/java/module-info.java @@ -383,6 +383,7 @@ org.elasticsearch.serverless.constants, org.elasticsearch.serverless.apifiltering; exports org.elasticsearch.telemetry.tracing; + exports org.elasticsearch.telemetry; provides java.util.spi.CalendarDataProvider with org.elasticsearch.common.time.IsoCalendarDataProvider; provides org.elasticsearch.xcontent.ErrorOnUnknown with org.elasticsearch.common.xcontent.SuggestingErrorOnUnknown; diff --git a/server/src/main/java/org/elasticsearch/node/Node.java b/server/src/main/java/org/elasticsearch/node/Node.java index 198abe36e1452..2c17aff4bd197 100644 --- a/server/src/main/java/org/elasticsearch/node/Node.java +++ b/server/src/main/java/org/elasticsearch/node/Node.java @@ -179,7 +179,7 @@ import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.plugins.ShutdownAwarePlugin; import org.elasticsearch.plugins.SystemIndexPlugin; -import org.elasticsearch.plugins.TracerPlugin; +import org.elasticsearch.plugins.TelemetryPlugin; import org.elasticsearch.plugins.internal.DocumentParsingObserver; import org.elasticsearch.plugins.internal.DocumentParsingObserverPlugin; import org.elasticsearch.plugins.internal.ReloadAwarePlugin; @@ -213,6 +213,7 @@ import org.elasticsearch.tasks.TaskCancellationService; import org.elasticsearch.tasks.TaskManager; import org.elasticsearch.tasks.TaskResultsService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -456,7 +457,8 @@ protected Node( Task.HEADERS_TO_COPY.stream() ).collect(Collectors.toSet()); - final Tracer tracer = getTracer(pluginsService, settings); + final TelemetryProvider telemetryProvider = getTelemetryProvider(pluginsService, settings); + final Tracer tracer = telemetryProvider.getTracer(); final TaskManager taskManager = new TaskManager(settings, threadPool, taskHeaders, tracer); @@ -1287,14 +1289,14 @@ private static ReloadablePlugin wrapPlugins(List reloadablePlu }; } - private Tracer getTracer(PluginsService pluginsService, Settings settings) { - final List tracerPlugins = pluginsService.filterPlugins(TracerPlugin.class); + private TelemetryProvider getTelemetryProvider(PluginsService pluginsService, Settings settings) { + final List telemetryPlugins = pluginsService.filterPlugins(TelemetryPlugin.class); - if (tracerPlugins.size() > 1) { - throw new IllegalStateException("A single TracerPlugin was expected but got: " + tracerPlugins); + if (telemetryPlugins.size() > 1) { + throw new IllegalStateException("A single TracerPlugin was expected but got: " + telemetryPlugins); } - return tracerPlugins.isEmpty() ? Tracer.NOOP : tracerPlugins.get(0).getTracer(settings); + return telemetryPlugins.isEmpty() ? TelemetryProvider.NOOP : telemetryPlugins.get(0).getTelemetryProvider(settings); } private HealthService createHealthService( diff --git a/server/src/main/java/org/elasticsearch/plugins/TracerPlugin.java b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java similarity index 76% rename from server/src/main/java/org/elasticsearch/plugins/TracerPlugin.java rename to server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java index eccc38cf9f5c9..d1bf77e1b9525 100644 --- a/server/src/main/java/org/elasticsearch/plugins/TracerPlugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java @@ -9,8 +9,9 @@ package org.elasticsearch.plugins; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; -public interface TracerPlugin { - Tracer getTracer(Settings settings); +public interface TelemetryPlugin { + TelemetryProvider getTelemetryProvider(Settings settings); } diff --git a/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java b/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java new file mode 100644 index 0000000000000..b953874131321 --- /dev/null +++ b/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry; +import org.elasticsearch.telemetry.tracing.Tracer; + +public interface TelemetryProvider { + Tracer getTracer(); + + TelemetryProvider NOOP = new TelemetryProvider() { + + @Override + public Tracer getTracer() { + return Tracer.NOOP; + } + + }; +} From 7b3f3b60467c936e63c691e1d9c23484867ed66b Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Thu, 21 Sep 2023 10:03:03 +0200 Subject: [PATCH 14/18] Rename TracerPlugin to TelemetryPlugin with the support of metrics the TracerPlugin name is no longer adequate. Renaming this to TelemetryPlugin. Also introducing TelemetryProvider interface. While it is only used in Node.java at the moment to fetch Tracer instance, it is intended to be used in Plugin::createComponents (to be done in separate commite due to the broad scope of this method) This will allow for plugins to get access to both Tracer and Metric interfaces without the need to add yet another argument to createComponents Also adding internal subpackage in module/apm so that it is more obvious which packages are not exported --- .../apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java | 2 +- .../elasticsearch/telemetry/apm/internal/APMAgentSettings.java | 2 +- .../telemetry/apm/internal/APMTelemetryProvider.java | 3 +-- .../telemetry/apm/{ => internal}/tracing/APMTracer.java | 2 +- .../elasticsearch/telemetry/apm/tracing/APMTracerTests.java | 1 + .../main/java/org/elasticsearch/plugins/TelemetryPlugin.java | 1 - .../java/org/elasticsearch/telemetry/TelemetryProvider.java | 1 + 7 files changed, 6 insertions(+), 6 deletions(-) rename modules/apm/src/main/java/org/elasticsearch/telemetry/apm/{ => internal}/tracing/APMTracer.java (99%) diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java index ed3b801c5752e..9f1285c05730b 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java @@ -27,7 +27,7 @@ import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.apm.internal.APMAgentSettings; import org.elasticsearch.telemetry.apm.internal.APMTelemetryProvider; -import org.elasticsearch.telemetry.apm.tracing.APMTracer; +import org.elasticsearch.telemetry.apm.internal.tracing.APMTracer; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettings.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettings.java index 425408270a417..75ca94bb13ad6 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettings.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettings.java @@ -17,7 +17,7 @@ import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.SuppressForbidden; -import org.elasticsearch.telemetry.apm.tracing.APMTracer; +import org.elasticsearch.telemetry.apm.internal.tracing.APMTracer; import java.security.AccessController; import java.security.PrivilegedAction; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMTelemetryProvider.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMTelemetryProvider.java index 4a98f2cbda690..495afd43bf176 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMTelemetryProvider.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/APMTelemetryProvider.java @@ -10,8 +10,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.apm.tracing.APMTracer; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.apm.internal.tracing.APMTracer; public class APMTelemetryProvider implements TelemetryProvider { private final Settings settings; diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/tracing/APMTracer.java similarity index 99% rename from modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java rename to modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/tracing/APMTracer.java index 7bac523e1aea1..daedb90047975 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/tracing/APMTracer.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/tracing/APMTracer.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm.tracing; +package org.elasticsearch.telemetry.apm.internal.tracing; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.OpenTelemetry; diff --git a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java index b87e77e5e43d5..27243afdc96b8 100644 --- a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java @@ -22,6 +22,7 @@ import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.tasks.Task; import org.elasticsearch.telemetry.apm.internal.APMAgentSettings; +import org.elasticsearch.telemetry.apm.internal.tracing.APMTracer; import org.elasticsearch.telemetry.tracing.SpanId; import org.elasticsearch.test.ESTestCase; diff --git a/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java index d1bf77e1b9525..4f47da99a3d5f 100644 --- a/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/TelemetryPlugin.java @@ -10,7 +10,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; public interface TelemetryPlugin { TelemetryProvider getTelemetryProvider(Settings settings); diff --git a/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java b/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java index b953874131321..0df8aeedac7f8 100644 --- a/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java +++ b/server/src/main/java/org/elasticsearch/telemetry/TelemetryProvider.java @@ -7,6 +7,7 @@ */ package org.elasticsearch.telemetry; + import org.elasticsearch.telemetry.tracing.Tracer; public interface TelemetryProvider { From 74dffd4ef1f8ffb3a0de2c7d6b00683c48c114a8 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Thu, 21 Sep 2023 10:18:42 +0200 Subject: [PATCH 15/18] create components --- .../analysis/common/CommonAnalysisPlugin.java | 4 ++-- .../common/PredicateTokenScriptFilterTests.java | 3 ++- .../common/ScriptedConditionTokenFilterTests.java | 3 ++- .../java/org/elasticsearch/telemetry/apm/APM.java | 3 +-- .../elasticsearch/datastreams/DataStreamsPlugin.java | 4 ++-- .../elasticsearch/ingest/geoip/IngestGeoIpPlugin.java | 4 ++-- .../org/elasticsearch/painless/PainlessPlugin.java | 4 ++-- .../java/org/elasticsearch/reindex/ReindexPlugin.java | 4 ++-- .../reindex/ReindexFromRemoteWithAuthTests.java | 4 ++-- .../repositories/azure/AzureRepositoryPlugin.java | 4 ++-- .../repositories/azure/AzureStorageServiceTests.java | 3 ++- .../repositories/s3/S3RepositoryPlugin.java | 4 ++-- .../plugin/repository/url/URLRepositoryPlugin.java | 4 ++-- .../runtimefields/RuntimeFieldsCommonPlugin.java | 4 ++-- .../java/org/elasticsearch/systemd/SystemdPlugin.java | 4 ++-- .../org/elasticsearch/systemd/SystemdPluginTests.java | 11 ++++++----- .../elasticsearch/cluster/SimpleClusterStateIT.java | 4 ++-- .../cluster/metadata/TemplateUpgradeServiceIT.java | 6 +++--- .../org/elasticsearch/health/GetHealthActionIT.java | 4 ++-- .../org/elasticsearch/health/HealthServiceIT.java | 4 ++-- .../java/org/elasticsearch/index/FinalPipelineIT.java | 4 ++-- .../org/elasticsearch/index/SettingsListenerIT.java | 4 ++-- .../elasticsearch/ingest/IngestAsyncProcessorIT.java | 4 ++-- server/src/main/java/org/elasticsearch/node/Node.java | 2 +- .../main/java/org/elasticsearch/plugins/Plugin.java | 6 +++--- .../test/java/org/elasticsearch/node/NodeTests.java | 4 ++-- .../plugins/PluginIntrospectorTests.java | 4 ++-- .../test/seektracker/SeekTrackerPlugin.java | 4 ++-- .../elasticsearch/test/MockIndexEventListener.java | 4 ++-- .../xpack/analytics/AnalyticsPlugin.java | 4 ++-- .../xpack/async/AsyncResultsIndexPlugin.java | 4 ++-- .../elasticsearch/xpack/autoscaling/Autoscaling.java | 4 ++-- .../main/java/org/elasticsearch/xpack/ccr/Ccr.java | 4 ++-- .../org/elasticsearch/xpack/core/XPackPlugin.java | 4 ++-- .../xpack/core/LocalStateCompositeXPackPlugin.java | 7 ++++--- .../elasticsearch/xpack/deprecation/Deprecation.java | 4 ++-- .../org/elasticsearch/xpack/enrich/EnrichPlugin.java | 4 ++-- .../xpack/application/EnterpriseSearch.java | 4 ++-- .../xpack/application/LocalStateEnterpriseSearch.java | 6 +++--- .../org/elasticsearch/xpack/eql/plugin/EqlPlugin.java | 4 ++-- .../elasticsearch/xpack/esql/plugin/EsqlPlugin.java | 4 ++-- .../java/org/elasticsearch/xpack/fleet/Fleet.java | 4 ++-- .../xpack/idp/IdentityProviderPlugin.java | 4 ++-- .../xpack/ilm/UpdateSettingsStepTests.java | 4 ++-- .../org/elasticsearch/xpack/ilm/IndexLifecycle.java | 4 ++-- .../xpack/inference/InferencePlugin.java | 4 ++-- .../org/elasticsearch/xpack/ml/MachineLearning.java | 4 ++-- .../elasticsearch/xpack/monitoring/Monitoring.java | 4 ++-- .../xpack/lucene/bwc/OldLuceneVersions.java | 4 ++-- .../xpack/profiling/ProfilingPlugin.java | 4 ++-- .../searchablesnapshots/SearchableSnapshots.java | 4 ++-- .../org/elasticsearch/xpack/security/Security.java | 3 ++- .../xpack/shutdown/NodeShutdownTasksIT.java | 4 ++-- .../elasticsearch/xpack/shutdown/ShutdownPlugin.java | 4 ++-- .../elasticsearch/xpack/slm/SnapshotLifecycle.java | 4 ++-- .../org/elasticsearch/xpack/sql/plugin/SqlPlugin.java | 4 ++-- .../org/elasticsearch/xpack/stack/StackPlugin.java | 4 ++-- .../org/elasticsearch/xpack/transform/Transform.java | 4 ++-- .../coordination/votingonly/VotingOnlyNodePlugin.java | 4 ++-- .../java/org/elasticsearch/xpack/watcher/Watcher.java | 4 ++-- .../xpack/watcher/WatcherPluginTests.java | 3 ++- 61 files changed, 129 insertions(+), 123 deletions(-) diff --git a/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java index 6baa2ddf6c972..dd2fbe8a19bab 100644 --- a/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java @@ -131,7 +131,7 @@ import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; import org.elasticsearch.synonyms.SynonymsManagementAPIService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -168,7 +168,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java index af7386ba9b629..7e8e00db773e1 100644 --- a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java +++ b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESTokenStreamTestCase; import org.elasticsearch.test.IndexSettingsModule; @@ -68,7 +69,7 @@ public FactoryType compile(Script script, ScriptContext FactoryType compile(Script script, ScriptContext createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer unused, + TelemetryProvider unused, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java b/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java index 3ec77b848d168..de128c685ae98 100644 --- a/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java +++ b/modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java @@ -70,7 +70,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -170,7 +170,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java b/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java index fd40643281da2..afc6fa8a1c92a 100644 --- a/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java +++ b/modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/IngestGeoIpPlugin.java @@ -48,7 +48,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -119,7 +119,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java b/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java index 34e5ed3a5e5b7..52eccbe0dce90 100644 --- a/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java +++ b/modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessPlugin.java @@ -43,7 +43,7 @@ import org.elasticsearch.script.ScriptEngine; import org.elasticsearch.script.ScriptModule; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -147,7 +147,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java b/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java index 569c510788b7f..e79f9bdaffee9 100644 --- a/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java +++ b/modules/reindex/src/main/java/org/elasticsearch/reindex/ReindexPlugin.java @@ -35,7 +35,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -100,7 +100,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java b/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java index 3be475a9483bf..55b7b2cc902cc 100644 --- a/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java +++ b/modules/reindex/src/test/java/org/elasticsearch/reindex/ReindexFromRemoteWithAuthTests.java @@ -45,7 +45,7 @@ import org.elasticsearch.rest.root.MainRestPlugin; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.netty4.Netty4Plugin; @@ -176,7 +176,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java b/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java index cc57692f7ba0c..f88a96e765827 100644 --- a/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java +++ b/modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java @@ -30,7 +30,7 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.repositories.Repository; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -96,7 +96,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceTests.java b/modules/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceTests.java index fad293030cbd2..ad20d4654f5ad 100644 --- a/modules/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceTests.java +++ b/modules/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.SettingsException; import org.elasticsearch.common.settings.SettingsModule; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.TestThreadPool; @@ -73,7 +74,7 @@ public void testReadSecuredSettings() { private AzureRepositoryPlugin pluginWithSettingsValidation(Settings settings) { final AzureRepositoryPlugin plugin = new AzureRepositoryPlugin(settings); new SettingsModule(settings, plugin.getSettings(), Collections.emptyList()); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); return plugin; } diff --git a/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java b/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java index 120d421fdf48c..62fe279726164 100644 --- a/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java +++ b/modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3RepositoryPlugin.java @@ -31,7 +31,7 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.repositories.Repository; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -102,7 +102,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java b/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java index 78044ae35c5a0..8057684375d69 100644 --- a/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java +++ b/modules/repository-url/src/main/java/org/elasticsearch/plugin/repository/url/URLRepositoryPlugin.java @@ -28,7 +28,7 @@ import org.elasticsearch.repositories.Repository; import org.elasticsearch.repositories.url.URLRepository; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -88,7 +88,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java b/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java index 2dc26f665633c..6cad1e057ef74 100644 --- a/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java +++ b/modules/runtime-fields-common/src/main/java/org/elasticsearch/runtimefields/RuntimeFieldsCommonPlugin.java @@ -22,7 +22,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -76,7 +76,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java b/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java index db119761641aa..f425de279129b 100644 --- a/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java +++ b/modules/systemd/src/main/java/org/elasticsearch/systemd/SystemdPlugin.java @@ -26,7 +26,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.Scheduler; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -92,7 +92,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/modules/systemd/src/test/java/org/elasticsearch/systemd/SystemdPluginTests.java b/modules/systemd/src/test/java/org/elasticsearch/systemd/SystemdPluginTests.java index 3b7318c8d20f2..40fb81b698c10 100644 --- a/modules/systemd/src/test/java/org/elasticsearch/systemd/SystemdPluginTests.java +++ b/modules/systemd/src/test/java/org/elasticsearch/systemd/SystemdPluginTests.java @@ -12,6 +12,7 @@ import org.elasticsearch.common.util.concurrent.EsExecutors; import org.elasticsearch.core.CheckedConsumer; import org.elasticsearch.core.TimeValue; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.hamcrest.OptionalMatchers; @@ -60,28 +61,28 @@ public class SystemdPluginTests extends ESTestCase { public void testIsEnabled() { final SystemdPlugin plugin = new SystemdPlugin(false, randomPackageBuildType, Boolean.TRUE.toString()); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); assertTrue(plugin.isEnabled()); assertNotNull(plugin.extender()); } public void testIsNotPackageDistribution() { final SystemdPlugin plugin = new SystemdPlugin(false, randomNonPackageBuildType, Boolean.TRUE.toString()); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); assertFalse(plugin.isEnabled()); assertNull(plugin.extender()); } public void testIsImplicitlyNotEnabled() { final SystemdPlugin plugin = new SystemdPlugin(false, randomPackageBuildType, null); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); assertFalse(plugin.isEnabled()); assertNull(plugin.extender()); } public void testIsExplicitlyNotEnabled() { final SystemdPlugin plugin = new SystemdPlugin(false, randomPackageBuildType, Boolean.FALSE.toString()); - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); assertFalse(plugin.isEnabled()); assertNull(plugin.extender()); } @@ -169,7 +170,7 @@ int sd_notify(final int unset_environment, final String state) { } }; - plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null); + plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null); if (Boolean.TRUE.toString().equals(esSDNotify)) { assertNotNull(plugin.extender()); } else { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java index 58b824e4676f2..5731163def260 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java @@ -37,7 +37,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -415,7 +415,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java index 448bfdb301aeb..aff04ca521844 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java @@ -22,7 +22,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -77,7 +77,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -96,7 +96,7 @@ public Collection createComponents( namedWriteableRegistry, expressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java index de42c95d79476..11d32bb231a01 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/health/GetHealthActionIT.java @@ -27,7 +27,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -107,7 +107,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java index a4333d51163dc..707644e28228a 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/health/HealthServiceIT.java @@ -27,7 +27,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.threadpool.ThreadPool; @@ -136,7 +136,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java index 60a1e7b5bddbc..165242128ca8a 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java @@ -38,7 +38,7 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -405,7 +405,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java index bbb6ae9d16fc5..fb0e3478c2cde 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java @@ -22,7 +22,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; import org.elasticsearch.threadpool.ThreadPool; @@ -75,7 +75,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java index f5453c8ddf1f1..f8d2b0e464b72 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestAsyncProcessorIT.java @@ -27,7 +27,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -97,7 +97,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/main/java/org/elasticsearch/node/Node.java b/server/src/main/java/org/elasticsearch/node/Node.java index 2c17aff4bd197..4159da6c49575 100644 --- a/server/src/main/java/org/elasticsearch/node/Node.java +++ b/server/src/main/java/org/elasticsearch/node/Node.java @@ -758,7 +758,7 @@ protected Node( namedWriteableRegistry, clusterModule.getIndexNameExpressionResolver(), repositoriesServiceReference::get, - tracer, + telemetryProvider, clusterModule.getAllocationService(), indicesService ) diff --git a/server/src/main/java/org/elasticsearch/plugins/Plugin.java b/server/src/main/java/org/elasticsearch/plugins/Plugin.java index 83e620aa30d12..bd5d8e9220517 100644 --- a/server/src/main/java/org/elasticsearch/plugins/Plugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/Plugin.java @@ -26,7 +26,7 @@ import org.elasticsearch.indices.IndicesService; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -81,7 +81,7 @@ public abstract class Plugin implements Closeable { * @param indexNameExpressionResolver A service that resolves expression to index and alias names * @param repositoriesServiceSupplier A supplier for the service that manages snapshot repositories; will return null when this method * is called, but will return the repositories service once the node is initialized. - * @param tracer An interface for distributed tracing + * @param telemetryProvider An interface for distributed tracing * @param allocationService A service to manage shard allocation in the cluster * @param indicesService A service to manage indices in the cluster */ @@ -97,7 +97,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/test/java/org/elasticsearch/node/NodeTests.java b/server/src/test/java/org/elasticsearch/node/NodeTests.java index 87f5fc6e990f6..24bbca6ddf512 100644 --- a/server/src/test/java/org/elasticsearch/node/NodeTests.java +++ b/server/src/test/java/org/elasticsearch/node/NodeTests.java @@ -47,7 +47,7 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.test.MockHttpTransport; @@ -454,7 +454,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java b/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java index 693b7b0fb0981..c5e974c4abcfd 100644 --- a/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java +++ b/server/src/test/java/org/elasticsearch/plugins/PluginIntrospectorTests.java @@ -32,7 +32,7 @@ import org.elasticsearch.ingest.Processor; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.PrivilegedOperations; import org.elasticsearch.test.compiler.InMemoryJavaCompiler; @@ -271,7 +271,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java b/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java index 2ff2b655cc21a..cc68a3e3ba0cd 100644 --- a/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java +++ b/test/external-modules/seek-tracking-directory/src/main/java/org/elasticsearch/test/seektracker/SeekTrackerPlugin.java @@ -31,7 +31,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -75,7 +75,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java b/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java index 385778abdbc5c..9b9f464d8dff3 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java +++ b/test/framework/src/main/java/org/elasticsearch/test/MockIndexEventListener.java @@ -32,7 +32,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -88,7 +88,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java index 595dd48aaf32b..9360f97990c82 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java @@ -25,7 +25,7 @@ import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -187,7 +187,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java b/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java index 9d402eef3b55e..a0e6d0daac322 100644 --- a/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java +++ b/x-pack/plugin/async/src/main/java/org/elasticsearch/xpack/async/AsyncResultsIndexPlugin.java @@ -23,7 +23,7 @@ import org.elasticsearch.plugins.SystemIndexPlugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -73,7 +73,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java b/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java index cd95958e31b3e..e2fc1707c0499 100644 --- a/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java +++ b/x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/Autoscaling.java @@ -36,7 +36,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -119,7 +119,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java index 63fcabb98672a..a139b9a55f1be 100644 --- a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java +++ b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/Ccr.java @@ -50,7 +50,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.tasks.Task; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -189,7 +189,7 @@ public Collection createComponents( final NamedWriteableRegistry namedWriteableRegistry, final IndexNameExpressionResolver expressionResolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java index 721b909e1d3c7..1c8881637d4c6 100644 --- a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java +++ b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackPlugin.java @@ -89,7 +89,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -333,7 +333,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java index d9495afebcab8..afc64140004c7 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java @@ -90,6 +90,7 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.internal.ShardSearchRequest; import org.elasticsearch.snapshots.Snapshot; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -204,7 +205,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -221,7 +222,7 @@ public Collection createComponents( namedWriteableRegistry, expressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ) @@ -241,7 +242,7 @@ public Collection createComponents( namedWriteableRegistry, expressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ) diff --git a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java index 117c7d1265234..349ff1042d3a9 100644 --- a/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java +++ b/x-pack/plugin/deprecation/src/main/java/org/elasticsearch/xpack/deprecation/Deprecation.java @@ -29,7 +29,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -100,7 +100,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java index dcb9e53f1a671..5fb20a883560f 100644 --- a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java +++ b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPlugin.java @@ -35,7 +35,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -201,7 +201,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java index 19ad17d517cc9..ad2c033b0ee0c 100644 --- a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java +++ b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/EnterpriseSearch.java @@ -35,7 +35,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -209,7 +209,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java index d137f6e719ee3..f10480e9f64a7 100644 --- a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java +++ b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/LocalStateEnterpriseSearch.java @@ -30,7 +30,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -114,7 +114,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { @@ -130,7 +130,7 @@ public Collection createComponents( namedWriteableRegistry, indexNameExpressionResolver, repositoriesServiceSupplier, - tracer, + telemetryProvider, allocationService, indicesService ); diff --git a/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java b/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java index 3a18983c8d5a5..d65a81db11266 100644 --- a/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java +++ b/x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plugin/EqlPlugin.java @@ -34,7 +34,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -83,7 +83,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java index 3eec19961d597..783f5550a00af 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java @@ -39,7 +39,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -89,7 +89,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java b/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java index 1a088f9aa1de7..0cfa3c43b6b5a 100644 --- a/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java +++ b/x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/Fleet.java @@ -43,7 +43,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -112,7 +112,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java b/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java index 3261ac9d9bdb5..943394f326653 100644 --- a/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java +++ b/x-pack/plugin/identity-provider/src/main/java/org/elasticsearch/xpack/idp/IdentityProviderPlugin.java @@ -32,7 +32,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -98,7 +98,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java b/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java index 18bf02fdfd8a1..06ac4673264f3 100644 --- a/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java +++ b/x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/UpdateSettingsStepTests.java @@ -26,7 +26,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -74,7 +74,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java b/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java index 6cd807db27566..6409c2b72e1f1 100644 --- a/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java +++ b/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycle.java @@ -38,7 +38,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -166,7 +166,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java index aa3f6e6634678..a5b0754a7f178 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java @@ -33,7 +33,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -116,7 +116,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java index 9b8009e234911..d527f998a1ee8 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java @@ -77,7 +77,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -907,7 +907,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java b/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java index 2189d759842f4..47e24b60896da 100644 --- a/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java +++ b/x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java @@ -34,7 +34,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -130,7 +130,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java b/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java index 43d7bbdec4178..8808482d2256f 100644 --- a/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java +++ b/x-pack/plugin/old-lucene-versions/src/main/java/org/elasticsearch/xpack/lucene/bwc/OldLuceneVersions.java @@ -57,7 +57,7 @@ import org.elasticsearch.snapshots.Snapshot; import org.elasticsearch.snapshots.SnapshotRestoreException; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -102,7 +102,7 @@ public Collection createComponents( final NamedWriteableRegistry registry, final IndexNameExpressionResolver resolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java b/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java index 037f57b36d547..9ef887ecf5639 100644 --- a/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java +++ b/x-pack/plugin/profiling/src/main/java/org/elasticsearch/xpack/profiling/ProfilingPlugin.java @@ -33,7 +33,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -90,7 +90,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java index fd28dd9048275..acd9ad9e85f50 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/SearchableSnapshots.java @@ -70,7 +70,7 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.snapshots.SearchableSnapshotsSettings; import org.elasticsearch.snapshots.sourceonly.SourceOnlySnapshotRepository; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.ScalingExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -331,7 +331,7 @@ public Collection createComponents( final NamedWriteableRegistry registry, final IndexNameExpressionResolver resolver, final Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java index 9a16785c39dfc..39b62da317b9b 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java @@ -90,6 +90,7 @@ import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.internal.ShardSearchRequest; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; @@ -635,7 +636,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java b/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java index c8838194f461d..6c5e1e6af69ce 100644 --- a/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java +++ b/x-pack/plugin/shutdown/src/internalClusterTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownTasksIT.java @@ -40,7 +40,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; @@ -146,7 +146,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java b/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java index 55af966b4d7e1..754ba7970eaa2 100644 --- a/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java +++ b/x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/ShutdownPlugin.java @@ -28,7 +28,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -53,7 +53,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java b/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java index aa39ec1968ff0..ba743005bf2df 100644 --- a/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java +++ b/x-pack/plugin/slm/src/main/java/org/elasticsearch/xpack/slm/SnapshotLifecycle.java @@ -37,7 +37,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -135,7 +135,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java index 6b0500162b567..8f39ce939a51c 100644 --- a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java +++ b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/plugin/SqlPlugin.java @@ -31,7 +31,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -99,7 +99,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java index 8c16ad6057706..de0858e59900c 100644 --- a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java +++ b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackPlugin.java @@ -20,7 +20,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -55,7 +55,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java index 05546d9b1345b..c1964448c2662 100644 --- a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java +++ b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/Transform.java @@ -49,7 +49,7 @@ import org.elasticsearch.rest.RestHandler; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -241,7 +241,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java b/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java index b6b3a709924aa..1fee6eda5ad6d 100644 --- a/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java +++ b/x-pack/plugin/voting-only-node/src/main/java/org/elasticsearch/cluster/coordination/votingonly/VotingOnlyNodePlugin.java @@ -36,7 +36,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.repositories.RepositoriesService; import org.elasticsearch.script.ScriptService; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; @@ -96,7 +96,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java b/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java index e9a8e04b57c73..0c8690cc62e5f 100644 --- a/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java +++ b/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/Watcher.java @@ -54,7 +54,7 @@ import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; import org.elasticsearch.script.TemplateScript; -import org.elasticsearch.telemetry.tracing.Tracer; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.threadpool.ExecutorBuilder; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.ThreadPool; @@ -317,7 +317,7 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver expressionResolver, Supplier repositoriesServiceSupplier, - Tracer tracer, + TelemetryProvider telemetryProvider, AllocationService allocationService, IndicesService indicesService ) { diff --git a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java index a427b8bfcfee2..ec7af7b35619e 100644 --- a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java +++ b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java @@ -15,6 +15,7 @@ import org.elasticsearch.indices.SystemIndexDescriptor; import org.elasticsearch.indices.TestIndexNameExpressionResolver; import org.elasticsearch.plugins.internal.DocumentParsingObserver; +import org.elasticsearch.telemetry.TelemetryProvider; import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.IndexSettingsModule; @@ -75,7 +76,7 @@ public void testWatcherDisabledTests() throws Exception { // also no component creation if not enabled assertThat( - watcher.createComponents(null, null, null, null, null, null, null, null, null, null, null, Tracer.NOOP, null, null), + watcher.createComponents(null, null, null, null, null, null, null, null, null, null, null, TelemetryProvider.NOOP, null, null), hasSize(0) ); From ad707567a1d34677a386167b0d541764c4b2c348 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Thu, 21 Sep 2023 10:21:11 +0200 Subject: [PATCH 16/18] compile fix in test --- .../apm/{settings => internal}/APMAgentSettingsTests.java | 3 +-- .../telemetry/apm/{ => internal}/tracing/APMTracerTests.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) rename modules/apm/src/test/java/org/elasticsearch/telemetry/apm/{settings => internal}/APMAgentSettingsTests.java (97%) rename modules/apm/src/test/java/org/elasticsearch/telemetry/apm/{ => internal}/tracing/APMTracerTests.java (99%) diff --git a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettingsTests.java similarity index 97% rename from modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java rename to modules/apm/src/test/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettingsTests.java index afac73b870e41..b22a57bb9bf0c 100644 --- a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/settings/APMAgentSettingsTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/internal/APMAgentSettingsTests.java @@ -6,10 +6,9 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm.settings; +package org.elasticsearch.telemetry.apm.internal; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.telemetry.apm.internal.APMAgentSettings; import org.elasticsearch.test.ESTestCase; import static org.mockito.Mockito.spy; diff --git a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/internal/tracing/APMTracerTests.java similarity index 99% rename from modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java rename to modules/apm/src/test/java/org/elasticsearch/telemetry/apm/internal/tracing/APMTracerTests.java index 27243afdc96b8..8cb94b782756d 100644 --- a/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/tracing/APMTracerTests.java +++ b/modules/apm/src/test/java/org/elasticsearch/telemetry/apm/internal/tracing/APMTracerTests.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.telemetry.apm.tracing; +package org.elasticsearch.telemetry.apm.internal.tracing; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; @@ -22,7 +22,6 @@ import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.tasks.Task; import org.elasticsearch.telemetry.apm.internal.APMAgentSettings; -import org.elasticsearch.telemetry.apm.internal.tracing.APMTracer; import org.elasticsearch.telemetry.tracing.SpanId; import org.elasticsearch.test.ESTestCase; From 15fd6d1009ddb8123a76debd70826e64b71fc851 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gomulka Date: Thu, 21 Sep 2023 10:29:11 +0200 Subject: [PATCH 17/18] use telemetryplugin.noop --- .../PredicateTokenScriptFilterTests.java | 18 ++++++++++++++++-- .../ScriptedConditionTokenFilterTests.java | 18 ++++++++++++++++-- .../azure/AzureStorageServiceTests.java | 1 - .../systemd/SystemdPluginTests.java | 1 - .../xpack/watcher/WatcherPluginTests.java | 1 - 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java index 7e8e00db773e1..7b60c1a64abb6 100644 --- a/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java +++ b/modules/analysis-common/src/test/java/org/elasticsearch/analysis/common/PredicateTokenScriptFilterTests.java @@ -29,7 +29,6 @@ import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptService; import org.elasticsearch.telemetry.TelemetryProvider; -import org.elasticsearch.telemetry.tracing.Tracer; import org.elasticsearch.test.ESTokenStreamTestCase; import org.elasticsearch.test.IndexSettingsModule; import org.elasticsearch.threadpool.ThreadPool; @@ -69,7 +68,22 @@ public FactoryType compile(Script script, ScriptContext FactoryType compile(Script script, ScriptContext Date: Thu, 21 Sep 2023 18:23:30 +0200 Subject: [PATCH 18/18] half done swtichable instruments --- modules/apm/build.gradle | 2 + .../apm/internal/metrics/APMMetric.java | 64 ++++++++++--------- .../internal/metrics/OtelDoubleCounter.java | 34 ++++++---- .../apm/internal/metrics/OtelDoubleGauge.java | 28 ++++---- .../internal/metrics/OtelDoubleHistogram.java | 25 +++++--- .../metrics/OtelDoubleUpDownCounter.java | 30 +++++---- .../apm/internal/metrics/OtelLongCounter.java | 10 ++- .../apm/internal/metrics/OtelLongGauge.java | 6 +- .../internal/metrics/OtelLongHistogram.java | 7 +- .../metrics/OtelLongUpDownCounter.java | 7 +- .../metrics/SwitchableInstrument.java | 45 +++++++++++++ 11 files changed, 173 insertions(+), 85 deletions(-) create mode 100644 modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/SwitchableInstrument.java diff --git a/modules/apm/build.gradle b/modules/apm/build.gradle index 83ab0b84bf8c5..667e6a8d1c0dc 100644 --- a/modules/apm/build.gradle +++ b/modules/apm/build.gradle @@ -24,6 +24,8 @@ dependencies { implementation "io.opentelemetry:opentelemetry-api:${otelVersion}" implementation "io.opentelemetry:opentelemetry-context:${otelVersion}" implementation "io.opentelemetry:opentelemetry-semconv:${otelVersion}-alpha" + implementation "org.apache.logging.log4j:log4j-api:${versions.log4j}" + runtimeOnly "co.elastic.apm:elastic-apm-agent:1.42.1-SNAPSHOT" } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/APMMetric.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/APMMetric.java index c4b4b2fc96a30..43efdef640594 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/APMMetric.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/APMMetric.java @@ -27,11 +27,14 @@ import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.atomic.AtomicReference; import static org.elasticsearch.telemetry.apm.internal.APMAgentSettings.APM_ENABLED_SETTING; public class APMMetric extends AbstractLifecycleComponent implements org.elasticsearch.telemetry.metric.Metric { + private final InstrumentRegistrar doubleCounters = new InstrumentRegistrar<>(); private final InstrumentRegistrar doubleUpDownCounters = new InstrumentRegistrar<>(); private final InstrumentRegistrar doubleGauges = new InstrumentRegistrar<>(); @@ -43,6 +46,8 @@ public class APMMetric extends AbstractLifecycleComponent implements org.elastic private volatile boolean enabled; private AtomicReference services = new AtomicReference<>(); + private final List allRegisteredInstruments = new ArrayList<>(); + record APMServices(Meter meter, OpenTelemetry openTelemetry) {} // TODO remove duplication between APMTracer and APMMetric. enabled, create apm services etc @@ -54,9 +59,12 @@ public void setEnabled(boolean enabled) { this.enabled = enabled; if (enabled) { createApmServices(); + allRegisteredInstruments.forEach(si -> si.setEnabled(true)); } else { + allRegisteredInstruments.forEach(si -> si.setEnabled(false)); destroyApmServices(); } + } @Override @@ -76,51 +84,35 @@ protected void doClose() {} @Override public DoubleCounter registerDoubleCounter(MetricName name, String description, T unit) { - var lazyCounter = new LazyInitializable<>( - () -> services.get().meter.counterBuilder(name.getRawName()) - .ofDoubles() - .setDescription(description) - .setUnit(unit.toString()) - .build() - ); - var counter = OtelDoubleCounter.build(lazyCounter, name, description, unit); + var counter = OtelDoubleCounter.build(()->services.get().meter, name, description, unit); doubleCounters.register(counter); + allRegisteredInstruments.add(counter); return counter; } @Override public DoubleUpDownCounter registerDoubleUpDownCounter(MetricName name, String description, T unit) { - var lazyCounter = new LazyInitializable<>( - () -> services.get().meter.upDownCounterBuilder(name.getRawName()) - .ofDoubles() - .setDescription(description) - .setUnit(unit.toString()) - .build() - ); - var counter = OtelDoubleUpDownCounter.build(lazyCounter, name, description, unit); + var counter = OtelDoubleUpDownCounter.build(services.get().meter, name, description, unit); doubleUpDownCounters.register(counter); + allRegisteredInstruments.add(counter); + return counter; } @Override public DoubleGauge registerDoubleGauge(MetricName name, String description, T unit) { - var lazyGauge = new LazyInitializable<>( - () -> services.get().meter.gaugeBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).buildObserver() - ); - - var gauge = OtelDoubleGauge.build(lazyGauge, name, description, unit); + var gauge = OtelDoubleGauge.build(services.get().meter, name, description, unit); doubleGauges.register(gauge); + allRegisteredInstruments.add(gauge); + return gauge; } @Override public DoubleHistogram registerDoubleHistogram(MetricName name, String description, T unit) { - var lazyHistogram = new LazyInitializable<>( - () -> services.get().meter.histogramBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() - ); - - var histogram = OtelDoubleHistogram.build(lazyHistogram, name, description, unit); + var histogram = OtelDoubleHistogram.build(services.get().meter, name, description, unit); doubleHistograms.register(histogram); + allRegisteredInstruments.add(histogram); return histogram; } @@ -129,23 +121,29 @@ public LongCounter registerLongCounter(MetricName name, String description, var lazyCounter = new LazyInitializable<>( () -> services.get().meter.counterBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() ); - var counter = OtelLongCounter.build(lazyCounter, name, description, unit); + var counter = OtelLongCounter.build(lazyCounter,services.get().meter, name, description, unit); longCounters.register(counter); + allRegisteredInstruments.add(counter); + return counter; } @Override public LongUpDownCounter registerLongUpDownCounter(MetricName name, String description, T unit) { + var lazyCounter = new LazyInitializable<>( () -> services.get().meter.upDownCounterBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build() ); - var counter = OtelLongUpDownCounter.build(lazyCounter, name, description, unit); + var counter = OtelLongUpDownCounter.build(lazyCounter,services.get().meter, name, description, unit); longUpDownCounters.register(counter); + allRegisteredInstruments.add(counter); + return counter; } @Override public LongGauge registerLongGauge(MetricName name, String description, T unit) { + var lazyGauge = new LazyInitializable<>( () -> services.get().meter.gaugeBuilder(name.getRawName()) .ofLongs() @@ -154,13 +152,16 @@ public LongGauge registerLongGauge(MetricName name, String description, T un .buildObserver() ); - var gauge = OtelLongGauge.build(lazyGauge, name, description, unit); + var gauge = OtelLongGauge.build(lazyGauge, services.get().meter, name, description, unit); longGauges.register(gauge); + allRegisteredInstruments.add(gauge); + return gauge; } @Override public LongHistogram registerLongHistogram(MetricName name, String description, T unit) { + var lazyHistogram = new LazyInitializable<>( () -> services.get().meter.histogramBuilder(name.getRawName()) .ofLongs() @@ -169,8 +170,10 @@ public LongHistogram registerLongHistogram(MetricName name, String descripti .build() ); - var histogram = OtelLongHistogram.build(lazyHistogram, name, description, unit); + var histogram = OtelLongHistogram.build(lazyHistogram,services.get().meter, name, description, unit); longHistograms.register(histogram); + allRegisteredInstruments.add(histogram); + return histogram; } @@ -183,7 +186,6 @@ void createApmServices() { var meter = openTelemetry.getMeter("elasticsearch"); this.services.set(new APMServices(meter, openTelemetry)); - return null; }); } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleCounter.java index 9dd38c733efee..7a6080fd4304f 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleCounter.java @@ -8,34 +8,44 @@ package org.elasticsearch.telemetry.apm.internal.metrics; -import io.opentelemetry.api.metrics.DoubleCounter; +import io.opentelemetry.api.metrics.Meter; -import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.telemetry.MetricName; +import org.elasticsearch.telemetry.metric.DoubleCounter; import java.util.Map; +import java.util.function.Function; -public class OtelDoubleCounter implements org.elasticsearch.telemetry.metric.DoubleCounter { - private final LazyInitializable counter; +public class OtelDoubleCounter extends SwitchableInstrument implements DoubleCounter { private final MetricName name; private final String description; private final T unit; - private OtelDoubleCounter(LazyInitializable lazyCounter, MetricName name, String description, T unit) { - this.counter = lazyCounter; + private OtelDoubleCounter( + Function producer, + Meter meter, + MetricName name, + String description, + T unit + ) { + super(producer, meter); this.name = name; this.description = description; this.unit = unit; } - public static OtelDoubleCounter build( - LazyInitializable lazyCounter, + public static OtelDoubleCounter build(Meter meter, MetricName name, String description, T unit) { + return new OtelDoubleCounter<>((m) -> createInstrument(m, name, description, unit), meter, name, description, unit); + } + + private static io.opentelemetry.api.metrics.DoubleCounter createInstrument( + Meter meter, MetricName name, String description, T unit ) { - return new OtelDoubleCounter<>(lazyCounter, name, description, unit); + return meter.counterBuilder(name.getRawName()).ofDoubles().setDescription(description).setUnit(unit.toString()).build(); } @Override @@ -45,19 +55,19 @@ public MetricName getName() { @Override public void increment() { - counter.getOrCompute().add(1d); + getInstrument().add(1d); } @Override public void incrementBy(double inc) { assert inc >= 0; - counter.getOrCompute().add(inc); + getInstrument().add(inc); } @Override public void incrementBy(double inc, Map attributes) { assert inc >= 0; - counter.getOrCompute().add(inc, OtelHelper.fromMap(attributes)); + getInstrument().add(inc, OtelHelper.fromMap(attributes)); } @Override diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleGauge.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleGauge.java index 48ce37b35bd22..3d05a422216ae 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleGauge.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleGauge.java @@ -8,39 +8,39 @@ package org.elasticsearch.telemetry.apm.internal.metrics; +import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.api.metrics.ObservableDoubleMeasurement; -import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.telemetry.MetricName; import org.elasticsearch.telemetry.metric.DoubleGauge; import java.util.Map; +import java.util.function.Function; -public class OtelDoubleGauge implements DoubleGauge { - private final LazyInitializable gauge; +public class OtelDoubleGauge extends SwitchableInstrument implements DoubleGauge { private final MetricName name; private final String description; private final T unit; private OtelDoubleGauge( - LazyInitializable gauge, + Function instrumentProducer, + Meter meter, MetricName name, String description, T unit ) { - this.gauge = gauge; + super(instrumentProducer, meter); this.name = name; this.description = description; this.unit = unit; } - public static OtelDoubleGauge build( - LazyInitializable lazyGauge, - MetricName name, - String description, - T unit - ) { - return new OtelDoubleGauge<>(lazyGauge, name, description, unit); + public static OtelDoubleGauge build(Meter meter, MetricName name, String description, T unit) { + return new OtelDoubleGauge<>((m) -> createInstrument(meter, name, description, unit), meter, name, description, unit); + } + + private static ObservableDoubleMeasurement createInstrument(Meter meter, MetricName name, String description, T unit) { + return meter.gaugeBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).buildObserver(); } @Override @@ -50,11 +50,11 @@ public MetricName getName() { @Override public void record(double value) { - gauge.getOrCompute().record(value); + getInstrument().record(value); } @Override public void record(double value, Map attributes) { - gauge.getOrCompute().record(value, OtelHelper.fromMap(attributes)); + getInstrument().record(value, OtelHelper.fromMap(attributes)); } } diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleHistogram.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleHistogram.java index 80d90878ca3a2..059a302657869 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleHistogram.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleHistogram.java @@ -8,38 +8,47 @@ package org.elasticsearch.telemetry.apm.internal.metrics; +import io.opentelemetry.api.metrics.Meter; + import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.telemetry.MetricName; import org.elasticsearch.telemetry.metric.DoubleHistogram; import java.util.Map; +import java.util.function.Function; -public class OtelDoubleHistogram implements DoubleHistogram { - private final LazyInitializable histogram; +public class OtelDoubleHistogram extends SwitchableInstrument implements DoubleHistogram { private final MetricName name; private final String description; private final T unit; public OtelDoubleHistogram( - LazyInitializable histogram, + Function instrumentProducer, + Meter meter, MetricName name, String description, T unit ) { - this.histogram = histogram; + super(instrumentProducer, meter); this.name = name; this.description = description; this.unit = unit; } public static OtelDoubleHistogram build( - LazyInitializable lazyHistogram, + Meter meter, MetricName name, String description, T unit ) { - return new OtelDoubleHistogram<>(lazyHistogram, name, description, unit); + return new OtelDoubleHistogram<>( + (m) -> createInstrument(m, name, description, unit) + , meter, name, description, unit); + } + + private static io.opentelemetry.api.metrics.DoubleHistogram createInstrument(Meter meter, MetricName name, String description, T unit) { + return meter.histogramBuilder(name.getRawName()).setDescription(description).setUnit(unit.toString()).build(); } @Override @@ -49,12 +58,12 @@ public MetricName getName() { @Override public void record(double value) { - histogram.getOrCompute().record(value); + getInstrument().record(value); } @Override public void record(double value, Map attributes) { - histogram.getOrCompute().record(value, OtelHelper.fromMap(attributes)); + getInstrument().record(value, OtelHelper.fromMap(attributes)); } @Override diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleUpDownCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleUpDownCounter.java index f9b1e38490313..350512b5f7180 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleUpDownCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelDoubleUpDownCounter.java @@ -9,38 +9,40 @@ package org.elasticsearch.telemetry.apm.internal.metrics; import io.opentelemetry.api.metrics.DoubleUpDownCounter; +import io.opentelemetry.api.metrics.Meter; -import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.telemetry.MetricName; import java.util.Map; +import java.util.function.Function; -public class OtelDoubleUpDownCounter implements org.elasticsearch.telemetry.metric.DoubleUpDownCounter { - private final LazyInitializable counter; +public class OtelDoubleUpDownCounter extends SwitchableInstrument + implements + org.elasticsearch.telemetry.metric.DoubleUpDownCounter { private final MetricName name; private final String description; private final T unit; private OtelDoubleUpDownCounter( - LazyInitializable lazyCounter, + Function instanceProducer, + Meter metric, MetricName name, String description, T unit ) { - this.counter = lazyCounter; + super(instanceProducer, metric); this.name = name; this.description = description; this.unit = unit; } - public static OtelDoubleUpDownCounter build( - LazyInitializable lazyCounter, - MetricName name, - String description, - T unit - ) { - return new OtelDoubleUpDownCounter<>(lazyCounter, name, description, unit); + public static OtelDoubleUpDownCounter build(Meter meter, MetricName name, String description, T unit) { + return new OtelDoubleUpDownCounter<>((m) -> createInstrument(m, name, description, unit), meter, name, description, unit); + } + + private static DoubleUpDownCounter createInstrument(Meter meter, MetricName name, String description, T unit) { + return meter.upDownCounterBuilder(name.getRawName()).ofDoubles().setDescription(description).setUnit(unit.toString()).build(); } @Override @@ -50,12 +52,12 @@ public MetricName getName() { @Override public void add(double inc) { - counter.getOrCompute().add(inc); + getInstrument().add(inc); } @Override public void add(double inc, Map attributes) { - counter.getOrCompute().add(inc, OtelHelper.fromMap(attributes)); + getInstrument().add(inc, OtelHelper.fromMap(attributes)); } @Override diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongCounter.java index 8f764aa77b6b2..2d47c33591652 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongCounter.java @@ -10,19 +10,22 @@ import io.opentelemetry.api.metrics.LongCounter; +import io.opentelemetry.api.metrics.Meter; + import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.telemetry.MetricName; import java.util.Map; -public class OtelLongCounter implements org.elasticsearch.telemetry.metric.LongCounter { +public class OtelLongCounter extends SwitchableInstrument implements org.elasticsearch.telemetry.metric.LongCounter { private final LazyInitializable counter; private final MetricName name; private final String description; private final T unit; - private OtelLongCounter(LazyInitializable lazyCounter, MetricName name, String description, T unit) { + private OtelLongCounter(LazyInitializable lazyCounter, MetricName name, String description, T unit, Meter meter) { + super(null, null); this.counter = lazyCounter; this.name = name; this.description = description; @@ -31,11 +34,12 @@ private OtelLongCounter(LazyInitializable lazyCou public static OtelLongCounter build( LazyInitializable lazyCounter, + Meter meter, MetricName name, String description, T unit ) { - return new OtelLongCounter<>(lazyCounter, name, description, unit); + return new OtelLongCounter<>(lazyCounter, name, description, unit, meter); } @Override diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongGauge.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongGauge.java index 50ab085da6da9..628837d8e166e 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongGauge.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongGauge.java @@ -8,6 +8,7 @@ package org.elasticsearch.telemetry.apm.internal.metrics; +import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.api.metrics.ObservableLongMeasurement; import org.elasticsearch.common.util.LazyInitializable; @@ -15,7 +16,7 @@ import java.util.Map; -public class OtelLongGauge implements org.elasticsearch.telemetry.metric.LongGauge { +public class OtelLongGauge extends SwitchableInstrument implements org.elasticsearch.telemetry.metric.LongGauge { private final LazyInitializable gauge; private final MetricName name; private final String description; @@ -27,6 +28,8 @@ private OtelLongGauge( String description, T unit ) { + super(null, null); + this.gauge = gauge; this.name = name; this.description = description; @@ -35,6 +38,7 @@ private OtelLongGauge( public static OtelLongGauge build( LazyInitializable lazyGauge, + Meter meter, MetricName name, String description, T unit diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongHistogram.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongHistogram.java index 3e431ce9736bb..ae503ea8953a0 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongHistogram.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongHistogram.java @@ -8,13 +8,15 @@ package org.elasticsearch.telemetry.apm.internal.metrics; +import io.opentelemetry.api.metrics.Meter; + import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.telemetry.MetricName; import java.util.Map; -public class OtelLongHistogram implements org.elasticsearch.telemetry.metric.LongHistogram { +public class OtelLongHistogram extends SwitchableInstrument implements org.elasticsearch.telemetry.metric.LongHistogram { private final LazyInitializable histogram; private final MetricName name; private final String description; @@ -26,6 +28,8 @@ public OtelLongHistogram( String description, T unit ) { + super(null, null); + this.histogram = histogram; this.name = name; this.description = description; @@ -34,6 +38,7 @@ public OtelLongHistogram( public static OtelLongHistogram build( LazyInitializable lazyHistogram, + Meter meter, MetricName name, String description, T unit diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongUpDownCounter.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongUpDownCounter.java index bfe5b21bfb0d2..b8e5edee58a54 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongUpDownCounter.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/OtelLongUpDownCounter.java @@ -10,13 +10,15 @@ import io.opentelemetry.api.metrics.LongUpDownCounter; +import io.opentelemetry.api.metrics.Meter; + import org.elasticsearch.common.util.LazyInitializable; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.telemetry.MetricName; import java.util.Map; -public class OtelLongUpDownCounter implements org.elasticsearch.telemetry.metric.LongUpDownCounter { +public class OtelLongUpDownCounter extends SwitchableInstrument implements org.elasticsearch.telemetry.metric.LongUpDownCounter { private final LazyInitializable counter; private final MetricName name; private final String description; @@ -28,6 +30,8 @@ private OtelLongUpDownCounter( String description, T unit ) { + super(null, null); + this.counter = lazyCounter; this.name = name; this.description = description; @@ -36,6 +40,7 @@ private OtelLongUpDownCounter( public static OtelLongUpDownCounter build( LazyInitializable lazyCounter, + Meter meter, MetricName name, String description, T unit diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/SwitchableInstrument.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/SwitchableInstrument.java new file mode 100644 index 0000000000000..6822d5a070906 --- /dev/null +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/metrics/SwitchableInstrument.java @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.telemetry.apm.internal.metrics; + +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.metrics.Meter; + +import org.elasticsearch.common.util.LazyInitializable; + +import java.util.function.Function; + +public abstract class SwitchableInstrument { + private static final Meter NOOP_METER = OpenTelemetry.noop().getMeter("elasticsearch"); + private final LazyInitializable instrument; + private final T noopInstrument; + private volatile boolean enabled; + + public SwitchableInstrument(Function instrumentProducer, Meter meter) { + this.instrument = new LazyInitializable<>(() -> instrumentProducer.apply(meter)); + this.noopInstrument = instrumentProducer.apply(NOOP_METER); + } + + void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public boolean isEnabled() { + return enabled; + } + + public T getInstrument() { + if (enabled) { + return instrument.getOrCompute(); + } else { + return noopInstrument; + } + } + +}