Skip to content

Commit 277f0b9

Browse files
committed
Polish "Auto-configure Micrometer or OTEL semantic conventions"
See spring-projectsgh-49241
1 parent a539797 commit 277f0b9

File tree

16 files changed

+552
-311
lines changed

16 files changed

+552
-311
lines changed

module/spring-boot-micrometer-metrics/src/main/java/org/springframework/boot/micrometer/metrics/autoconfigure/SemanticConventionAutoConfiguration.java

Lines changed: 0 additions & 115 deletions
This file was deleted.

module/spring-boot-micrometer-metrics/src/main/java/org/springframework/boot/micrometer/metrics/autoconfigure/jvm/JvmMetricsAutoConfiguration.java

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.Collections;
2020

2121
import io.micrometer.core.instrument.MeterRegistry;
22+
import io.micrometer.core.instrument.Tags;
2223
import io.micrometer.core.instrument.binder.MeterBinder;
2324
import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics;
2425
import io.micrometer.core.instrument.binder.jvm.JvmCompilationMetrics;
@@ -30,6 +31,12 @@
3031
import io.micrometer.core.instrument.binder.jvm.convention.JvmClassLoadingMeterConventions;
3132
import io.micrometer.core.instrument.binder.jvm.convention.JvmMemoryMeterConventions;
3233
import io.micrometer.core.instrument.binder.jvm.convention.JvmThreadMeterConventions;
34+
import io.micrometer.core.instrument.binder.jvm.convention.micrometer.MicrometerJvmClassLoadingMeterConventions;
35+
import io.micrometer.core.instrument.binder.jvm.convention.micrometer.MicrometerJvmMemoryMeterConventions;
36+
import io.micrometer.core.instrument.binder.jvm.convention.micrometer.MicrometerJvmThreadMeterConventions;
37+
import io.micrometer.core.instrument.binder.jvm.convention.otel.OpenTelemetryJvmClassLoadingMeterConventions;
38+
import io.micrometer.core.instrument.binder.jvm.convention.otel.OpenTelemetryJvmMemoryMeterConventions;
39+
import io.micrometer.core.instrument.binder.jvm.convention.otel.OpenTelemetryJvmThreadMeterConventions;
3340
import org.jspecify.annotations.Nullable;
3441

3542
import org.springframework.aot.hint.MemberCategory;
@@ -44,6 +51,8 @@
4451
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
4552
import org.springframework.boot.micrometer.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
4653
import org.springframework.boot.micrometer.metrics.autoconfigure.MetricsAutoConfiguration;
54+
import org.springframework.boot.micrometer.observation.autoconfigure.condition.ConditionalOnSemanticConventions;
55+
import org.springframework.boot.micrometer.observation.autoconfigure.condition.SemanticConventions;
4756
import org.springframework.context.annotation.Bean;
4857
import org.springframework.context.annotation.Configuration;
4958
import org.springframework.context.annotation.ImportRuntimeHints;
@@ -111,6 +120,54 @@ JvmCompilationMetrics jvmCompilationMetrics() {
111120
return new JvmCompilationMetrics();
112121
}
113122

