Skip to content

Commit fd74904

Browse files
authored
Merge pull request #47458 from brunobat/add-metrics-logs-otel-capabilities
Add Metrics and Logs to OTel Capabilities
2 parents 5d0b34e + 68203cf commit fd74904

File tree

8 files changed

+59
-42
lines changed

8 files changed

+59
-42
lines changed

core/deployment/src/main/java/io/quarkus/deployment/Capability.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ public interface Capability {
116116
String HIBERNATE_REACTIVE = QUARKUS_PREFIX + ".hibernate.reactive";
117117
String HIBERNATE_VALIDATOR = QUARKUS_PREFIX + ".hibernate.validator";
118118
String OPENTELEMETRY_TRACER = QUARKUS_PREFIX + ".opentelemetry.tracer";
119+
String OPENTELEMETRY_METRICS = QUARKUS_PREFIX + ".opentelemetry.metrics";
120+
String OPENTELEMETRY_LOGS = QUARKUS_PREFIX + ".opentelemetry.logs";
119121

120122
String OPENSHIFT = QUARKUS_PREFIX + ".openshift";
121123
String OPENSHIFT_CLIENT = OPENSHIFT + ".client";

extensions/observability-devservices/deployment/src/main/java/io/quarkus/observability/deployment/ObservabilityDevServiceProcessor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,9 @@ public void startContainers(LaunchModeBuildItem launchMode,
127127
new ExtensionsCatalog(
128128
QuarkusClassLoader::isResourcePresentAtRuntime,
129129
QuarkusClassLoader::isClassPresentAtRuntime,
130-
capabilities.isPresent(Capability.OPENTELEMETRY_TRACER),
130+
capabilities.isPresent(Capability.OPENTELEMETRY_TRACER) ||
131+
capabilities.isPresent(Capability.OPENTELEMETRY_METRICS) ||
132+
capabilities.isPresent(Capability.OPENTELEMETRY_LOGS),
131133
hasMicrometerOtlp(metricsConfiguration)));
132134

133135
if (devService != null) {

extensions/opentelemetry/deployment/src/main/java/io/quarkus/opentelemetry/deployment/OpenTelemetryProcessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
import io.quarkus.deployment.util.ServiceUtil;
6868
import io.quarkus.maven.dependency.ArtifactKey;
6969
import io.quarkus.opentelemetry.OpenTelemetryDestroyer;
70-
import io.quarkus.opentelemetry.deployment.metric.MetricProcessor;
70+
import io.quarkus.opentelemetry.deployment.metric.MetricsEnabled;
7171
import io.quarkus.opentelemetry.runtime.AutoConfiguredOpenTelemetrySdkBuilderCustomizer;
7272
import io.quarkus.opentelemetry.runtime.DelayedAttributes;
7373
import io.quarkus.opentelemetry.runtime.OpenTelemetryRecorder;
@@ -96,7 +96,7 @@ public boolean test(AnnotationInstance annotationInstance) {
9696
private static final DotName ADD_SPAN_ATTRIBUTES_INTERCEPTOR = DotName
9797
.createSimple(AddingSpanAttributesInterceptor.class.getName());
9898

99-
@BuildStep(onlyIfNot = MetricProcessor.MetricEnabled.class)
99+
@BuildStep(onlyIfNot = MetricsEnabled.class)
100100
void registerForReflection(BuildProducer<ReflectiveMethodBuildItem> reflectiveItem) {
101101
if (isClassPresentAtRuntime(
102102
"io.opentelemetry.exporter.logging.LoggingMetricExporter")) {

extensions/opentelemetry/deployment/src/main/java/io/quarkus/opentelemetry/deployment/logging/LogHandlerProcessor.java

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package io.quarkus.opentelemetry.deployment.logging;
22

3-
import java.util.function.BooleanSupplier;
4-
import java.util.function.Function;
5-
63
import org.jboss.jandex.DotName;
74

85
import io.opentelemetry.sdk.autoconfigure.spi.logs.ConfigurableLogRecordExporterProvider;
@@ -19,11 +16,10 @@
1916
import io.quarkus.deployment.annotations.Record;
2017
import io.quarkus.deployment.builditem.LogHandlerBuildItem;
2118
import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
22-
import io.quarkus.opentelemetry.runtime.config.build.OTelBuildConfig;
2319
import io.quarkus.opentelemetry.runtime.logs.OpenTelemetryLogRecorder;
2420
import io.quarkus.opentelemetry.runtime.logs.spi.LogsExporterCDIProvider;
2521

26-
@BuildSteps(onlyIf = LogHandlerProcessor.LogsEnabled.class)
22+
@BuildSteps(onlyIf = LogsEnabled.class)
2723
class LogHandlerProcessor {
2824

2925
private static final DotName LOG_RECORD_EXPORTER = DotName.createSimple(LogRecordExporter.class.getName());
@@ -49,19 +45,4 @@ LogHandlerBuildItem build(OpenTelemetryLogRecorder recorder,
4945
BeanContainerBuildItem beanContainerBuildItem) {
5046
return new LogHandlerBuildItem(recorder.initializeHandler(beanContainerBuildItem.getValue()));
5147
}
52-
53-
public static class LogsEnabled implements BooleanSupplier {
54-
OTelBuildConfig otelBuildConfig;
55-
56-
public boolean getAsBoolean() {
57-
return otelBuildConfig.logs().enabled()
58-
.map(new Function<Boolean, Boolean>() {
59-
@Override
60-
public Boolean apply(Boolean enabled) {
61-
return otelBuildConfig.enabled() && enabled;
62-
}
63-
})
64-
.orElseGet(() -> otelBuildConfig.enabled());
65-
}
66-
}
6748
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.quarkus.opentelemetry.deployment.logging;
2+
3+
import java.util.function.BooleanSupplier;
4+
import java.util.function.Function;
5+
6+
import io.quarkus.opentelemetry.runtime.config.build.OTelBuildConfig;
7+
8+
public class LogsEnabled implements BooleanSupplier {
9+
OTelBuildConfig otelBuildConfig;
10+
11+
public boolean getAsBoolean() {
12+
return otelBuildConfig.logs().enabled()
13+
.map(new Function<Boolean, Boolean>() {
14+
@Override
15+
public Boolean apply(Boolean enabled) {
16+
return otelBuildConfig.enabled() && enabled;
17+
}
18+
})
19+
.orElseGet(() -> otelBuildConfig.enabled());
20+
}
21+
}

extensions/opentelemetry/deployment/src/main/java/io/quarkus/opentelemetry/deployment/metric/MetricProcessor.java

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import java.util.Collection;
44
import java.util.HashSet;
55
import java.util.Set;
6-
import java.util.function.BooleanSupplier;
7-
import java.util.function.Function;
86

97
import org.jboss.jandex.AnnotationInstance;
108
import org.jboss.jandex.AnnotationTarget;
@@ -25,11 +23,10 @@
2523
import io.quarkus.deployment.builditem.NativeMonitoringBuildItem;
2624
import io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem;
2725
import io.quarkus.deployment.pkg.NativeConfig;
28-
import io.quarkus.opentelemetry.runtime.config.build.OTelBuildConfig;
2926
import io.quarkus.opentelemetry.runtime.metrics.cdi.MetricsProducer;
3027
import io.quarkus.opentelemetry.runtime.metrics.instrumentation.JvmMetricsService;
3128

32-
@BuildSteps(onlyIf = MetricProcessor.MetricEnabled.class)
29+
@BuildSteps(onlyIf = MetricsEnabled.class)
3330
public class MetricProcessor {
3431
private static final DotName METRIC_EXPORTER = DotName.createSimple(MetricExporter.class.getName());
3532
private static final DotName METRIC_READER = DotName.createSimple(MetricReader.class.getName());
@@ -104,19 +101,4 @@ void runtimeInit(BuildProducer<RuntimeReinitializedClassBuildItem> runtimeReinit
104101
new RuntimeReinitializedClassBuildItem(
105102
"io.opentelemetry.instrumentation.runtimemetrics.java8.internal.CpuMethods"));
106103
}
107-
108-
public static class MetricEnabled implements BooleanSupplier {
109-
OTelBuildConfig otelBuildConfig;
110-
111-
public boolean getAsBoolean() {
112-
return otelBuildConfig.metrics().enabled()
113-
.map(new Function<Boolean, Boolean>() {
114-
@Override
115-
public Boolean apply(Boolean enabled) {
116-
return otelBuildConfig.enabled() && enabled;
117-
}
118-
})
119-
.orElseGet(() -> otelBuildConfig.enabled());
120-
}
121-
}
122104
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.quarkus.opentelemetry.deployment.metric;
2+
3+
import java.util.function.BooleanSupplier;
4+
import java.util.function.Function;
5+
6+
import io.quarkus.opentelemetry.runtime.config.build.OTelBuildConfig;
7+
8+
public class MetricsEnabled implements BooleanSupplier {
9+
OTelBuildConfig otelBuildConfig;
10+
11+
public boolean getAsBoolean() {
12+
return otelBuildConfig.metrics().enabled()
13+
.map(new Function<Boolean, Boolean>() {
14+
@Override
15+
public Boolean apply(Boolean enabled) {
16+
return otelBuildConfig.enabled() && enabled;
17+
}
18+
})
19+
.orElseGet(() -> otelBuildConfig.enabled());
20+
}
21+
}

extensions/opentelemetry/runtime/pom.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,14 @@
232232
<positive>io.quarkus.opentelemetry.deployment.tracing.TracerEnabled</positive>
233233
<name>io.quarkus.opentelemetry.tracer</name>
234234
</providesIf>
235+
<providesIf>
236+
<positive>io.quarkus.opentelemetry.deployment.metric.MetricsEnabled</positive>
237+
<name>io.quarkus.opentelemetry.metrics</name>
238+
</providesIf>
239+
<providesIf>
240+
<positive>io.quarkus.opentelemetry.deployment.logging.LogsEnabled</positive>
241+
<name>io.quarkus.opentelemetry.logs</name>
242+
</providesIf>
235243
</capabilities>
236244
</configuration>
237245
</plugin>

0 commit comments

Comments
 (0)