admin管理员组文章数量:1390749
I followed the Spring's documentation to see traces in Mongodb
by adding the bean
@Bean
MongoClientSettingsBuilderCustomizer mongoMetricsSynchronousContextProvider(ObservationRegistry registry) {
return (clientSettingsBuilder) -> {
clientSettingsBuilder.contextProvider(ContextProviderFactory.create(registry))
.addCommandListener(new MongoObservationCommandListener(registry));
};
}
and adding the following properties to :
# Disable Spring Boot's autoconfigured tracing
management.metrics.mongomand.enabled=false
# Enable it manually
management.tracing.enabled=true
I can see the traces in the zipkins. However my question was since, Spring Already provides an autoconfiguration class metrics MongoAutoConfiguration
.
@AutoConfiguration(before = MongoAutoConfiguration.class,
after = { MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
@ConditionalOnClass(MongoClientSettings.class)
@ConditionalOnBean(MeterRegistry.class)
public class MongoMetricsAutoConfiguration {
@ConditionalOnClass(MongoMetricsCommandListener.class)
@ConditionalOnProperty(name = "management.metrics.mongomand.enabled", havingValue = "true",
matchIfMissing = true)
static class MongoCommandMetricsConfiguration {
@Bean
MongoClientSettingsBuilderCustomizer mongoMetricsCommandListenerClientSettingsBuilderCustomizer(
MongoMetricsCommandListener mongoMetricsCommandListener) {
return (clientSettingsBuilder) -> clientSettingsBuilder.addCommandListener(mongoMetricsCommandListener);
}
Why do we need to disable bean from MongoAutoConfiguration
? How do we get both metrics and traces ?
I followed the Spring's documentation to see traces in Mongodb
by adding the bean
@Bean
MongoClientSettingsBuilderCustomizer mongoMetricsSynchronousContextProvider(ObservationRegistry registry) {
return (clientSettingsBuilder) -> {
clientSettingsBuilder.contextProvider(ContextProviderFactory.create(registry))
.addCommandListener(new MongoObservationCommandListener(registry));
};
}
and adding the following properties to :
# Disable Spring Boot's autoconfigured tracing
management.metrics.mongomand.enabled=false
# Enable it manually
management.tracing.enabled=true
I can see the traces in the zipkins. However my question was since, Spring Already provides an autoconfiguration class metrics MongoAutoConfiguration
.
@AutoConfiguration(before = MongoAutoConfiguration.class,
after = { MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
@ConditionalOnClass(MongoClientSettings.class)
@ConditionalOnBean(MeterRegistry.class)
public class MongoMetricsAutoConfiguration {
@ConditionalOnClass(MongoMetricsCommandListener.class)
@ConditionalOnProperty(name = "management.metrics.mongomand.enabled", havingValue = "true",
matchIfMissing = true)
static class MongoCommandMetricsConfiguration {
@Bean
MongoClientSettingsBuilderCustomizer mongoMetricsCommandListenerClientSettingsBuilderCustomizer(
MongoMetricsCommandListener mongoMetricsCommandListener) {
return (clientSettingsBuilder) -> clientSettingsBuilder.addCommandListener(mongoMetricsCommandListener);
}
Why do we need to disable bean from MongoAutoConfiguration
? How do we get both metrics and traces ?
1 Answer
Reset to default 0I think this is what is happening:
- Micrometer itself has metrics instrumentation for MongoDB (using Micrometer's Metrics API), Spring Boot auto-configures this (so you can get metrics out of the box through this mechanism).
- Spring Data MongoDB instruments itself using Micrometer's Observation API which provides metrics and tracing outputs.
management.metrics.mongomand.enabled=false
is needed so that#1
is disabled, so MongoDB will not be instrumented twice.management.tracing.enabled=true
might not be needed, its default value is already true (see: Spring Boot Docs).
So since #2
already provides metrics and tracing data, you should disable #1
so you will not record metrics twice. Please check your metrics output, you should see MongoDB metrics.
本文标签: Get both metrics and traces in Mongodb in SpringStack Overflow
版权声明:本文标题:Get both metrics and traces in Mongodb in Spring - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744585921a2614194.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论