---
title: "Traefik Jaeger Documentation"
description: "Traefik supports several tracing backends, including Jaeger. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
---

# Jaeger

To enable the Jaeger tracer:

```yaml tab="File (YAML)"
tracing:
  jaeger: {}
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger]
```

```bash tab="CLI"
--tracing.jaeger=true
```

!!! warning
    Traefik is able to send data over the compact thrift protocol to the [Jaeger agent](https://www.jaegertracing.io/docs/deployment/#agent)
    or a [Jaeger collector](https://www.jaegertracing.io/docs/deployment/#collector).

!!! info
    All Jaeger configuration can be overridden by [environment variables](https://github.com/jaegertracing/jaeger-client-go#environment-variables)

#### `samplingServerURL`

_Required, Default="http://localhost:5778/sampling"_

Address of the Jaeger Agent HTTP sampling server.

```yaml tab="File (YAML)"
tracing:
  jaeger:
    samplingServerURL: http://localhost:5778/sampling
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger]
    samplingServerURL = "http://localhost:5778/sampling"
```

```bash tab="CLI"
--tracing.jaeger.samplingServerURL=http://localhost:5778/sampling
```

#### `samplingType`

_Required, Default="const"_

Type of the sampler.

Valid values are:

- `const`
- `probabilistic`
- `rateLimiting`

```yaml tab="File (YAML)"
tracing:
  jaeger:
    samplingType: const
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger]
    samplingType = "const"
```

```bash tab="CLI"
--tracing.jaeger.samplingType=const
```

#### `samplingParam`

_Required, Default=1.0_

Value passed to the sampler.

Valid values are:

- for `const` sampler, 0 or 1 for always false/true respectively
- for `probabilistic` sampler, a probability between 0 and 1
- for `rateLimiting` sampler, the number of spans per second

```yaml tab="File (YAML)"
tracing:
  jaeger:
    samplingParam: 1.0
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger]
    samplingParam = 1.0
```

```bash tab="CLI"
--tracing.jaeger.samplingParam=1.0
```

#### `localAgentHostPort`

_Required, Default="127.0.0.1:6831"_

Local Agent Host Port instructs the reporter to send spans to the Jaeger Agent at this address (host:port).

```yaml tab="File (YAML)"
tracing:
  jaeger:
    localAgentHostPort: 127.0.0.1:6831
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger]
    localAgentHostPort = "127.0.0.1:6831"
```

```bash tab="CLI"
--tracing.jaeger.localAgentHostPort=127.0.0.1:6831
```

#### `gen128Bit`

_Optional, Default=false_

Generates 128 bits trace IDs, compatible with OpenCensus.

```yaml tab="File (YAML)"
tracing:
  jaeger:
    gen128Bit: true
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger]
    gen128Bit = true
```

```bash tab="CLI"
--tracing.jaeger.gen128Bit
```

#### `propagation`

_Required, Default="jaeger"_

Sets the propagation header type.

Valid values are:

- `jaeger`, jaeger's default trace header.
- `b3`, compatible with OpenZipkin

```yaml tab="File (YAML)"
tracing:
  jaeger:
    propagation: jaeger
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger]
    propagation = "jaeger"
```

```bash tab="CLI"
--tracing.jaeger.propagation=jaeger
```

#### `traceContextHeaderName`

_Required, Default="uber-trace-id"_

HTTP header name used to propagate tracing context.
This must be in lower-case to avoid mismatches when decoding incoming headers.

```yaml tab="File (YAML)"
tracing:
  jaeger:
    traceContextHeaderName: uber-trace-id
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger]
    traceContextHeaderName = "uber-trace-id"
```

```bash tab="CLI"
--tracing.jaeger.traceContextHeaderName=uber-trace-id
```

### disableAttemptReconnecting

_Optional, Default=true_

Disables the UDP connection helper that periodically re-resolves the agent's hostname and reconnects if there was a change.
Enabling the re-resolving of UDP address make the client more robust in Kubernetes deployments.

```yaml tab="File (YAML)"
tracing:
  jaeger:
    disableAttemptReconnecting: false
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger]
    disableAttemptReconnecting = false
```

```bash tab="CLI"
--tracing.jaeger.disableAttemptReconnecting=false
```

### `collector`
#### `endpoint`

_Optional, Default=""_

Collector Endpoint instructs the reporter to send spans to the Jaeger Collector at this URL.

```yaml tab="File (YAML)"
tracing:
  jaeger:
    collector:
        endpoint: http://127.0.0.1:14268/api/traces?format=jaeger.thrift
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger.collector]
    endpoint = "http://127.0.0.1:14268/api/traces?format=jaeger.thrift"
```

```bash tab="CLI"
--tracing.jaeger.collector.endpoint=http://127.0.0.1:14268/api/traces?format=jaeger.thrift
```

#### `user`

_Optional, Default=""_

User instructs the reporter to include a user for basic HTTP authentication when sending spans to the Jaeger Collector.

```yaml tab="File (YAML)"
tracing:
  jaeger:
    collector:
        user: my-user
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger.collector]
    user = "my-user"
```

```bash tab="CLI"
--tracing.jaeger.collector.user=my-user
```

#### `password`

_Optional, Default=""_

Password instructs the reporter to include a password for basic HTTP authentication when sending spans to the Jaeger Collector.

```yaml tab="File (YAML)"
tracing:
  jaeger:
    collector:
        password: my-password
```

```toml tab="File (TOML)"
[tracing]
  [tracing.jaeger.collector]
    password = "my-password"
```

```bash tab="CLI"
--tracing.jaeger.collector.password=my-password
```
