OpenTelemetry Collector on a Docker Environment
Basic OpenTelemetry Deployment on Docker Environments
When deploying OpenTelemetry Collector on a Docker Environment, refer to Basic OpenTelemetry Integration on Docker.
See OpenTelemetry Runtime Metrics and Container Resource Attributes Collection for Telemetry Data for optional deployment configurations.
receivers:
  otlp:
    protocols:
      grpc:
      http:
        cors:
          allowed_origins:
            - "http://*"
            - "https://*"
exporters:
  otlphttp:
    logs_endpoint: https://<REPLACE WITH KFUSE ADDRESS>/ingester/otlp/v1/logs
    metrics_endpoint: https://<REPLACE WITH KFUSE ADDRESS>/ingester/otlp/metrics
    traces_endpoint: https://<REPLACE WITH KFUSE ADDRESS>/ingester/otlp/traces
processors:
  batch:
    timeout: 10s
  resource:
    attributes:
    - key: kf_platform (1)
      value: "docker"
      action: upsert
  resourcedetection:
    detectors:
    - env
    - docker
    - ec2
    - gcp
    - azure
    override: true
    timeout: 2s
connectors:
  spanmetrics:
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch, resource, resourcedetection]
      exporters: [otlphttp]
    metrics:
      exporters: [otlphttp]
      processors: [batch, resource, resourcedetection]
      receivers: [otlp]
    logs:
      exporters: [otlphttp]
      processors: [batch, resource, resourcedetection]
      receivers: [otlp]| 1 | kf_platformwithdockervalue is a required resource attribute. | 
Docker Resource Detector
The Docker Resource Detector ensures that the host machine’s hostname is used as the host.name resource attribute. This requires that the open telemetry collector have permissions to read from the docker.sock file. When running the open telemetry collector as part of docker-compose, add the code in Add READ permission for docker.sock.
    volumes:
      ...
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
        read_only: True
    user: 10001:<REPLACE GROUP> (1)| 1 | The groupof thedocker.sockfile. Get by runningstat -c '%g' /var/run/docker.sockcommand at the prompt. | 
Docker and System-Level Metrics
Kloudfuse APM Services integrate with Docker and System Metrics to show related infrastructure metrics. See Service Detail Infrastructure.
You can export these metrics using either Datadog agent, or the OpenTelemetry collector.
When using the OpenTelemetry Collector, you must update it with additional configurations. Specifically, enable dockerstats and hostmetrics receivers,  add additional kf_metrics_agent resource attributes. See Enable Additional Attributes for System-Level Metrics.
receivers:
 ...
  docker_stats:
  hostmetrics:
    collection_interval: 30s
    scrapers:
      cpu:
        metrics:
          system.cpu.utilization:
            enabled: true
      memory:
        metrics:
          system.memory.utilization:
            enabled: true
      disk:
      filesystem:
        metrics:
          system.filesystem.utilization:
            enabled: true
processors:
  batch:
    timeout: 10s
  resource:
    attributes:
    - key: kf_platform
      value: "docker"
      action: upsert
    - key: kf_metrics_agent
      value: "otlp"
      action: upsert
  resourcedetection:
    detectors:
    - env
    - docker
    - ec2
    - gcp
    - azure
    override: true
    timeout: 2s
service:
  pipelines:
   ...
    metrics:
      exporters: [otlphttp]
      processors: [batch, resource, resourcedetection]
      receivers: [otlp, docker_stats, hostmetrics]