Ngawasi postgres nang Openshift

Sugeng siang, warga Habr!

Dina iki aku pengin menehi pitutur marang kowe carane kita pengin ngawasi postgres lan sawetara entitas liyane ing kluster OpenShift lan kepiye carane.

Ing lawang mlebu padha duwe:

  • Mbukak
  • Helm
  • Prometheus


Kanggo nggarap aplikasi java, kabeh cukup prasaja lan transparan, utawa luwih tepat:

1) Nambahake menyang build.gradle

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

2) Jalanake prometheus kanthi konfigurasi

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

3) Nambahake tampilan menyang Grafana

Kabeh iku cukup prasaja lan prosaic nganti wayahe teka kanggo ngawasi dhasar sing dumunung ing cedhak papan jeneng kita (ya, iki ala, ora ana sing nindakake iki, nanging beda-beda).

Kepiye cara kerjane?

Saliyane polong karo postgres lan prometheus dhewe, kita butuh siji entitas liyane - eksportir.

Eksportir ing konsep abstrak minangka agen sing ngumpulake metrik saka aplikasi utawa malah server. Kanggo eksportir postgres, ditulis ing Go, kerjane ing prinsip mbukak skrip SQL ing basis data lan banjur prometheus njupuk asil sing dipikolehi. Iki uga ngidini sampeyan nggedhekake metrik sing diklumpukake kanthi nambah dhewe.

Ayo disebarake kaya iki (umpamane deployment.yaml, non-binding):


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

Uga mbutuhake layanan lan aliran gambar

Sawise nyebarake, kita pancene pengin kabeh wong bisa ndeleng.

Tambahake potongan ing ngisor iki menyang konfigurasi Prometheus:

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

Lan banjur kabeh bisa digunakake, sing isih ana yaiku nambahake kabeh barang kasebut menyang grafana lan nikmati asile.

Saliyane kemampuan kanggo nambah pitakon sampeyan dhewe, sampeyan bisa ngganti setelan ing prometheus, ngumpulake metrik sing luwih ditargetake.

Iki ditindakake kanthi cara sing padha kanggo:

  • Kafka
  • Elasticsearch
  • mongo

PS Kabeh data ing jeneng, bandar lan liyane dijupuk saka udhara lan ora ngemot informasi sembarang.

Link migunani:
Dhaptar macem-macem eksportir

Source: www.habr.com

Add a comment