Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/weaveworks/prom-aggregation-gateway
An aggregating push gateway for Prometheus
https://github.com/weaveworks/prom-aggregation-gateway
Last synced: 25 days ago
JSON representation
An aggregating push gateway for Prometheus
- Host: GitHub
- URL: https://github.com/weaveworks/prom-aggregation-gateway
- Owner: weaveworks
- License: mpl-2.0
- Created: 2016-12-19T14:02:04.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-05-01T20:14:08.000Z (over 1 year ago)
- Last Synced: 2024-11-06T06:41:04.250Z (about 1 month ago)
- Language: Shell
- Homepage:
- Size: 1020 KB
- Stars: 328
- Watchers: 45
- Forks: 61
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- License: COPYING.LGPL-3
Awesome Lists containing this project
- awesome-repositories - weaveworks/prom-aggregation-gateway - An aggregating push gateway for Prometheus (Shell)
README
🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
**_Maintenance of project has moved_**
No more contributions or issues are being accepted in this repo. If you woud like to send a PR or file a
bug please go here:https://github.com/zapier/prom-aggregation-gateway
🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
# Prometheus Aggregation Gateway
Prometheus Aggregation Gateway is a aggregating push gateway for Prometheus. As opposed to the official [Prometheus Pushgateway](https://github.com/prometheus/pushgateway), this service aggregates the sample values it receives.
* Counters where all labels match are added up.
* Histograms are added up; if bucket boundaries are mismatched then the result has the union of all buckets and counts are given to the lowest bucket that fits.
* Gauges are also added up (but this may not make any sense)
* Summaries are discarded.## How to use
Send metrics in [Prometheus format](https://prometheus.io/docs/instrumenting/exposition_formats/) to `/metrics/`
E.g. if you have the program running locally:
```bash
echo 'http_requests_total{method="post",code="200"} 1027' | curl --data-binary @- http://localhost/metrics/
```Now you can push your metrics using your favorite Prometheus client.
E.g. in Python using [prometheus/client_python](https://github.com/prometheus/client_python):
```python
from prometheus_client import CollectorRegistry, Counter, push_to_gateway
registry = CollectorRegistry()
counter = Counter('some_counter', "A counter", registry=registry)
counter.inc()
push_to_gateway('localhost', job='my_job_name', registry=registry)
```Then have your Prometheus scrape metrics at `/metrics`.
## Ready-built images
Available on DockerHub `weaveworks/prom-aggregation-gateway`
## Comparison to [Prometheus Pushgateway](https://github.com/prometheus/pushgateway)
According to https://prometheus.io/docs/practices/pushing/:
> The Pushgateway never forgets series pushed to it and will expose them to Prometheus forever...
>
> The latter point is especially relevant when multiple instances of a job differentiate their metrics in the Pushgateway via an instance label or similar.This restriction makes the Prometheus pushgateway inappropriate for the usecase of accepting metrics from a client-side web app, so we created this one to aggregate counters from multiple senders.
Prom-aggregation-gateway presents a similar API, but does not attempt to be a drop-in replacement.
## JS Client Library
See https://github.com/weaveworks/promjs/ for a JS client library for Prometheus that can be used from within a web app.
If you have any questions about, feedback for or problems with `prom-aggregation-gateway`:
- Invite yourself to the Weave Users Slack.
- Ask a question on the [#general](https://weave-community.slack.com/messages/general/) slack channel.
- [File an issue](https://github.com/weaveworks/prom-aggregation-gateway/issues/new).Weaveworks follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a Weaveworks project maintainer, or Alexis Richardson ([email protected]).
Your feedback is always welcome!