Skip to content

Commit 55133f4

Browse files
[quick-fix]: Added the resource attributes for metrics only. (#7)
1 parent 209c233 commit 55133f4

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

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

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@
99
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
1010
import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
1111
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
12+
import io.opentelemetry.api.common.AttributeKey;
13+
import io.opentelemetry.api.common.Attributes;
1214
import io.opentelemetry.sdk.logs.SdkLoggerProviderBuilder;
15+
import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder;
16+
import io.opentelemetry.sdk.resources.Resource;
17+
import java.lang.reflect.Field;
1318
import java.util.HashMap;
1419
import java.util.Map;
1520

@@ -31,9 +36,28 @@ public class DemoAutoConfigurationCustomizerProvider
3136
public void customize(AutoConfigurationCustomizer autoConfiguration) {
3237
autoConfiguration
3338
.addLoggerProviderCustomizer(this::configureSdkLoggerProvider)
39+
.addMeterProviderCustomizer(this::configureSdkMeterProvider)
3440
.addPropertiesSupplier(this::getDefaultProperties);
3541
}
3642

43+
private SdkMeterProviderBuilder configureSdkMeterProvider(
44+
SdkMeterProviderBuilder meterProvider, ConfigProperties config) {
45+
try {
46+
Field resourceField = meterProvider.getClass().getDeclaredField("resource");
47+
resourceField.setAccessible(true);
48+
Resource resource = (Resource) resourceField.get(meterProvider);
49+
meterProvider.setResource(
50+
resource.merge(
51+
Resource.create(
52+
Attributes.of(
53+
AttributeKey.stringKey("runtime.metrics.java"), "true",
54+
AttributeKey.stringKey("mw.app.lang"), "java"))));
55+
} catch (Exception e) {
56+
throw new RuntimeException(e);
57+
}
58+
return meterProvider;
59+
}
60+
3761
private SdkLoggerProviderBuilder configureSdkLoggerProvider(
3862
SdkLoggerProviderBuilder loggerProvider, ConfigProperties config) {
3963

@@ -47,8 +71,6 @@ private Map<String, String> getDefaultProperties() {
4771
properties.put("otel.metrics.exporter", "otlp");
4872
properties.put("otel.logs.exporter", "otlp");
4973
properties.put("otel.instrumentation.runtime-telemetry-java17.enable-all", "true");
50-
properties.put("runtime.metrics.java", "true");
51-
properties.put("mw.app.lang", "java");
5274
return properties;
5375
}
5476
}

0 commit comments

Comments
 (0)