Pushgateway: Difference between revisions

From wikinotes
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:9091

Alerting

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/metrics

API

# 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: