Bumped version
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.modulith</groupId>
|
||||
<artifactId>spring-modulith</artifactId>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<version>1.4.0-GH-927-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>spring-modulith-observability</artifactId>
|
||||
@@ -83,12 +83,6 @@
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.opentelemetry</groupId>
|
||||
<artifactId>opentelemetry-api</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<!-- Testing -->
|
||||
|
||||
<dependency>
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
package org.springframework.modulith.observability;
|
||||
|
||||
import io.micrometer.tracing.exporter.FinishedSpan;
|
||||
import io.micrometer.tracing.exporter.SpanFilter;
|
||||
|
||||
/**
|
||||
* {@link SpanFilter} that sets a local service name according
|
||||
* to the current module's name.
|
||||
*
|
||||
* @author Marcin Grzejszczak
|
||||
* @since 1.3
|
||||
*/
|
||||
public class LocalServiceRenamingSpanFilter implements SpanFilter {
|
||||
|
||||
@Override
|
||||
public FinishedSpan map(FinishedSpan span) {
|
||||
String moduleKey = span.getTags().get(ModulithObservations.LowKeys.MODULE_KEY.asString());
|
||||
if (moduleKey != null) {
|
||||
// Wait for tracing 1.5.0
|
||||
span.setLocalServiceName(moduleKey);
|
||||
}
|
||||
return span;
|
||||
}
|
||||
}
|
||||
@@ -15,11 +15,12 @@
|
||||
*/
|
||||
package org.springframework.modulith.observability.autoconfigure;
|
||||
|
||||
import io.micrometer.common.KeyValue;
|
||||
import brave.handler.MutableSpan;
|
||||
import brave.handler.SpanHandler;
|
||||
import brave.propagation.TraceContext;
|
||||
import io.micrometer.observation.ObservationFilter;
|
||||
import io.micrometer.observation.ObservationRegistry;
|
||||
import io.micrometer.tracing.Tracer;
|
||||
import io.micrometer.tracing.exporter.SpanFilter;
|
||||
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||
@@ -33,7 +34,6 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.core.task.support.ContextPropagatingTaskDecorator;
|
||||
import org.springframework.modulith.observability.LocalServiceRenamingSpanFilter;
|
||||
import org.springframework.modulith.observability.ModuleEventListener;
|
||||
import org.springframework.modulith.observability.ModuleObservabilityBeanPostProcessor;
|
||||
import org.springframework.modulith.observability.ModulePassingObservationFilter;
|
||||
@@ -77,13 +77,25 @@ class ModuleObservabilityAutoConfiguration {
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@ConditionalOnClass(Tracer.class)
|
||||
static class MicrometerTracingConfiguration {
|
||||
|
||||
@ConditionalOnClass(SpanHandler.class)
|
||||
static class BraveConfiguration {
|
||||
/**
|
||||
* Corresponds to {@link ModulithObservations.LowKeys#MODULE_KEY}
|
||||
*/
|
||||
private static final String MODULE_KEY_TAG_NAME = "module.key";
|
||||
|
||||
@Bean
|
||||
SpanFilter localSpanFilter() {
|
||||
return new LocalServiceRenamingSpanFilter();
|
||||
SpanHandler localServiceNameRenamingSpanHandler() {
|
||||
return new SpanHandler() {
|
||||
@Override public boolean end(TraceContext context, MutableSpan span, Cause cause) {
|
||||
String tag = span.tag(MODULE_KEY_TAG_NAME);
|
||||
if (tag != null) {
|
||||
span.localServiceName(tag);
|
||||
}
|
||||
return super.end(context, span, cause);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -39,13 +39,13 @@ import org.springframework.scheduling.annotation.AsyncAnnotationAdvisor;
|
||||
*
|
||||
* @author Oliver Drotbohm
|
||||
*/
|
||||
class ModuleTracingBeanPostProcessorIntegrationTests {
|
||||
class ModuleObservabilityBeanPostProcessorIntegrationTests {
|
||||
|
||||
@Test
|
||||
void decoratesExposedComponentsWithTracingInterceptor() {
|
||||
|
||||
SampleComponent bean = SpringApplication
|
||||
.run(new Class<?>[] { ExampleApplication.class, ModuleTracingConfiguration.class }, new String[] {})
|
||||
.run(new Class<?>[] { ExampleApplication.class, ModuleObservabilityConfiguration.class }, new String[] {})
|
||||
.getBean(SampleComponent.class);
|
||||
|
||||
assertThat(bean).isInstanceOfSatisfying(Advised.class, it -> {
|
||||
@@ -60,7 +60,7 @@ class ModuleTracingBeanPostProcessorIntegrationTests {
|
||||
}
|
||||
|
||||
@Configuration
|
||||
static class ModuleTracingConfiguration {
|
||||
static class ModuleObservabilityConfiguration {
|
||||
|
||||
@Bean ModuleObservabilityBeanPostProcessor foo(ConfigurableApplicationContext context) {
|
||||
|
||||
@@ -32,7 +32,7 @@ import org.springframework.modulith.runtime.ApplicationModulesRuntime;
|
||||
*
|
||||
* @author Oliver Drotbohm
|
||||
*/
|
||||
class ModuleTracingBeanPostProcessorUnitTests {
|
||||
class ModuleObservabilityBeanPostProcessorUnitTests {
|
||||
|
||||
@Test // GH-498
|
||||
void doesNotProxyConfiguationProperties() {
|
||||
Reference in New Issue
Block a user