Pushgateway: Difference between revisions
From wikinotes
(→API) |
|||
Line 48: | Line 48: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Prometheus Config --> | </blockquote><!-- Prometheus Config --> | ||
== Alerting == | |||
<blockquote> | |||
<syntaxhighlight lang="yaml"> | |||
push_time_seconds # alert if no push in N seconds | |||
push_failure_time_seconds > push_time_seconds # alert on failed pushes | |||
pushgateway_http_requests_total{code="400",handler="push"} # malformed pushes | |||
</syntaxhighlight> | |||
</blockquote><!-- Alerting --> | |||
</blockquote><!-- Configuration --> | </blockquote><!-- Configuration --> | ||
Revision as of 03:07, 27 February 2022
The push gateway exposes a REST API that you can push metrics to.
Documentation
github https://github.com/prometheus/pushgateway
Routes
port 9091
push metrics POST http://${IPADDR}:9091/metrics/job/${YOUR_JOB_NAME}
push metrics POST http://${IPADDR}:9091/metrics/job/${YOUR_JOB_NAME}/instance/${YOUR_INSTANCE}
Install
aura -A pushgateway # Archlinux pkg install pushgateway # FreeBSD
Configuration
Pushgateway Config
There is no config
Prometheus Config
scrape_configs: - job_name: gateway honor_labels: True - targets: - 127.0.0.1:9091Alerting
push_time_seconds # alert if no push in N seconds push_failure_time_seconds > push_time_seconds # alert on failed pushes pushgateway_http_requests_total{code="400",handler="push"} # malformed pushes
Usage
Overview
# emit metric without instance URL="http://${IPADDR}:9091/metrics/job/${YOUR_JOB_NAME}" echo "some_metric{name="foo"} 1" \ | curl -X POST --data-binary @- $URL# emit metric with instance (ex: 192.168.1.100:9000) URL="http://${IPADDR}:9091/metrics/job/${YOUR_JOB_NAME}/instance/${YOUR_INSTANCE}" cat <<EOF | curl -X POST --data-binary @- $URL metric_abc 1.1 metric_def 2.2 EOF# query curl -X GET http://${IPADDR}:9091/api/v1/metricsAPI
# HTTP Statuses 200: success 202: when `--push.disable-consistency-check` is used, push has been queued 400: malformed, inconsistent metrics, metric collisions# HTTP Methods # URL="http://${IPADDR}:9091/metrics/job/${YOUR_JOB_NAME}" # URL="http://${IPADDR}:9091/metrics/job/${YOUR_JOB_NAME}/instance/${YOUR_INSTANCE}" PUT: POST: DELETE: # URL="http://${IPADDR}:9091/api/${API_VERSION}/${HANDLER}" GET: