Skip to content

[exporter/datadog] pod restarts when deployed as daemonset and hostname not set in config #40373

Closed
@jackgopack4

Description

@jackgopack4

Component(s)

pkg/datadog

What happened?

Description

Kubernetes restarts pod after 30 seconds when deployed as daemonset with Datadog Exporter enabled, if exporters::datadog::hostname is not set

Steps to Reproduce

  • edit examples/kubernetes/daemonset-collector-dev.yaml to include a datadog exporter with an API key
  • make kind-build
  • make kind-install-daemonset

Expected Result

pod starts up with some sort of system hostname detected

Actual Result

pod restarts every 30 seconds

Collector version

v0.127.0 (main)

Environment information

Environment

OS: Linux/Kubernetes daemonset

OpenTelemetry Collector configuration

mode: daemonset

image:
  repository: otelcontribcol-dev
  tag: "0.0.1"
  pullPolicy: IfNotPresent

command:
  name: otelcontribcol

extraEnvs:
  - name: K8S_NODE_NAME
    valueFrom:
      fieldRef:
        fieldPath: spec.nodeName
  - name: DD_SITE
    value: "datad0g.com"
  - name: DD_API_KEY
    valueFrom:
      secretKeyRef:
        name: datadog-secret
        key: api-key

clusterRole:
  create: true
  rules:
    - apiGroups:
        - ''
      resources:
        - 'pods'
        - 'nodes'
      verbs:
        - 'get'
        - 'list'
        - 'watch'
    - apiGroups: [ "" ]
      resources: [ "nodes/stats", "nodes/proxy"]
      verbs: [ "get" ]


config:
  exporters:
    debug:
      verbosity: detailed
    datadog:
      api:
        site: ${env:DD_SITE}
        key: ${env:DD_API_KEY}

  receivers:
    kubeletstats:
      collection_interval: 10s
      auth_type: 'serviceAccount'
      endpoint: '${env:K8S_NODE_NAME}:10250'
      insecure_skip_verify: true
      k8s_api_config:
        auth_type: serviceAccount
      metrics:
        container.cpu.utilization:
          enabled: true
        container.cpu.time:
          enabled: true
        container.cpu.usage:
          enabled: true
        k8s.container.cpu_limit_utilization:
          enabled: true

  service:
    pipelines:
      metrics:
        receivers: [kubeletstats]
        processors: [batch]
        exporters: [debug, datadog]

Log output

john.peterson@COMP-HHVKJYJXCY opentelemetry-collector-contrib % kubectl logs daemonset-collector-dev-opentelemetry-collector-agent-zs768
2025-05-29T17:54:47.545Z	info	[email protected]/service.go:199	Setting up own telemetry...	{"resource": {}}
2025-05-29T17:54:47.546Z	info	builders/builders.go:26	Development component. May change in the future.	{"resource": {}, "otelcol.component.id": "debug", "otelcol.component.kind": "exporter", "otelcol.signal": "traces"}
2025-05-29T17:54:47.546Z	info	[email protected]/memorylimiter.go:149	Using percentage memory limiter	{"resource": {}, "otelcol.component.kind": "processor", "total_memory_mib": 15972, "limit_percentage": 80, "spike_limit_percentage": 25}
2025-05-29T17:54:47.546Z	info	[email protected]/memorylimiter.go:74	Memory limiter configured	{"resource": {}, "otelcol.component.kind": "processor", "limit_mib": 12777, "spike_limit_mib": 3993, "check_interval": 5}
2025-05-29T17:54:52.551Z	warn	ec2/ec2.go:140	Failed to get EC2 instance ID, host metadata may be incomplete	{"resource": {}, "otelcol.component.id": "datadog", "otelcol.component.kind": "exporter", "otelcol.signal": "metrics", "component": "ec2_provider"}
john.peterson@COMP-HHVKJYJXCY opentelemetry-collector-contrib % kubectl logs daemonset-collector-dev-opentelemetry-collector-agent-zs768 --follow
2025-05-29T17:54:47.545Z	info	[email protected]/service.go:199	Setting up own telemetry...	{"resource": {}}
2025-05-29T17:54:47.546Z	info	builders/builders.go:26	Development component. May change in the future.	{"resource": {}, "otelcol.component.id": "debug", "otelcol.component.kind": "exporter", "otelcol.signal": "traces"}
2025-05-29T17:54:47.546Z	info	[email protected]/memorylimiter.go:149	Using percentage memory limiter	{"resource": {}, "otelcol.component.kind": "processor", "total_memory_mib": 15972, "limit_percentage": 80, "spike_limit_percentage": 25}
2025-05-29T17:54:47.546Z	info	[email protected]/memorylimiter.go:74	Memory limiter configured	{"resource": {}, "otelcol.component.kind": "processor", "limit_mib": 12777, "spike_limit_mib": 3993, "check_interval": 5}
2025-05-29T17:54:52.551Z	warn	ec2/ec2.go:140	Failed to get EC2 instance ID, host metadata may be incomplete	{"resource": {}, "otelcol.component.id": "datadog", "otelcol.component.kind": "exporter", "otelcol.signal": "metrics", "component": "ec2_provider"}

Additional context

same underlying issue as #40372 but datadogexporter should be able to fix it by setting a default timeout when calling Azure provider pending any changes/fixes to the internal/metadataproviders/azure package

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions