You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用OpenTelemetry Java Agent指定库的指标自动埋点但保留追踪?

解决方案

针对你的Akka HTTP场景,目前有两种可行的处理方式,优先推荐在Agent端直接控制,避免无效数据传输:

1. Agent端细粒度关闭Akka HTTP指标(推荐)

OpenTelemetry Java Agent的部分官方instrumentation支持按信号类型(追踪/指标)单独配置开关,Akka HTTP正好属于这类。你不需要用全局的OTEL_INSTRUMENTATION_AKKA_HTTP_ENABLED关闭所有埋点,而是可以单独禁用指标:

方式一:环境变量配置

启动应用时设置以下环境变量:

OTEL_INSTRUMENTATION_AKKA_HTTP_METRICS_ENABLED=false

方式二:配置文件(YAML)

创建一个opentelemetry配置文件(比如otel-config.yaml),内容如下:

otel:
  instrumentation:
    akka-http:
      metrics:
        enabled: false

然后启动应用时通过环境变量指定该文件:

OTEL_CONFIG_FILE=./otel-config.yaml java -javaagent:opentelemetry-javaagent.jar -jar your-app.jar

这样配置后,Akka HTTP的追踪数据会正常收集,指标则会被完全禁用,从根源上避免高基数路由标签的问题。

2. Collector端过滤指标(备选方案)

如果遇到某些instrumentation没有提供细粒度信号开关的情况,可以在OpenTelemetry Collector中通过filterprocessor过滤掉不需要的指标。针对Akka HTTP的场景,示例配置如下:

processors:
  filter/remove-akka-metrics:
    metrics:
      exclude:
        # 匹配所有Akka HTTP相关的指标名称
        match_type: regexp
        metric_names:
          - "akka_http_.*"
        # 也可以针对高基数的route标签过滤
        # attributes:
        #   - key: "route"
        #     match_type: regexp
        #     value: ".*"

service:
  pipelines:
    metrics:
      processors: [filter/remove-akka-metrics]

这种方式是在数据到达Collector后再过滤,适合无法在Agent端控制的场景,但会额外传输无效的指标数据。


内容的提问来源于stack exchange,提问作者Gaël J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:02:09