A variety of SDK components now follow the pattern for configuring internal telemetry:
Builder setInternalTelemetryVersion(InternalTelemetryVersion);
Builder setMeterProvider(Supplier<MeterProvider>);
For example,
|
/** |
|
* Sets the {@link MeterProvider} supplier to use to collect metrics related to export. If not |
|
* set, uses {@link GlobalOpenTelemetry#getMeterProvider()}. |
|
* |
|
* @since 1.32.0 |
|
*/ |
|
public OtlpHttpSpanExporterBuilder setMeterProvider( |
|
Supplier<MeterProvider> meterProviderSupplier) { |
|
requireNonNull(meterProviderSupplier, "meterProviderSupplier"); |
|
delegate.setMeterProvider(meterProviderSupplier); |
|
return this; |
|
} |
|
|
|
/** |
|
* Sets the {@link InternalTelemetryVersion} defining which self-monitoring metrics this exporter |
|
* collects. |
|
* |
|
* @since 1.51.0 |
|
*/ |
|
public OtlpHttpSpanExporterBuilder setInternalTelemetryVersion( |
|
InternalTelemetryVersion schemaVersion) { |
|
requireNonNull(schemaVersion, "schemaVersion"); |
|
delegate.setInternalTelemetryVersion(schemaVersion); |
|
return this; |
|
} |
However, we lack controls for specifying the internal telemetry version using autoconfiguration mechanisms based on env vars and declarative config.
Let's add support to specify this in declarative config.
For example, I should be able to specify that I prefer InternalTelemetryVersion.LATEST with something like:
resource: ...
tracer_provider: ...
meter_provider: ...
logger_provider: ...
intstrumentation/development:
java:
sdk_internal:
telemetry_version: latest
A variety of SDK components now follow the pattern for configuring internal telemetry:
For example,
opentelemetry-java/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java
Lines 206 to 230 in 452506e
However, we lack controls for specifying the internal telemetry version using autoconfiguration mechanisms based on env vars and declarative config.
Let's add support to specify this in declarative config.
For example, I should be able to specify that I prefer
InternalTelemetryVersion.LATESTwith something like: