Hubungkan eksportir redis dan operator prometheus

Oct 13 2020

Saya memiliki cluster Redis dan eksportir Redis dalam dua penerapan terpisah di namespace yang sama dari cluster Kubernetes. Saya menggunakan operator Prometheus untuk memantau cluster, tetapi saya tidak dapat menemukan cara untuk mengatur eksportir dan operator. Saya telah menyiapkan layanan yang menargetkan eksportir Redis (periksa di bawah) dan ServiceMonitor (juga di bawah). Jika saya meneruskan ke layanan eksportir Redis, saya dapat melihat metriknya. Selain itu, log eksportir Redis tidak menunjukkan masalah.

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: foo
  name: redis-exporter
  labels:
    app: redis-exporter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis-exporter
  template:
    metadata:
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "9121"
      labels:
        app: redis-exporter
    spec:
      containers:
      - name: redis-exporter
        image: oliver006/redis_exporter:latest
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        env:
        - name: REDIS_ADDR
          value:  redis-cluster.foo.svc:6379
        ports:
        - containerPort: 9121

Layanan dan servicemonitor saya

kind: Service
metadata:
  name: redis-external-exporter
  namespace: foo
  labels:
    app: redis
    k8s-app: redis-ext
  annotations:
    prometheus.io/scrape: 'true'
    prometheus.io/port: "9121"
spec:
  ports:
  - name: redis-ext
    port: 9121
    protocol: TCP
    targetPort: 9121
  selector:
    app: redis-exporter
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: redis-external-exporter
  namespace: bi-infra
  labels:
    app: redis-external-exporter
    k8s-app: redis-monitor
spec:
  jobLabel: app
  selector:
    matchLabels:
      app: redis-ext
  namespaceSelector:
    matchNames:
    - foo
  endpoints:
  - port: redis-ext
    interval: 30s
    honorLabels: true

Jika saya beralih ke pengekspor Redis sespan di sebelah kluster Redis, semuanya berfungsi dengan baik. Adakah yang pernah menghadapi masalah seperti itu?

Jawaban

1 Zambozo Oct 15 2020 at 12:59

Saya kehilangan spec.endpoints.path di ServiceMonitor

Berikut adalah contoh manifes dari menambahkan target scraping baru dan tutorial pemecahan masalah .

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: monitoring-pili
  namespace: monitoring
  labels:
    app: pili-service-monitor
spec:
  selector:
    matchLabels:
      # Target app service
      app: pili
  endpoints:
  - interval: 15s
    path: /metrics    <---
    port: uwsgi
  namespaceSelector:
    matchNames:
    - default