打开/关闭本地或测试环境的可观察性。
我们的项目有以下依赖项。通过这些,它可以生成指标、跟踪并将其发送到某些可观察平台。 在生产中,我们能够看到那些痕迹、那些指标,这意味着所有依赖项都在工作
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-otlp</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-otlp</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-otel</artifactId>
</dependency>
但是,在非生产环境中,例如本地主机或 QA,我们根本不想处理可观察性、跟踪、指标。 因此,我们现在正在做的是,对于开发或 QA,我们完全从 pom 中删除依赖项,这意味着我们只为非产品管理另一个 pon(已删除可观察性依赖项)。 如果我们要保留这些,默认情况下,依赖项将尝试发送到某个本地主机,期望可观察性平台位于本地主机中,但同样,在 QA 和本地中,不存在这样的情况。
有没有办法完全停用发送跟踪和指标,而不是维护两个 pom 文件,也许可以通过一些 spring 属性?
您可以使用以下属性来禁用跟踪和指标:
management:
otlp:
metrics:
export:
enabled: false
tracing:
enabled: false
Spring 启动器,例如 https://opentelemetry.io/docs/languages/java/automatic/spring-boot/ 或 https://github.com/grafana/grafana-opentelemetry-starter 有自己的属性禁用属性。