【问题标题】:DogstatsD not sending JVM runtime metrics from Google App Engine flex environmentDogstatsD 不从 Google App Engine flex 环境发送 JVM 运行时指标
【发布时间】:2023-01-31 04:53:15
【问题描述】:

根据 DataDog JVM 指标收集默认启用 Java tracer v0.29.0+

https://docs.datadoghq.com/tracing/metrics/runtime_metrics/java/

我的代理正在运行并且跟踪指标正常,但我在 APM 部分的 JVM 指标选项卡上看不到数据。

我与 DD 帮助台确认,所有内容都已针对容器化环境进行了正确配置。我期待 JVM 指标自动像这个文档描述的那样:

https://docs.datadoghq.com/tracing/metrics/runtime_metrics/java/

应用程序.yaml

  DD_AGENT_HOST:  "our_gcp_host"
  DD_TRACE_AGENT_PORT: "80"
  DD_ENV: "dev"
  DD_SERVICE: "our_service_tag"

dd-app.yaml

service: dd-agent
runtime: custom
env: flex

env_variables:
  DD_APM_ENABLED: "true"
  DD_APM_NON_LOCAL_TRAFFIC: "true"
  DD_APM_RECEIVER_PORT: 8080 // custom port configuration
  DD_DOGSTATSD_NON_LOCAL_TRAFFIC: 'true'
  DD_DOGSTATSD_PORT: 8125

network:
  forwarded_ports:
    - 8125/udp

【问题讨论】:

    标签: google-app-engine datadog statsd


    【解决方案1】:

    我发布这个是为了回答这个问题。这是几天的调查,但我们想通了。

    解决方案是将代理部署到计算引擎实例。据我的同事说,原因是:

    尽管应用引擎和文档说您可以转发端口,但看起来它实际上不允许通过 dns 访问端口,只是 ips 随着实例的上升/下降而变化。我们制作了一个 dd-agent 的计算引擎实例,并将我们的 api 设置为它的 ip。

    GCP 对 App Engine 中的端口转发并不诚实。您可以转发,但无法使用应用引擎 dns,因此您必须使用实例 ips。它也看起来像 udp 负载平衡器可能无法与应用程序引擎一起工作,这使得端口转发背后的整个想法有点毫无意义。

    试试看!我们看到我们的指标立即显示出来。

    【讨论】: