Add Metrics

This commit is contained in:
Michael 2019-07-18 21:36:05 +02:00 committed by Traefiker Bot
parent 4dc448056c
commit 8e97af8dc3
121 changed files with 8364 additions and 3811 deletions

View file

@ -0,0 +1,106 @@
# DataDog
To enable the DataDog:
```toml tab="File (TOML)"
[metrics]
[metrics.dataDog]
```
```bash tab="CLI"
--metrics
--metrics.datadog
```
#### `address`
_Required, Default="127.0.0.1:8125"_
Address instructs exporter to send metrics to datadog-agent at this address.
```toml tab="File (TOML)"
[metrics]
[metrics.dataDog]
address = "127.0.0.1:8125"
```
```yaml tab="File (TOML)"
metrics:
dataDog:
address: 127.0.0.1:8125
```
```bash tab="CLI"
--metrics
--metrics.datadog.address="127.0.0.1:8125"
```
#### `addEntryPointsLabels`
_Optional, Default=true_
Enable metrics on entry points.
```toml tab="File (TOML)"
[metrics]
[metrics.dataDog]
addEntryPointsLabels = true
```
```yaml tab="File (TOML)"
metrics:
dataDog:
addEntryPointsLabels: true
```
```bash tab="CLI"
--metrics
--metrics.datadog.addEntryPointsLabels=true
```
#### `addServicesLabels`
_Optional, Default=true_
Enable metrics on services.
```toml tab="File (TOML)"
[metrics]
[metrics.dataDog]
addServicesLabels = true
```
```yaml tab="File (TOML)"
metrics:
dataDog:
addServicesLabels: true
```
```bash tab="CLI"
--metrics
--metrics.datadog.addServicesLabels=true
```
#### `pushInterval`
_Optional, Default=10s_
The interval used by the exporter to push metrics to datadog-agent.
```toml tab="File (TOML)"
[metrics]
[metrics.dataDog]
pushInterval = 10s
```
```yaml tab="File (TOML)"
metrics:
dataDog:
pushInterval: 10s
```
```bash tab="CLI"
--metrics
--metrics.datadog.pushInterval=10s
```

View file

