---
title: Charmhub | Deploy Opentelemetry Collector using Charmhub - The Open Operator
  Collection
description: Deploy the latest version of Opentelemetry Collector on any cloud.
url: https://charmhub.io/opentelemetry-collector/configurations
---

# Opentelemetry Collector

[Canonical Observability](https://charmhub.io/publisher/observability "View all packages from Canonical Observability")

* [Canonical Observability](https://charmhub.io/publisher/observability "View all packages from Canonical Observability")

Platform:

26.04

24.04

22.04

0.130/stable rev531-1-g92747a1

```
juju deploy opentelemetry-collector --channel 0.130/stable
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

* [always\_enable\_jaeger\_grpc](https://charmhub.io/opentelemetry-collector/configurations#always_enable_jaeger_grpc)
* [always\_enable\_jaeger\_thrift\_http](https://charmhub.io/opentelemetry-collector/configurations#always_enable_jaeger_thrift_http)
* [always\_enable\_zipkin](https://charmhub.io/opentelemetry-collector/configurations#always_enable_zipkin)
* [debug\_exporter\_for\_logs](https://charmhub.io/opentelemetry-collector/configurations#debug_exporter_for_logs)
* [debug\_exporter\_for\_metrics](https://charmhub.io/opentelemetry-collector/configurations#debug_exporter_for_metrics)
* [debug\_exporter\_for\_traces](https://charmhub.io/opentelemetry-collector/configurations#debug_exporter_for_traces)
* [extra\_alert\_labels](https://charmhub.io/opentelemetry-collector/configurations#extra_alert_labels)
* [forward\_alert\_rules](https://charmhub.io/opentelemetry-collector/configurations#forward_alert_rules)
* [global\_scrape\_interval](https://charmhub.io/opentelemetry-collector/configurations#global_scrape_interval)
* [global\_scrape\_timeout](https://charmhub.io/opentelemetry-collector/configurations#global_scrape_timeout)
* [max\_elapsed\_time\_min](https://charmhub.io/opentelemetry-collector/configurations#max_elapsed_time_min)
* [memory\_limit\_percentage](https://charmhub.io/opentelemetry-collector/configurations#memory_limit_percentage)
* [path\_exclude](https://charmhub.io/opentelemetry-collector/configurations#path_exclude)
* [ports](https://charmhub.io/opentelemetry-collector/configurations#ports)
* [processors](https://charmhub.io/opentelemetry-collector/configurations#processors)
* [queue\_size](https://charmhub.io/opentelemetry-collector/configurations#queue_size)
* [tls\_insecure\_skip\_verify](https://charmhub.io/opentelemetry-collector/configurations#tls_insecure_skip_verify)
* [tracing\_sampling\_rate\_charm](https://charmhub.io/opentelemetry-collector/configurations#tracing_sampling_rate_charm)
* [tracing\_sampling\_rate\_error](https://charmhub.io/opentelemetry-collector/configurations#tracing_sampling_rate_error)
* [tracing\_sampling\_rate\_workload](https://charmhub.io/opentelemetry-collector/configurations#tracing_sampling_rate_workload)

[Learn about configurations >](https://juju.is/docs/juju/configuration#heading--application-configuration)

* always\_enable\_jaeger\_grpc | boolean

  Force-enable the receiver for the 'jaeger\_grpc' protocol in OpenTelemetry Collector, even if there is no integration currently requesting it.
* always\_enable\_jaeger\_thrift\_http | boolean

  Force-enable the receiver for the 'jaeger\_thrift\_http' protocol in OpenTelemetry Collector, even if there is no integration currently requesting it.
* always\_enable\_zipkin | boolean

  Force-enable the receiver for the 'zipkin' protocol in OpenTelemetry Collector, even if there is no integration currently requesting it.
* debug\_exporter\_for\_logs | boolean

  Add a debug exporter to the logs pipeline of the OpenTelemetry Collector config.
  WARNING: Using the debug exporter in a production environment is discouraged, as it will write all collected telemetry to stdout, i.e. to syslog, which is likely to cause log flooding. This can be avoided with the correct usage of the `path_exclude` config option.
* debug\_exporter\_for\_metrics | boolean

  Add a debug exporter to the metrics pipeline of the OpenTelemetry Collector config.
  WARNING: Using the debug exporter in a production environment is discouraged, as it will write all collected telemetry to stdout, i.e. to syslog, which is likely to cause log flooding. This can be avoided with the correct usage of the `path_exclude` config option.
* debug\_exporter\_for\_traces | boolean

  Add a debug exporter to the traces pipeline of the OpenTelemetry Collector config.
  WARNING: Using the debug exporter in a production environment is discouraged, as it will write all collected telemetry to stdout, i.e. to syslog, which is likely to cause log flooding. This can be avoided with the correct usage of the `path_exclude` config option.
* extra\_alert\_labels | string

  Comma separated key-value pairs of labels to be added to all alerts. This could be useful for differentiating between staging and production environments.
* forward\_alert\_rules | boolean

  Default: True

  Toggle forwarding of alert rules.
* global\_scrape\_interval | string

  Default: 1m

  How frequently should instances be scraped. Supported units: y, w, d, h, m, s.
* global\_scrape\_timeout | string

  Default: 10s

  How long to wait before timing out a scrape from a target. Supported units: y, w, d, h, m, s.
* max\_elapsed\_time\_min | int

  Default: 5

  Maximum time in minutes to wait for the storage backend. After this time, data loss will occur.
* memory\_limit\_percentage | int

  Default: 100

  Request a hard limit for the collector's memory limiter processor as a
  percentage of the total available memory. The resulting processor
  config will be applied to all of the collector's pipelines.

  Ref: https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/memorylimiterprocessor

  The collector measures memory usage every second to determine if the
  limits are being exceeded. If the requested limit is invalid, the charm
  goes into blocked status and the hard limit defaults to 100% of the
  total available memory. The soft limit is always 80% of the hard limit
  percentage. A requested limit of 0% means no memory limit is enforced.
  For example:

  | user input (%) | hard limit (% of total) | soft limit (% of total) |
  | -10 | 0 (no limit) | 0 |
  | 0 | 0 (no limit) | 0 |
  | 50 | 50 | 40 |
  | 100 | 100 | 80 |

  > Warning: Incoming data can consume additional memory in a Collector
  > before the memory limiter processor is able to reject it. Be sure to
  > consider this when setting your limits.

  The total available memory is determined by reading the cgroup memory
  limit from `/sys/fs/cgroup/memory.max`. If the file is not present or
  contains "max", the total physical memory of the machine is used
  instead.
* path\_exclude | string

  Glob for a set of log files present in `/var/log` that should be ignored by OpenTelemetry Collector.
  For example, `/var/log/**/{app_one,app_two}.log` will result in the agent ignoring both `/var/log/app_one.log` and `/var/log/app_two.log`.
  To provide multiple path exclusion globs, separate with semicolons (;), such as `/var/log/app_one.log;/var/log/juju`.
  Note that the value you provide here is not interpreted as a path, but rather as a glob matcher. Specifically, if you want to exclude logs in the `/var/log/test` folder, you should set the config to `/var/log/test/**`.
* ports | string

  Comma-separated list of port overrides in the form "name=port[,name=port,...]".
  Only the ports you want to change need to be listed; all others keep their defaults.

  Available port names and their defaults:
  loki\_http=3500 HTTP endpoint for Loki log ingestion
  otlp\_grpc=4317 gRPC endpoint for OTLP protocol
  otlp\_http=4318 HTTP endpoint for OTLP protocol
  metrics=8888 Endpoint for Prometheus metrics scraping
  health=13133 Health check endpoint
  jaeger\_grpc=14250 gRPC endpoint for Jaeger protocol
  jaeger\_thrift\_http=14268 HTTP endpoint for Jaeger Thrift protocol
  zipkin=9411 HTTP endpoint for Zipkin protocol
  node\_exporter=9100 HTTP endpoint for node-exporter metrics

  Example — override only the ports that conflict with other services:
  juju config opentelemetry-collector ports="loki\_http=3501,otlp\_grpc=4320"
* processors | string

  A global opentelemetry-collector "processors" config in YAML format, without the
  "processors:" top-level key. For example, to represent a "processors" section
  such as:

  ```
  processors:
    batch:
    memory_limiter:
      limit_mib: 4000
  ```

  you could use `juju config otelcol processors=@processors.yaml`, with:

  ```
  # processors.yaml
  batch:
  memory_limiter:
    limit_mib: 4000
  ```

  The provided processors section will be applied to all relevant pipelines.

  Reference: https://opentelemetry.io/docs/collector/configuration/#processors
* queue\_size | int

  Default: 1000

  Maximum number of incoming batches of metrics, logs, traces the queue can accept.
  Ref: https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/exporterhelper/README.md#configuration
* tls\_insecure\_skip\_verify | boolean

  Flag to skip the validation of certificates from servers we connect to with TLS.
  If "true", self-signed certs can be used seamlessly; this setting will be applied
  to all the otelcol exporter configurations and any receivers which actively make
  requests to servers, e.g. the prometheus receiver scraping metrics endpoints.
* tracing\_sampling\_rate\_charm | float

  Default: 100.0

  This property defines the percentage of charm traces that are sent to the tracing backend. Setting it to 100 would mean all charm traces are kept, setting to 0 means charm traces aren't sent to the tracing backend at all. Anything outside of 0-100 range will be clamped to this range by OpenTelemetry Collector.
* tracing\_sampling\_rate\_error | float

  Default: 100.0

  This property defines the percentage of error traces (from all sources) that are sent to the tracing backend. Setting it to 100 would mean all error traces are kept, setting to 0 means error traces aren't sent to the tracing backend at all. Anything outside of 0-100 range will be clamped to this range by OpenTelemetry Collector.
* tracing\_sampling\_rate\_workload | float

  Default: 1.0

  This property defines the percentage of workload traces that are sent to the tracing backend. Setting it to 100 would mean all workload traces are kept, setting to 0 means workload traces aren't sent to the tracing backend at all. Anything outside of 0-100 range will be clamped to this range by OpenTelemetry Collector.
