Skip to content

Commit 3096188

Browse files
author
Mateusz Rzeszutek
authored
Update distro and extension examples to use AutoConfigurationCustomiz… (#5574)
* Update distro and extension examples to use AutoConfigurationCustomizerProvider * Rename the SPI file too
1 parent b0d5fc6 commit 3096188

15 files changed

+48
-31
lines changed

examples/distro/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ subprojects {
2020

2121
ext {
2222
versions = [
23-
opentelemetry : "1.9.1",
24-
opentelemetryAlpha : "1.9.1-alpha",
23+
opentelemetry : "1.12.0",
24+
opentelemetryAlpha : "1.12.0-alpha",
2525
opentelemetryJavaagent : "1.13.0-SNAPSHOT",
2626
opentelemetryJavaagentAlpha: "1.13.0-alpha-SNAPSHOT",
2727
bytebuddy : "1.10.18",

examples/distro/custom/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def relocatePackages = ext.relocatePackages
99

1010
dependencies {
1111
compileOnly("io.opentelemetry:opentelemetry-sdk:${versions.opentelemetry}")
12-
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:${versions.opentelemetryAlpha}")
12+
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:${versions.opentelemetry}")
1313
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api:${versions.opentelemetryJavaagentAlpha}")
1414
}
1515

examples/distro/custom/src/main/java/com/example/javaagent/DemoSdkTracerProviderConfigurer.java examples/distro/custom/src/main/java/com/example/javaagent/DemoAutoConfigurationCustomizerProvider.java

+15-7
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,34 @@
55

66
package com.example.javaagent;
77

8+
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
9+
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
810
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
9-
import io.opentelemetry.sdk.autoconfigure.spi.traces.SdkTracerProviderConfigurer;
1011
import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder;
1112
import io.opentelemetry.sdk.trace.SpanLimits;
1213
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
1314

1415
/**
1516
* This is one of the main entry points for Instrumentation Agent's customizations. It allows
16-
* configuring {@link SdkTracerProviderBuilder}. See the {@link
17-
* #configure(SdkTracerProviderBuilder)} method below.
17+
* configuring the {@link AutoConfigurationCustomizer}. See the {@link
18+
* #customize(AutoConfigurationCustomizer)} method below.
1819
*
1920
* <p>Also see https://github.com/open-telemetry/opentelemetry-java/issues/2022
2021
*
21-
* @see SdkTracerProviderConfigurer
22+
* @see AutoConfigurationCustomizerProvider
2223
* @see DemoPropagatorProvider
2324
*/
24-
public class DemoSdkTracerProviderConfigurer implements SdkTracerProviderConfigurer {
25+
public class DemoAutoConfigurationCustomizerProvider
26+
implements AutoConfigurationCustomizerProvider {
27+
2528
@Override
26-
public void configure(SdkTracerProviderBuilder tracerProvider, ConfigProperties config) {
27-
tracerProvider
29+
public void customize(AutoConfigurationCustomizer autoConfiguration) {
30+
autoConfiguration.addTracerProviderCustomizer(this::configureSdkTracerProvider);
31+
}
32+
33+
private SdkTracerProviderBuilder configureSdkTracerProvider(
34+
SdkTracerProviderBuilder tracerProvider, ConfigProperties config) {
35+
return tracerProvider
2836
.setIdGenerator(new DemoIdGenerator())
2937
.setSpanLimits(SpanLimits.builder().setMaxNumberOfAttributes(1024).build())
3038
.setSampler(new DemoSampler())

examples/distro/custom/src/main/java/com/example/javaagent/DemoIdGenerator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* Custom {@link IdGenerator} which provides span and trace ids.
1313
*
1414
* @see io.opentelemetry.sdk.trace.SdkTracerProvider
15-
* @see DemoSdkTracerProviderConfigurer
15+
* @see DemoAutoConfigurationCustomizerProvider
1616
*/
1717
public class DemoIdGenerator implements IdGenerator {
1818
private static final AtomicLong traceId = new AtomicLong(0);

examples/distro/custom/src/main/java/com/example/javaagent/DemoSampler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#sampling">
2222
* OpenTelemetry Specification</a> for more information about span sampling.
2323
*
24-
* @see DemoSdkTracerProviderConfigurer
24+
* @see DemoAutoConfigurationCustomizerProvider
2525
*/
2626
public class DemoSampler implements Sampler {
2727
@Override

examples/distro/custom/src/main/java/com/example/javaagent/DemoSpanExporter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#span-exporter">
1616
* OpenTelemetry Specification</a> for more information about {@link SpanExporter}.
1717
*
18-
* @see DemoSdkTracerProviderConfigurer
18+
* @see DemoAutoConfigurationCustomizerProvider
1919
*/
2020
public class DemoSpanExporter implements SpanExporter {
2121
@Override

examples/distro/custom/src/main/java/com/example/javaagent/DemoSpanProcessor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#span-processor">
1717
* OpenTelemetry Specification</a> for more information about {@link SpanProcessor}.
1818
*
19-
* @see DemoSdkTracerProviderConfigurer
19+
* @see DemoAutoConfigurationCustomizerProvider
2020
*/
2121
public class DemoSpanProcessor implements SpanProcessor {
2222
@Override
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
com.example.javaagent.DemoAutoConfigurationCustomizerProvider

examples/distro/custom/src/main/resources/META-INF/services/io.opentelemetry.sdk.autoconfigure.spi.traces.SdkTracerProviderConfigurer

-1
This file was deleted.

examples/extension/build.gradle

+4-4
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ version '1.0'
2222

2323
ext {
2424
versions = [
25-
opentelemetry : "1.9.1",
26-
opentelemetryAlpha : "1.9.1-alpha",
25+
opentelemetry : "1.12.0",
26+
opentelemetryAlpha : "1.12.0-alpha",
2727
opentelemetryJavaagent : "1.13.0-SNAPSHOT",
2828
opentelemetryJavaagentAlpha: "1.13.0-alpha-SNAPSHOT",
2929
]
@@ -63,7 +63,7 @@ dependencies {
6363
Interfaces and SPIs that we implement. We use `compileOnly` dependency because during
6464
runtime all necessary classes are provided by javaagent itself.
6565
*/
66-
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:${versions.opentelemetryAlpha}")
66+
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:${versions.opentelemetry}")
6767
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-instrumentation-api:${versions.opentelemetryJavaagentAlpha}")
6868
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api:${versions.opentelemetryJavaagentAlpha}")
6969

@@ -110,7 +110,7 @@ dependencies {
110110
add("muzzleBootstrap", "io.opentelemetry.javaagent:opentelemetry-javaagent-instrumentation-api:${versions.opentelemetryJavaagentAlpha}")
111111
add("muzzleTooling", "io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api:${versions.opentelemetryJavaagentAlpha}")
112112
add("muzzleTooling", "io.opentelemetry.javaagent:opentelemetry-javaagent-tooling:${versions.opentelemetryJavaagentAlpha}")
113-
add("muzzleTooling", "org.slf4j:slf4j-simple:1.7.30")
113+
add("muzzleTooling", "org.slf4j:slf4j-simple:1.7.36")
114114
}
115115

116116
//Produces a copy of upstream javaagent with this extension jar included inside it

examples/extension/src/main/java/com/example/javaagent/DemoSdkTracerProviderConfigurer.java examples/extension/src/main/java/com/example/javaagent/DemoAutoConfigurationCustomizerProvider.java

+17-8
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,36 @@
66
package com.example.javaagent;
77

88
import com.google.auto.service.AutoService;
9+
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
10+
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
911
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
10-
import io.opentelemetry.sdk.autoconfigure.spi.traces.SdkTracerProviderConfigurer;
1112
import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder;
1213
import io.opentelemetry.sdk.trace.SpanLimits;
1314
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
1415

1516
/**
1617
* This is one of the main entry points for Instrumentation Agent's customizations. It allows
17-
* configuring {@link SdkTracerProviderBuilder}. See the {@link
18-
* #configure(SdkTracerProviderBuilder)} method below.
18+
* configuring the {@link AutoConfigurationCustomizer}. See the {@link
19+
* #customize(AutoConfigurationCustomizer)} method below.
1920
*
2021
* <p>Also see https://github.com/open-telemetry/opentelemetry-java/issues/2022
2122
*
22-
* @see SdkTracerProviderConfigurer
23+
* @see AutoConfigurationCustomizerProvider
2324
* @see DemoPropagatorProvider
2425
*/
25-
@AutoService(SdkTracerProviderConfigurer.class)
26-
public class DemoSdkTracerProviderConfigurer implements SdkTracerProviderConfigurer {
26+
@AutoService(AutoConfigurationCustomizerProvider.class)
27+
public class DemoAutoConfigurationCustomizerProvider
28+
implements AutoConfigurationCustomizerProvider {
29+
2730
@Override
28-
public void configure(SdkTracerProviderBuilder tracerProvider, ConfigProperties config) {
29-
tracerProvider
31+
public void customize(AutoConfigurationCustomizer autoConfiguration) {
32+
autoConfiguration.addTracerProviderCustomizer(this::configureSdkTracerProvider);
33+
}
34+
35+
private SdkTracerProviderBuilder configureSdkTracerProvider(
36+
SdkTracerProviderBuilder tracerProvider, ConfigProperties config) {
37+
38+
return tracerProvider
3039
.setIdGenerator(new DemoIdGenerator())
3140
.setSpanLimits(SpanLimits.builder().setMaxNumberOfAttributes(1024).build())
3241
.setSampler(new DemoSampler())

examples/extension/src/main/java/com/example/javaagent/DemoIdGenerator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* Custom {@link IdGenerator} which provides span and trace ids.
1313
*
1414
* @see io.opentelemetry.sdk.trace.SdkTracerProvider
15-
* @see DemoSdkTracerProviderConfigurer
15+
* @see DemoAutoConfigurationCustomizerProvider
1616
*/
1717
public class DemoIdGenerator implements IdGenerator {
1818
private static final AtomicLong traceId = new AtomicLong(0);

examples/extension/src/main/java/com/example/javaagent/DemoSampler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#sampling">
2222
* OpenTelemetry Specification</a> for more information about span sampling.
2323
*
24-
* @see DemoSdkTracerProviderConfigurer
24+
* @see DemoAutoConfigurationCustomizerProvider
2525
*/
2626
public class DemoSampler implements Sampler {
2727
@Override

examples/extension/src/main/java/com/example/javaagent/DemoSpanExporter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#span-exporter">
1616
* OpenTelemetry Specification</a> for more information about {@link SpanExporter}.
1717
*
18-
* @see DemoSdkTracerProviderConfigurer
18+
* @see DemoAutoConfigurationCustomizerProvider
1919
*/
2020
public class DemoSpanExporter implements SpanExporter {
2121
@Override

examples/extension/src/main/java/com/example/javaagent/DemoSpanProcessor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#span-processor">
1818
* OpenTelemetry Specification</a> for more information about {@link SpanProcessor}.
1919
*
20-
* @see DemoSdkTracerProviderConfigurer
20+
* @see DemoAutoConfigurationCustomizerProvider
2121
*/
2222
public class DemoSpanProcessor implements SpanProcessor {
2323

0 commit comments

Comments
 (0)