tty-prometheus-exporter-merger/README.md

68 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

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
...
```