Prometheus Pushgateway: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 9: Line 9:
=Installation=
=Installation=
==Kubernetes==
==Kubernetes==
Deploy the pod and associated services:
<syntaxhighlight lang='yaml'>
<syntaxhighlight lang='yaml'>
apiVersion: v1
apiVersion: v1
Line 50: Line 51:
       port: 9091
       port: 9091
       targetPort: 9091
       targetPort: 9091
</syntaxhighlight>
Expose it then as a target with a [[Prometheus_Operator_Concepts#ServiceMonitor_Resource|ServiceMonitor]]:
<syntaxhighlight lang='yaml'>
</syntaxhighlight>
</syntaxhighlight>



Revision as of 23:11, 14 October 2020

External

Internal

Overview

Push gateways are used in case of applications or short-lived jobs that do not export metrics directly.

Installation

Kubernetes

Deploy the pod and associated services:

apiVersion: v1
kind: Pod
metadata:
  name: 'pushgateway'
  labels:
    function: 'pushgateway'
spec:
  containers:
  - name: 'pushgateway'
    image: prom/pushgateway
---
apiVersion: v1
kind: Service
metadata:
  name: 'pushgateway'
  labels:
    function: 'prometheus-target'
spec:
  type: 'ClusterIP'
  selector:
    function: 'pushgateway'
  ports:
    - name: 'pushgateway'
      protocol: 'TCP'
      port: 9091
      targetPort: 9091
---
apiVersion: v1
kind: Service
metadata:
  name: 'pushgateway-lb'
spec:
  type: 'LoadBalancer'
  selector:
    function: 'pushgateway'
  ports:
    - name: 'pushgateway'
      protocol: 'TCP'
      port: 9091
      targetPort: 9091

Expose it then as a target with a ServiceMonitor:

Playground

https://github.com/ovidiuf/playground/tree/master/prometheus/pushgateway

Operations

Push a Metric Sample

echo "some_metric 3.14" | curl --data-binary @- http://localhost:9091/metrics/job/some_job

Query Metrics

curl http://localhost:9091/metrics/

Query Health

curl http://localhost:9091/-/healthy

Query Readiness

curl http://localhost:9091/-/ready

Configure Pushgateway as a Prometheus Target