123+
@Configuration(proxyBeanMethods = false)
124+
@ConditionalOnSemanticConventions(SemanticConventions.MICROMETER)
125+
static class MicrometerJvmConventionsConfiguration {
126+
127+
@Bean
128+
@ConditionalOnMissingBean(JvmMemoryMeterConventions.class)
129+
MicrometerJvmMemoryMeterConventions micrometerJvmMemoryMeterConventions() {
130+
return new MicrometerJvmMemoryMeterConventions();
131+
}
132+
133+
@Bean
134+
@ConditionalOnMissingBean(JvmClassLoadingMeterConventions.class)
135+
MicrometerJvmClassLoadingMeterConventions micrometerJvmClassLoadingMeterConventions() {
136+
return new MicrometerJvmClassLoadingMeterConventions();
137+
}
138+
139+
@Bean
140+
@ConditionalOnMissingBean(JvmThreadMeterConventions.class)
141+
MicrometerJvmThreadMeterConventions micrometerJvmThreadMeterConventions() {
142+
return new MicrometerJvmThreadMeterConventions(Tags.empty());
143+
}
144+
145+
}
146+
147+
@Configuration(proxyBeanMethods = false)
148+
@ConditionalOnSemanticConventions(SemanticConventions.OPEN_TELEMETRY)
149+
static class OpenTelemetryJvmConventionsConfiguration {
150+
151+
@Bean
152+
@ConditionalOnMissingBean(JvmMemoryMeterConventions.class)
153+
OpenTelemetryJvmMemoryMeterConventions openTelemetryJvmMemoryMeterConventions() {
154+
return new OpenTelemetryJvmMemoryMeterConventions(Tags.empty());
155+
}
156+
157+
@Bean
158+
@ConditionalOnMissingBean(JvmClassLoadingMeterConventions.class)
159+
OpenTelemetryJvmClassLoadingMeterConventions openTelemetryJvmClassLoadingMeterConventions() {
160+
return new OpenTelemetryJvmClassLoadingMeterConventions();
161+
}
162+
163+
@Bean
164+
@ConditionalOnMissingBean(JvmThreadMeterConventions.class)
165+
OpenTelemetryJvmThreadMeterConventions openTelemetryJvmThreadMeterConventions() {
166+
return new OpenTelemetryJvmThreadMeterConventions(Tags.empty());
167+
}
168+
169+
}
170+
114171
@Configuration(proxyBeanMethods = false)
115172
@ConditionalOnClass(name = VIRTUAL_THREAD_METRICS_CLASS)
116173
static class VirtualThreadMetricsConfiguration {

module/spring-boot-micrometer-metrics/src/main/java/org/springframework/boot/micrometer/metrics/autoconfigure/system/SystemMetricsAutoConfiguration.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import io.micrometer.core.instrument.MeterRegistry;
2424
import io.micrometer.core.instrument.Tags;
2525
import io.micrometer.core.instrument.binder.jvm.convention.JvmCpuMeterConventions;
26+
import io.micrometer.core.instrument.binder.jvm.convention.micrometer.MicrometerJvmCpuMeterConventions;
27+
import io.micrometer.core.instrument.binder.jvm.convention.otel.OpenTelemetryJvmCpuMeterConventions;
2628
import io.micrometer.core.instrument.binder.system.FileDescriptorMetrics;
2729
import io.micrometer.core.instrument.binder.system.ProcessorMetrics;
2830
import io.micrometer.core.instrument.binder.system.UptimeMetrics;
@@ -38,7 +40,10 @@
3840
import org.springframework.boot.micrometer.metrics.autoconfigure.MetricsAutoConfiguration;
3941
import org.springframework.boot.micrometer.metrics.autoconfigure.MetricsProperties;
4042
import org.springframework.boot.micrometer.metrics.system.DiskSpaceMetricsBinder;
43+
import org.springframework.boot.micrometer.observation.autoconfigure.condition.ConditionalOnSemanticConventions;
44+
import org.springframework.boot.micrometer.observation.autoconfigure.condition.SemanticConventions;
4145
import org.springframework.context.annotation.Bean;
46+
import org.springframework.context.annotation.Configuration;
4247

4348
/**
4449
* {@link EnableAutoConfiguration Auto-configuration} for system metrics.
@@ -80,4 +85,28 @@ DiskSpaceMetricsBinder diskSpaceMetrics(MetricsProperties properties) {
8085
return new DiskSpaceMetricsBinder(paths, Tags.empty());
8186
}
8287

88+
@Configuration(proxyBeanMethods = false)
89+
@ConditionalOnSemanticConventions(SemanticConventions.MICROMETER)
90+
static class MicrometerSystemConventionsConfiguration {
91+
92+
@Bean
93+
@ConditionalOnMissingBean(JvmCpuMeterConventions.class)
94+
MicrometerJvmCpuMeterConventions micrometerJvmCpuMeterConventions() {
95+
return new MicrometerJvmCpuMeterConventions(Tags.empty());
96+
}
97+
98+
}
99+
100+
@Configuration(proxyBeanMethods = false)
101+
@ConditionalOnSemanticConventions(SemanticConventions.OPEN_TELEMETRY)
102+
static class OpenTelemetrySystemConventionsConfiguration {
103+
104+
@Bean
105+
@ConditionalOnMissingBean(JvmCpuMeterConventions.class)
106+
OpenTelemetryJvmCpuMeterConventions openTelemetryJvmCpuMeterConventions() {
107+
return new OpenTelemetryJvmCpuMeterConventions(Tags.empty());
108+
}
109+
110+
}
111+
83112
}

0 commit comments

Comments
 (0)