Ngawas postgres jero Openshift

Wilujeng siang warga Habr!

Dinten ieu kuring hoyong nyarioskeun ka anjeun kumaha urang leres-leres hoyong ngawas postgres sareng sababaraha éntitas sanés dina kluster OpenShift sareng kumaha urang ngalakukeunana.

Di lawang aranjeunna ngagaduhan:

  • Openhift
  • helem
  • Prometheus


Pikeun damel sareng aplikasi java, sadayana saderhana sareng transparan, atanapi langkung tepatna:

1) Nambahan ka build.gradle

 implementation "io.micrometer:micrometer-registry-prometheus"

2) Jalankeun prometheus kalawan konfigurasi

 - job_name: 'job-name'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    kubernetes_sd_configs:
    - role: pod
      namespaces:
        names: 
          - 'name'

3) Nambahkeun tampilan ka Grafana

Sagalana éta cukup basajan tur prosaic dugi momen sumping ka ngawas basa anu lokasina caket dieu di namespace urang (enya, ieu goréng, teu saurang ogé ngalakukeun ieu, tapi hal béda lumangsung).

Kumaha jalanna?

Salian pod sareng postgres sareng prometheus sorangan, urang peryogi hiji éntitas deui - eksportir.

Éksportir dina konsép abstrak nyaéta agén anu ngumpulkeun métrik tina aplikasi atanapi bahkan server. Pikeun eksportir postgres, éta ditulis dina Go, gawéna dina prinsip ngajalankeun Aksara SQL jero database lajeng prometheus nyokot hasil diala. Ieu ogé ngamungkinkeun anjeun ngalegaan métrik anu dikumpulkeun ku cara nambihan anjeun sorangan.

Hayu urang nyebarkeun éta sapertos kieu (conto deployment.yaml, henteu ngariung):


---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: postgres-exporter
  labels:
    app: {{ .Values.name }}
    monitoring: prometheus
spec:
  serviceName: {{ .Values.name }}
  replicas: 1
  revisionHistoryLimit: 5
  template:
    metadata:
      labels:
        app: postgres-exporter
        monitoring: prometheus
    spec:
      containers:
      - env:
        - name: DATA_SOURCE_URI
          value: postgresdb:5432/pstgr?sslmode=disable
        - name: DATA_SOURCE_USER
          value: postgres
        - name: DATA_SOURCE_PASS
          value: postgres
        resources:
          limits:
            cpu: 100m
            memory: 50Mi
          requests:
            cpu: 100m
            memory: 50Mi
        livenessProbe:
          tcpSocket:
            port: metrics
          initialDelaySeconds: 30
          periodSeconds: 30
        readinessProbe:
          tcpSocket:
            port: metrics
          initialDelaySeconds: 10
          periodSeconds: 30
        image: exporter
        name: postgres-exporter
        ports:
        - containerPort: 9187
          name: metrics

Éta ogé peryogi jasa sareng aliran gambar

Saatos deployment, urang bener hayang dulur ningali silih.

Tambahkeun potongan di handap ieu kana config Prometheus:

  - job_name: 'postgres_exporter'
    metrics_path: '/metrics'
    scrape_interval: 5s
    dns_sd_configs:
    - names:
      - 'postgres-exporter'
      type: 'A'
      port: 9187

Teras sadayana damel, sadayana anu tetep nyaéta nambihan sadayana barang ieu kana grafana sareng nikmati hasilna.

Salian kamampuhan pikeun nambahkeun queries sorangan, Anjeun bisa ngarobah setelan dina prometheus, ngumpulkeun metrics leuwih sasaran.

Hal ieu dilakukeun dina cara anu sami pikeun:

  • Kafka
  • Elasticsearch
  • mongo

PS Sadaya data dina ngaran, palabuhan sarta sésana dicokot tina hawa sarta henteu ngandung émbaran nanaon.

Tumbu mangpaat:
Daptar rupa eksportir

sumber: www.habr.com

Tambahkeun komentar