diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryResourceAttributes.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryResourceAttributes.java
index b468c18f459..c28a4446cb9 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryResourceAttributes.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryResourceAttributes.java
@@ -86,7 +86,7 @@ public final class OpenTelemetryResourceAttributes {
*
* Additionally, {@code spring.application.name} or {@code unknown_service} will be
* used as the default for {@code service.name}, and {@code spring.application.group}
- * will serve as the default for {@code service.group}.
+ * will serve as the default for {@code service.group} and {@code service.namespace}.
* @param consumer the {@link BiConsumer} to apply
*/
public void applyTo(BiConsumer consumer) {
@@ -97,8 +97,8 @@ public final class OpenTelemetryResourceAttributes {
attributes.put(name, value);
}
});
- attributes.computeIfAbsent("service.name", (k) -> getApplicationName());
- attributes.computeIfAbsent("service.group", (k) -> getApplicationGroup());
+ attributes.computeIfAbsent("service.name", (key) -> getApplicationName());
+ attributes.computeIfAbsent("service.group", (key) -> getApplicationGroup());
attributes.computeIfAbsent("service.namespace", (key) -> getServiceNamespace());
attributes.forEach(consumer);
}
@@ -107,9 +107,12 @@ public final class OpenTelemetryResourceAttributes {
return this.environment.getProperty("spring.application.name", DEFAULT_SERVICE_NAME);
}
+ /**
+ * Returns the application group.
+ * @return the application group
+ * @deprecated since 3.5.0 for removal in 3.7.0
+ */
@Deprecated(since = "3.5.0", forRemoval = true)
- // See https://github.com/spring-projects/spring-boot/issues/44411 for potential
- // information about deprecation of "service.group" attribute
private String getApplicationGroup() {
String applicationGroup = this.environment.getProperty("spring.application.group");
return (StringUtils.hasLength(applicationGroup)) ? applicationGroup : null;
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryAutoConfigurationTests.java
index dba908b6819..34492b1fee5 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryAutoConfigurationTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryAutoConfigurationTests.java
@@ -110,13 +110,14 @@ class OpenTelemetryAutoConfigurationTests {
void shouldApplyServiceNamespaceIfApplicationGroupIsSet() {
this.runner.withPropertyValues("spring.application.group=my-group").run((context) -> {
Resource resource = context.getBean(Resource.class);
- assertThat(resource.getAttributes().asMap()).containsEntry(AttributeKey.stringKey("service.namespace"), "my-group");
+ assertThat(resource.getAttributes().asMap()).containsEntry(AttributeKey.stringKey("service.namespace"),
+ "my-group");
});
}
@Test
- void shouldNOtApplyServiceNamespaceIfApplicationGroupIsNotSet() {
- this.runner.run((context -> {
+ void shouldNotApplyServiceNamespaceIfApplicationGroupIsNotSet() {
+ this.runner.run(((context) -> {
Resource resource = context.getBean(Resource.class);
assertThat(resource.getAttributes().asMap()).doesNotContainKey(AttributeKey.stringKey("service.namespace"));
}));
@@ -172,7 +173,7 @@ class OpenTelemetryAutoConfigurationTests {
}
@Configuration(proxyBeanMethods = false)
- private static final class UserConfiguration {
+ static class UserConfiguration {
@Bean
OpenTelemetry customOpenTelemetry() {
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryResourceAttributesTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryResourceAttributesTests.java
index f19f74f82ec..6712744e91e 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryResourceAttributesTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/opentelemetry/OpenTelemetryResourceAttributesTests.java
@@ -227,7 +227,6 @@ class OpenTelemetryResourceAttributesTests {
void otelResourceAttributesShouldTakePrecedenceOverSpringApplicationGroupNameForServiceNamespace() {
this.environmentVariables.put("OTEL_RESOURCE_ATTRIBUTES", "service.namespace=spring-boot");
this.environment.setProperty("spring.application.group", "overriden");
- ;
assertThat(getAttributes()).hasSize(3)
.containsEntry("service.group", "overriden")
.containsEntry("service.namespace", "spring-boot");