Skip to content

Commit 2272652

Browse files
committed
pass meter provider to avoid using the global otel instance
1 parent 5186238 commit 2272652

File tree

4 files changed

+24
-9
lines changed

4 files changed

+24
-9
lines changed

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/DeclarativeConfigContext.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import io.opentelemetry.api.incubator.config.DeclarativeConfigException;
99
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
10+
import io.opentelemetry.api.metrics.MeterProvider;
1011
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
1112
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
1213
import java.io.Closeable;
@@ -20,6 +21,7 @@
2021
class DeclarativeConfigContext {
2122

2223
private final SpiHelper spiHelper;
24+
private MeterProvider meterProvider;
2325
private final List<Closeable> closeables = new ArrayList<>();
2426

2527
DeclarativeConfigContext(SpiHelper spiHelper) {
@@ -39,6 +41,14 @@ List<Closeable> getCloseables() {
3941
return Collections.unmodifiableList(closeables);
4042
}
4143

44+
public MeterProvider getMeterProvider() {
45+
return meterProvider;
46+
}
47+
48+
public void setMeterProvider(MeterProvider meterProvider) {
49+
this.meterProvider = meterProvider;
50+
}
51+
4252
/**
4353
* Find a registered {@link ComponentProvider} with {@link ComponentProvider#getType()} matching
4454
* {@code type}, {@link ComponentProvider#getName()} matching {@code name}, and call {@link

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/LogRecordProcessorFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public LogRecordProcessor create(
5252
if (batchModel.getScheduleDelay() != null) {
5353
builder.setScheduleDelay(Duration.ofMillis(batchModel.getScheduleDelay()));
5454
}
55+
builder.setMeterProvider(context.getMeterProvider());
5556

5657
return context.addCloseable(builder.build());
5758
}

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/OpenTelemetryConfigurationFactory.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import io.opentelemetry.sdk.OpenTelemetrySdk;
1010
import io.opentelemetry.sdk.OpenTelemetrySdkBuilder;
1111
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel;
12+
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
1213
import io.opentelemetry.sdk.resources.Resource;
1314
import java.util.Objects;
1415
import java.util.regex.Pattern;
@@ -53,6 +54,16 @@ public OpenTelemetrySdk create(
5354
resource = ResourceFactory.getInstance().create(model.getResource(), context);
5455
}
5556

57+
if (model.getMeterProvider() != null) {
58+
SdkMeterProvider meterProvider =
59+
MeterProviderFactory.getInstance()
60+
.create(model.getMeterProvider(), context)
61+
.setResource(resource)
62+
.build();
63+
context.setMeterProvider(meterProvider);
64+
builder.setMeterProvider(context.addCloseable(meterProvider));
65+
}
66+
5667
if (model.getLoggerProvider() != null) {
5768
builder.setLoggerProvider(
5869
context.addCloseable(
@@ -77,15 +88,6 @@ public OpenTelemetrySdk create(
7788
.build()));
7889
}
7990

80-
if (model.getMeterProvider() != null) {
81-
builder.setMeterProvider(
82-
context.addCloseable(
83-
MeterProviderFactory.getInstance()
84-
.create(model.getMeterProvider(), context)
85-
.setResource(resource)
86-
.build()));
87-
}
88-
8991
return context.addCloseable(builder.build());
9092
}
9193
}

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/SpanProcessorFactory.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ public SpanProcessor create(SpanProcessorModel model, DeclarativeConfigContext c
4747
if (batchModel.getScheduleDelay() != null) {
4848
builder.setScheduleDelay(Duration.ofMillis(batchModel.getScheduleDelay()));
4949
}
50+
builder.setMeterProvider(context.getMeterProvider());
51+
5052
return context.addCloseable(builder.build());
5153
}
5254

0 commit comments

Comments
 (0)