2020-05-17 13:58:41 +00:00
|
|
|
# prometheus-exporter-merger
|
|
|
|
|
|
|
|
Merges Prometheus metrics from multiple sources.
|
|
|
|
|
|
|
|
## But Why?!
|
|
|
|
|
2020-05-17 15:50:32 +00:00
|
|
|
Sometimes you need to scrape Prometheus metrics from multiple containers in a single pod,
|
2020-05-17 15:34:32 +00:00
|
|
|
but you can't do this using annotations: [prometheus/prometheus#3756](https://github.com/prometheus/prometheus/issues/3756).
|
2020-05-17 13:58:41 +00:00
|
|
|
|
|
|
|
To start the exporter:
|
|
|
|
|
|
|
|
```
|
2020-05-17 14:27:00 +00:00
|
|
|
prometheus-exporter-merger --config /config/prometheus-exporter-merger.yaml
|
2020-05-17 13:58:41 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Config example:
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
listen: :8080
|
|
|
|
scrap_timeout: 20s
|
|
|
|
sources:
|
|
|
|
- url: http://127.0.0.1:8081/metrics
|
|
|
|
labels:
|
2020-05-17 15:34:32 +00:00
|
|
|
keyX: valueX
|
|
|
|
keyY: Y
|
2020-05-17 13:58:41 +00:00
|
|
|
- url: http://127.0.0.1:8082/metrics
|
|
|
|
labels:
|
2020-05-17 15:34:32 +00:00
|
|
|
key2: Z
|
|
|
|
```
|
|
|
|
|
|
|
|
Another way to pass configuration by setting environment variables:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
export LISTEN=":8080"
|
|
|
|
export SCRAPE_TIMEOUT="20s"
|
|
|
|
export URL_1=http://127.0.0.1:801/api/v1/metrics/prometheus,keyX:valueX,keyY:Y
|
|
|
|
export URL_2=http://0.0.0.0:7070/api/v1/metrics/prometheus,key2:Z
|
2020-05-17 14:13:21 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
## Kubernetes
|
|
|
|
|
|
|
|
The prometheus-exporter-merger is supposed to run as a sidecar.
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
...
|
|
|
|
template:
|
|
|
|
metadata:
|
|
|
|
annotations:
|
|
|
|
prometheus.io/scrape: "true"
|
|
|
|
prometheus.io/port: "8080"
|
|
|
|
...
|
|
|
|
spec:
|
|
|
|
containers:
|
|
|
|
...
|
|
|
|
- name: prometheus-exporter-merger
|
|
|
|
image: vadv/prometheus-exporter-merger
|
2020-05-17 15:34:32 +00:00
|
|
|
env:
|
|
|
|
- name: LISTEN
|
|
|
|
value: :8080
|
|
|
|
- name: SCRAPE_TIMEOUT
|
|
|
|
value: 20s
|
|
|
|
- name: URL_COMMON
|
|
|
|
value: http://127.0.0.1:8081/api/v1/metrics/prometheus,type:common
|
|
|
|
- name: URL_AUDIT
|
|
|
|
value: http://127.0.0.1:8082/api/v1/metrics/prometheus,type:audit
|
2020-05-17 14:13:21 +00:00
|
|
|
...
|
|
|
|
```
|