---
title: OpenTelemetry using Docker
description: Run the OpenTelemetry Collector in a Docker container and send logs and host metrics to Coralogix.
url: https://coralogix.com/docs/opentelemetry/configuration-options/opentelemetry-using-docker/
product: apm
feature: OTel Agent
feature_id: apm-otel-agent
feature_identifier: apm/apm-otel-agent
last_updated: '2026-10-27'
---

# OpenTelemetry using Docker

Run the [OpenTelemetry](https://coralogix.com/docs/opentelemetry/getting-started.md) Collector in a Docker container and send logs and host metrics to Coralogix. Your configuration and log file stay on the host and are mounted into the container, so you can edit them without rebuilding anything.

## What you need

* Docker [installed](https://docs.docker.com/engine/install/).
* A Coralogix [Send-Your-Data API key](https://coralogix.com/docs/user-guides/account-management/api-keys/send-your-data-api-key.md).
* Your [Coralogix domain](https://coralogix.com/docs/user-guides/account-management/account-settings/coralogix-domain.md).

## Configure the Collector

1

<!-- -->

.

Create the configuration file

Save this as `config.yaml`. It tails a log file and scrapes CPU and memory, then exports both to Coralogix.

```
receivers:

  filelog:

    start_at: beginning

    include:

      - /example.log

    include_file_path: true

    multiline: {line_start_pattern: "\\n"}

  hostmetrics:

    collection_interval: 30s

    scrapers:

      cpu:

      memory:

exporters:

  coralogix:

    domain: "eu2.coralogix.com"

    private_key: "Private key"

    application_name: "Application Name"

    subsystem_name: "Subsystem Name"

    application_name_attributes:

      - "cx.application.name"

    subsystem_name_attributes:

      - "cx.subsystem.name"

    timeout: 30s



service:

  pipelines:

    logs:

      receivers: [ filelog ]

      exporters: [ coralogix ]

    metrics:

      receivers: [ hostmetrics ]

      exporters: [ coralogix ]
```

| Value              | What to enter                                                                                                                                                                                                                                                                             |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `private_key`      | Your Coralogix [Send-Your-Data API key](https://coralogix.com/docs/user-guides/account-management/api-keys/send-your-data-api-key.md)                                                                                                                                                     |
| `domain`           | Your Coralogix [domain](https://coralogix.com/docs/user-guides/account-management/account-settings/coralogix-domain.md)                                                                                                                                                                   |
| `application_name` | The [application](https://coralogix.com/docs/user-guides/account-management/account-settings/application-and-subsystem-names.md) name shown in your dashboard. A company called SuperData might use `SuperData`, or `SuperData-Test` for a test environment                               |
| `subsystem_name`   | The [subsystem](https://coralogix.com/docs/user-guides/account-management/account-settings/application-and-subsystem-names.md) name shown in your dashboard. Most applications have several (backend servers, middleware, frontend servers) and this is what lets you separate them later |

2

<!-- -->

.

Create a log file to read

Save this as `example.log`, so there is something for the `filelog` receiver to pick up.

```
2023-06-19 05:20:50 ERROR This is a test error message

2023-06-20 12:50:00 DEBUG This is a test debug message

2023-06-21 12:34:56 INFO This is a test info message
```

3

<!-- -->

.

Run the container

Mount both files from the working directory into the container. See the [Collector Docker guide](https://opentelemetry.io/docs/collector/getting-started/#docker) for the mount paths.

```
docker pull otel/opentelemetry-collector-contrib

docker run -d \

  -v "$(pwd)"/config.yaml:/etc/otelcol-contrib/config.yaml \

  -v "$(pwd)"/example.log:/example.log \

  otel/opentelemetry-collector-contrib
```

## Validate the logs

In Coralogix, select **LiveTail**, then **Start**. The three test lines arrive as structured records under the application and subsystem names you configured.

[![Coralogix LiveTail showing three OpenTelemetry log records with severity, application, subsystem, and body fields](/docs/assets/images/Untitled-18-1024x675-9ef0fbc7b0cd0ed5ab7c6057cf8ed13d.webp)](https://coralogix.com/docs/assets/images/Untitled-18-1024x675-9ef0fbc7b0cd0ed5ab7c6057cf8ed13d.webp)

Shows the test file's error, debug, and info lines as they arrive.

## Validate the metrics

1

<!-- -->

.

Open Grafana

Go to the [hosted Grafana view](https://coralogix.com/docs/user-guides/visualizations/hosted-grafana-view.md).

2

<!-- -->

.

Browse the metrics

In the left-hand panel, select **Explore**, then **Metrics browser**, and select a metric. The host metrics receiver produces `system_cpu_time_total` and `system_memory_usage_By`.

[![Grafana metrics browser with the host metrics produced by the Collector listed for selection](/docs/assets/images/Untitled-1-1-1fb85b449db845cc4426681cce0d7a7d.webp)](https://coralogix.com/docs/assets/images/Untitled-1-1-1fb85b449db845cc4426681cce0d7a7d.webp)

Shows the CPU and memory series the `hostmetrics` scrapers emit.

## Related resources

[OpenTelemetry Collector](https://coralogix.com/docs/opentelemetry/getting-started.md)[Running OpenTelemetry as a CLI application](https://coralogix.com/docs/opentelemetry/integrations/running-opentelemetry-as-a-cli-application.md)[Hosted Grafana view](https://coralogix.com/docs/user-guides/visualizations/hosted-grafana-view.md)
