|
9 | 9 | import io.opentelemetry.api.GlobalOpenTelemetry;
|
10 | 10 | import io.opentelemetry.api.OpenTelemetry;
|
11 | 11 | import io.opentelemetry.instrumentation.runtimemetrics.java17.RuntimeMetrics;
|
12 |
| -import io.opentelemetry.instrumentation.runtimemetrics.java17.RuntimeMetricsBuilder; |
| 12 | +import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; |
13 | 13 | import io.opentelemetry.javaagent.extension.AgentListener;
|
14 | 14 | import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
|
15 |
| -import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; |
16 | 15 |
|
17 | 16 | /** An {@link AgentListener} that enables runtime metrics during agent startup. */
|
18 | 17 | @AutoService(AgentListener.class)
|
19 | 18 | public class Java17RuntimeMetricsInstaller implements AgentListener {
|
20 | 19 |
|
21 | 20 | @Override
|
22 | 21 | public void afterAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredSdk) {
|
23 |
| - ConfigProperties config = AgentListener.resolveConfigProperties(autoConfiguredSdk); |
24 |
| - |
25 | 22 | OpenTelemetry openTelemetry = GlobalOpenTelemetry.get();
|
26 |
| - RuntimeMetricsBuilder builder = null; |
27 |
| - /* |
28 |
| - By default don't use any JFR metrics. May change this once semantic conventions are updated. |
29 |
| - If enabled, default to only the metrics not already covered by runtime-telemetry-java8 |
30 |
| - */ |
31 |
| - boolean defaultEnabled = config.getBoolean("otel.instrumentation.common.default-enabled", true); |
32 |
| - if (config.getBoolean("otel.instrumentation.runtime-telemetry-java17.enable-all", false)) { |
33 |
| - builder = RuntimeMetrics.builder(openTelemetry).enableAllFeatures(); |
34 |
| - } else if (config.getBoolean("otel.instrumentation.runtime-telemetry-java17.enabled", false)) { |
35 |
| - builder = RuntimeMetrics.builder(openTelemetry); |
36 |
| - } else if (config.getBoolean( |
37 |
| - "otel.instrumentation.runtime-telemetry.enabled", defaultEnabled)) { |
38 |
| - // This only uses metrics gathered by JMX |
39 |
| - builder = RuntimeMetrics.builder(openTelemetry).disableAllFeatures(); |
40 |
| - } |
41 |
| - |
42 |
| - if (builder != null) { |
43 |
| - if (config.getBoolean( |
44 |
| - "otel.instrumentation.runtime-telemetry.emit-experimental-telemetry", false)) { |
45 |
| - builder.enableExperimentalJmxTelemetry(); |
46 |
| - } |
47 | 23 |
|
48 |
| - RuntimeMetrics finalJfrTelemetry = builder.build(); |
49 |
| - Thread cleanupTelemetry = new Thread(() -> finalJfrTelemetry.close()); |
50 |
| - Runtime.getRuntime().addShutdownHook(cleanupTelemetry); |
51 |
| - } |
| 24 | + RuntimeMetrics.builder(openTelemetry) |
| 25 | + .startFromInstrumentationConfig(AgentInstrumentationConfig.get()); |
52 | 26 | }
|
53 | 27 | }
|
0 commit comments