部署pushgateway推送自定义指标

目录

近期在做 KEDA 基于 Prometheus 的自动伸缩功能时,针对自定义的指标,可以通过 Prometheus 的 pushgateway 快速部署,然后在外部推送之后,KEDA 就可以使用自定义指标来进行自动扩缩容。本文主要介织如何部署 pushgateway 并推送自定义指标。

本人是基于 kube-prometheus-stack 部署的 pushgateway,这里需要注意,pushgateway 使用的是另一个 Chart。

1
2
3
4
5
6
7
8
# pull下来解压
helm pull prometheus-community/prometheus-pushgateway
# 修改一下镜像
helm install pg . -f db-values.yaml
# 部署成功后向pushgateway推送指标
echo "test_metric 1" | curl --data-binary @- http://prometheus-pushgateway:9091/metrics/job/test_job
# 推送指标之后可以删除
curl -X DELETE http://prometheus-pushgateway:9091/metrics/job/test_job

从 Prometheus 的页面可以确定自定义的指标已经推送进去了。

/%E9%83%A8%E7%BD%B2pushgateway%E6%8E%A8%E9%80%81%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8C%87%E6%A0%87/img.png

另外需要注意 ServiceMonitor,默认情况下 kube-prometheus-stack 要求 ServiceMonitor 要含有 release: kube-prometheus-stack 这个 Label 才会自动被 Prometheus 加入到 Target 里。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  annotations:
    meta.helm.sh/release-name: pg
    meta.helm.sh/release-namespace: kube-prometheus-stack
  labels:
    app.kubernetes.io/instance: pg
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: prometheus-pushgateway
    app.kubernetes.io/version: v1.10.0
    helm.sh/chart: prometheus-pushgateway-2.15.0
    # 这必须符合标准
    release: kube-prometheus-stack
  name: pg-prometheus-pushgateway
  namespace: kube-prometheus-stack
spec:
  endpoints:
  - honorLabels: true
    path: /metrics
    port: http
  namespaceSelector:
    matchNames:
    - kube-prometheus-stack
  selector:
    matchLabels:
      app.kubernetes.io/instance: pg
      app.kubernetes.io/managed-by: Helm
      app.kubernetes.io/name: prometheus-pushgateway
      app.kubernetes.io/version: v1.10.0
      helm.sh/chart: prometheus-pushgateway-2.15.0
  1. Pushing metrics