@ -0,0 +1,225 @@
# InfluxDB
To enable the InfluxDB:
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
```
```yaml tab="File (TOML)"
metrics:
influxdb: {}
```
```bash tab="CLI"
--metrics
--metrics.influxdb
```
#### `address`
_Required, Default="localhost:8089"_
Address instructs exporter to send metrics to influxdb at this address.
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
address = "localhost:8089"
```
```yaml tab="File (TOML)"
metrics:
influxdb:
address: localhost:8089
```
```bash tab="CLI"
--metrics
--metrics.influxdb.address="localhost:8089"
```
#### `protocol`
_Required, Default="udp"_
InfluxDB's address protocol (udp or http).
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
protocol = "upd"
```
```yaml tab="File (TOML)"
metrics:
influxdb:
protocol: udp
```
```bash tab="CLI"
--metrics
--metrics.influxdb.protocol="udp"
```
#### `database`
_Optional, Default=""_
InfluxDB database used when protocol is http.
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
database = ""
```
```yaml tab="File (TOML)"
metrics:
influxdb:
database: ""
```
```bash tab="CLI"
--metrics
--metrics.influxdb.database=""
```
#### `retentionPolicy`
_Optional, Default=""_
InfluxDB retention policy used when protocol is http.
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
retentionPolicy = ""
```
```yaml tab="File (TOML)"
metrics:
influxdb:
retentionPolicy: ""
```
```bash tab="CLI"
--metrics
--metrics.influxdb.retentionPolicy=""
```
#### `username`
_Optional, Default=""_
InfluxDB username (only with http).
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
username = ""
```
```yaml tab="File (TOML)"
metrics:
influxdb:
username: ""
```
```bash tab="CLI"
--metrics
--metrics.influxdb.username=""
```
#### `password`
_Optional, Default=""_
InfluxDB password (only with http).
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
password = ""
```
```yaml tab="File (TOML)"
metrics:
influxdb:
password: ""
```
```bash tab="CLI"
--metrics
--metrics.influxdb.password=""
```
#### `addEntryPointsLabels`
_Optional, Default=true_
Enable metrics on entry points.
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
addEntryPointsLabels = true
```
```yaml tab="File (TOML)"
metrics:
influxdb:
addEntryPointsLabels: true
```
```bash tab="CLI"
--metrics
--metrics.influxdb.addEntryPointsLabels=true
```
#### `addServicesLabels`
_Optional, Default=true_
Enable metrics on services.
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
addServicesLabels = true
```
```yaml tab="File (TOML)"
metrics:
influxdb:
addServicesLabels: true
```
```bash tab="CLI"
--metrics
--metrics.influxdb.addServicesLabels=true
```
#### `pushInterval`
_Optional, Default=10s_
The interval used by the exporter to push metrics to influxdb.
```toml tab="File (TOML)"
[metrics]
[metrics.influxdb]
pushInterval = 10s
```
```yaml tab="File (TOML)"
metrics:
influxdb:
pushInterval: 10s
```
```bash tab="CLI"
--metrics
--metrics.influxdb.pushInterval=10s
```

View file

@ -0,0 +1,26 @@
# Metrics
Metrics system
{: .subtitle }
Traefik supports 4 metrics backends:
- [DataDog](./datadog.md)
- [InfluxDB](./influxdb.md)
- [Prometheus](./prometheus.md)
- [StatsD](./statsd.md)
## Configuration
To enable metrics:
```toml tab="File (TOML)"
[metrics]
```
```yaml tab="File (TOML)"
metrics: {}
```
```bash tab="CLI"
--metrics
```

View file

@ -0,0 +1,139 @@
# Prometheus
To enable the Prometheus:
```toml tab="File (TOML)"
[metrics]
[metrics.prometheus]
```
```yaml tab="File (TOML)"
metrics:
prometheus: {}
```
```bash tab="CLI"
--metrics
--metrics.prometheus
```
#### `buckets`
_Optional, Default="0.100000, 0.300000, 1.200000, 5.000000"_
Buckets for latency metrics.
```toml tab="File (TOML)"
[metrics]
[metrics.prometheus]
buckets = [0.1,0.3,1.2,5.0]
```
```yaml tab="File (TOML)"
metrics:
prometheus:
buckets:
- 0.1
- 0.3
- 1.2
- 5.0
```
```bash tab="CLI"
--metrics
--metrics.prometheus.buckets=0.100000, 0.300000, 1.200000, 5.000000
```
#### `entryPoint`
_Optional, Default=traefik_
Entry-point used by prometheus to expose metrics.
```toml tab="File (TOML)"
[metrics]
[metrics.prometheus]
entryPoint = traefik
```
```yaml tab="File (TOML)"
metrics:
prometheus:
entryPoint: traefik
```
```bash tab="CLI"
--metrics
--metrics.prometheus.entryPoint=traefik
```
#### `middlewares`
_Optional, Default=""_
Middlewares.
```toml tab="File (TOML)"
[metrics]
[metrics.prometheus]
middlewares = ["xxx", "yyy"]
```
```yaml tab="File (TOML)"
metrics:
prometheus:
middlewares:
- xxx
- yyy
```
```bash tab="CLI"
--metrics
--metrics.prometheus.middlewares="xxx,yyy"
```
#### `addEntryPointsLabels`
_Optional, Default=true_
Enable metrics on entry points.
```toml tab="File (TOML)"
[metrics]
[metrics.prometheus]
addEntryPointsLabels = true
```
```yaml tab="File (TOML)"
metrics:
prometheus:
addEntryPointsLabels: true
```
```bash tab="CLI"
--metrics
--metrics.prometheus.addEntryPointsLabels=true
```
#### `addServicesLabels`
_Optional, Default=true_
Enable metrics on services.
```toml tab="File (TOML)"
[metrics]
[metrics.prometheus]
addServicesLabels = true
```
```yaml tab="File (TOML)"
metrics:
prometheus:
addServicesLabels: true
```
```bash tab="CLI"
--metrics
--metrics.prometheus.addServicesLabels=true
```

View file

@ -0,0 +1,110 @@
# StatsD
To enable the Statsd:
```toml tab="File (TOML)"
[metrics]
[metrics.statsd]
```
```yaml tab="File (TOML)"
metrics:
statsd: {}
```
```bash tab="CLI"
--metrics
--metrics.statsd
```
#### `address`
_Required, Default="localhost:8125"_
Address instructs exporter to send metrics to statsd at this address.
```toml tab="File (TOML)"
[metrics]
[metrics.statsd]
address = "localhost:8125"
```
```yaml tab="File (TOML)"
metrics:
statsd:
address: localhost:8125
```
```bash tab="CLI"
--metrics
--metrics.statsd.address="localhost:8125"
```
#### `addEntryPointsLabels`
_Optional, Default=true_
Enable metrics on entry points.
```toml tab="File (TOML)"
[metrics]
[metrics.statsd]
addEntryPointsLabels = true
```
```yaml tab="File (TOML)"
metrics:
statsd:
addEntryPointsLabels: true
```
```bash tab="CLI"
--metrics
--metrics.statsd.addEntryPointsLabels=true
```
#### `addServicesLabels`
_Optional, Default=true_
Enable metrics on services.
```toml tab="File (TOML)"
[metrics]
[metrics.statsd]
addServicesLabels = true
```
```yaml tab="File (TOML)"
metrics:
statsd:
addServicesLabels: true
```
```bash tab="CLI"
--metrics
--metrics.statsd.addServicesLabels=true
```
#### `pushInterval`
_Optional, Default=10s_
The interval used by the exporter to push metrics to statsD.
```toml tab="File (TOML)"
[metrics]
[metrics.statsd]
pushInterval = 10s
```
```yaml tab="File (TOML)"
metrics:
statsd:
pushInterval: 10s
```
```bash tab="CLI"
--metrics
--metrics.statsd.pushInterval=10s
```

View file

@ -180,18 +180,30 @@ Log level set to traefik logs. (Default: ```ERROR```)
`--metrics.datadog`:
DataDog metrics exporter type. (Default: ```false```)
`--metrics.datadog.addentrypointslabels`:
Enable metrics on entry points. (Default: ```true```)
`--metrics.datadog.address`:
DataDog's address. (Default: ```localhost:8125```)
`--metrics.datadog.addserviceslabels`:
Enable metrics on services. (Default: ```true```)
`--metrics.datadog.pushinterval`:
DataDog push interval. (Default: ```10```)
`--metrics.influxdb`:
InfluxDB metrics exporter type. (Default: ```false```)
`--metrics.influxdb.addentrypointslabels`:
Enable metrics on entry points. (Default: ```true```)
`--metrics.influxdb.address`:
InfluxDB address. (Default: ```localhost:8089```)
`--metrics.influxdb.addserviceslabels`:
Enable metrics on services. (Default: ```true```)
`--metrics.influxdb.database`:
InfluxDB database used when protocol is http.
@ -213,6 +225,12 @@ InfluxDB username (only with http).
`--metrics.prometheus`:
Prometheus metrics exporter type. (Default: ```false```)
`--metrics.prometheus.addentrypointslabels`:
Enable metrics on entry points. (Default: ```true```)
`--metrics.prometheus.addserviceslabels`:
Enable metrics on services. (Default: ```true```)
`--metrics.prometheus.buckets`:
Buckets for latency metrics. (Default: ```0.100000, 0.300000, 1.200000, 5.000000```)
@ -225,9 +243,15 @@ Middlewares.
`--metrics.statsd`:
StatsD metrics exporter type. (Default: ```false```)
`--metrics.statsd.addentrypointslabels`:
Enable metrics on entry points. (Default: ```true```)
`--metrics.statsd.address`:
StatsD address. (Default: ```localhost:8125```)
`--metrics.statsd.addserviceslabels`:
Enable metrics on services. (Default: ```true```)
`--metrics.statsd.pushinterval`:
StatsD push interval. (Default: ```10```)

View file

@ -180,18 +180,30 @@ Log level set to traefik logs. (Default: ```ERROR```)
`TRAEFIK_METRICS_DATADOG`:
DataDog metrics exporter type. (Default: ```false```)
`TRAEFIK_METRICS_DATADOG_ADDENTRYPOINTSLABELS`:
Enable metrics on entry points. (Default: ```true```)
`TRAEFIK_METRICS_DATADOG_ADDRESS`:
DataDog's address. (Default: ```localhost:8125```)
`TRAEFIK_METRICS_DATADOG_ADDSERVICESLABELS`:
Enable metrics on services. (Default: ```true```)
`TRAEFIK_METRICS_DATADOG_PUSHINTERVAL`:
DataDog push interval. (Default: ```10```)
`TRAEFIK_METRICS_INFLUXDB`:
InfluxDB metrics exporter type. (Default: ```false```)
`TRAEFIK_METRICS_INFLUXDB_ADDENTRYPOINTSLABELS`:
Enable metrics on entry points. (Default: ```true```)
`TRAEFIK_METRICS_INFLUXDB_ADDRESS`:
InfluxDB address. (Default: ```localhost:8089```)
`TRAEFIK_METRICS_INFLUXDB_ADDSERVICESLABELS`:
Enable metrics on services. (Default: ```true```)
`TRAEFIK_METRICS_INFLUXDB_DATABASE`:
InfluxDB database used when protocol is http.
@ -213,6 +225,12 @@ InfluxDB username (only with http).
`TRAEFIK_METRICS_PROMETHEUS`:
Prometheus metrics exporter type. (Default: ```false```)
`TRAEFIK_METRICS_PROMETHEUS_ADDENTRYPOINTSLABELS`:
Enable metrics on entry points. (Default: ```true```)
`TRAEFIK_METRICS_PROMETHEUS_ADDSERVICESLABELS`:
Enable metrics on services. (Default: ```true```)
`TRAEFIK_METRICS_PROMETHEUS_BUCKETS`:
Buckets for latency metrics. (Default: ```0.100000, 0.300000, 1.200000, 5.000000```)
@ -225,9 +243,15 @@ Middlewares.
`TRAEFIK_METRICS_STATSD`:
StatsD metrics exporter type. (Default: ```false```)
`TRAEFIK_METRICS_STATSD_ADDENTRYPOINTSLABELS`:
Enable metrics on entry points. (Default: ```true```)
`TRAEFIK_METRICS_STATSD_ADDRESS`:
StatsD address. (Default: ```localhost:8125```)
`TRAEFIK_METRICS_STATSD_ADDSERVICESLABELS`:
Enable metrics on services. (Default: ```true```)
`TRAEFIK_METRICS_STATSD_PUSHINTERVAL`:
StatsD push interval. (Default: ```10```)

View file

@ -120,12 +120,18 @@
buckets = [42.0, 42.0]
entryPoint = "foobar"
middlewares = ["foobar", "foobar"]
addEntryPointsLabels = true
addServicesLabels = true
[metrics.dataDog]
address = "foobar"
pushInterval = "10s"
addEntryPointsLabels = true
addServicesLabels = true
[metrics.statsD]
address = "foobar"
pushInterval = "10s"
addEntryPointsLabels = true
addServicesLabels = true
[metrics.influxDB]
address = "foobar"
protocol = "foobar"
@ -134,6 +140,8 @@
retentionPolicy = "foobar"
username = "foobar"
password = "foobar"
addEntryPointsLabels = true
addServicesLabels = true
[ping]
entryPoint = "foobar"

View file

@ -131,12 +131,18 @@ metrics:
middlewares:
- foobar
- foobar
addEntryPointsLabels: true
addServicesLabels: true
dataDog:
address: foobar
pushInterval: 42
addEntryPointsLabels: true
addServicesLabels: true
statsD:
address: foobar
pushInterval: 42
addEntryPointsLabels: true
addServicesLabels: true
influxDB:
address: foobar
protocol: foobar
@ -145,6 +151,8 @@ metrics:
retentionPolicy: foobar
username: foobar
password: foobar
addEntryPointsLabels: true
addServicesLabels: true
ping:
entryPoint: foobar
middlewares:

View file

@ -119,6 +119,12 @@ nav:
- 'Observability':
- 'Logs': 'observability/logs.md'
- 'Access Logs': 'observability/access-logs.md'
- 'Metrics':
- 'Overview': 'observability/metrics/overview.md'
- 'DataDog': 'observability/metrics/datadog.md'
- 'InfluxDB': 'observability/metrics/influxdb.md'
- 'Prometheus': 'observability/metrics/prometheus.md'
- 'StatsD': 'observability/metrics/statsd.md'
- 'Tracing':
- 'Overview': 'observability/tracing/overview.md'
- 'Jaeger': 'observability/tracing/jaeger.md'