【问题标题】:DataDog agent not sending Java tracesDataDog 代理不发送 Java 跟踪
【发布时间】:2023-02-24 06:46:10
【问题描述】:

我们有本地 k8s 集群,其中所有内容都使用 Datadog 进行监控,此时我们面临着麻烦。在 Datadog APM 仪表板中,我们看到有关请求和整体信息的信息,但是 Trace 是空的。我发现 article 关于 java traces,做了同样的事情并且从 pod 中得到了错误

[dd.trace 2023-01-26 07:40:33:818 +0000] [dd-trace-processor] WARN datadog.trace.agent.common.writer.ddagent.DDAgentApi - Error while sending 1 (size=2KB) traces. Total: 1, Received: 1, Sent: 0, Failed: 1. java.net.ConnectException: Failed to connect to /X.X.X.X:8126 (Will not log errors for 5 minutes)
[dd.trace 2023-01-26 07:41:23:838 +0000] [OkHttp http://X.X.X.X:8126/...] WARN com.datadog.profiling.uploader.ProfileUploader - Failed to upload profile to http://X.X.X.X:8126/profiling/v1/input java.net.ConnectException: Failed to connect to /X.X.X.X:8126 (Will not log errors for 5 minutes)

X.X.X.X 是工作节点的 ip 地址

这是 DataDog Helm Chart

这是测试 java 应用程序

apiVersion: v1
kind: Pod
metadata:
  name: java
  annotations:
    admission.datadoghq.com/java-lib.version: "v1.5.0"
    admission.datadoghq.com/js-lib.version: "latest"
    admission.datadoghq.com/python-lib.version: "latest"
  labels:
    app: java
    tags.datadoghq.com/env: "dev"
    tags.datadoghq.com/service: "java"
    tags.datadoghq.com/version: "1.11.1"
    admission.datadoghq.com/enabled: "true"
spec:
  containers:
  - name: java
    image: nilushancosta/datadog-java-apm-demo
    ports:
    - name: java
      containerPort: 8080
    env:
      - name: DD_LOGS_INJECTION
        value: "true"
      - name: DD_ENV
        valueFrom:
          fieldRef:
            fieldPath: metadata.labels['tags.datadoghq.com/env']
      - name: DD_SERVICE
        valueFrom:
          fieldRef:
           fieldPath: metadata.labels['tags.datadoghq.com/service']
      - name: DD_VERSION
        valueFrom:
         fieldRef:
           fieldPath: metadata.labels['tags.datadoghq.com/version']
      - name: DD_SERVICE_NAME
        valueFrom:
          fieldRef:
            fieldPath: metadata.labels['tags.datadoghq.com/service']
      - name: DD_PROFILING_ENABLED
        value: "true"
      - name: DD_TRACE_ANALYTICS_ENABLED
        value: "true"
      - name: DD_LOGS_INJECTION
        value: "true"
      - name: DD_TRACE_ENABLED
        value: "true"
      - name: DD_INSTRUMENTATION_TELEMETRY_ENABLED
        value: "true"
      ---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: java
  name: java
  namespace: default
spec:
  selector:
    app: java
  ports:
  - name: java
    port: 80
    targetPort: 8080```

【问题讨论】:

    标签: kubernetes datadog apm


    【解决方案1】:

    你能找到解决这个问题的方法吗?我正面临类似的事情(开始使用 Datadog),对此我很迷茫。

    此外,关于此注释“admission.datadoghq.com/java-lib.version:”v1.5.0“使用 v1.5.0 的原因是什么?是应用程序 java 版本还是因为任何其他原因?

    谢谢!很抱歉无法为您提供帮助,但如果我找到了解决方案,我会尽快将其发布在这里 :)

    【讨论】: