Manara-maso ny postgres ao anatin'ny Openshift

Arahaba ry mponina ao Habr!

Androany aho dia te-hilaza aminao hoe ahoana no tena tiantsika hanara-maso ireo postgres sy sampana roa hafa ao anatin'ny cluster OpenShift sy ny fomba nanaovanay izany.

Teo amin'ny fidirana dia nanana:

  • Openshift
  • fiarovan-doha
  • Prometheus


Raha hiasa amin'ny fampiharana java dia tsotra sy mangarahara ny zava-drehetra, na ny marimarina kokoa:

1) Manampy amin'ny build.gradle

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

2) Manaova prometheus miaraka amin'ny fanamafisana

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

3) Manampy fampisehoana amin'ny Grafana

Tsotra sy tsy misy dikany ny zava-drehetra mandra-pahatongan'ny fotoana hanaraha-maso ireo toby izay misy eo akaiky eo amin'ny toerana misy antsika (eny, ratsy izany, tsy misy manao izany, fa zavatra hafa no mitranga).

Ahoana ny fomba fiasa?

Ho fanampin'ny pod miaraka amin'ny postgres sy prometheus dia mila orinasa iray hafa isika - mpanondrana.

Ny mpanondrana amin'ny foto-kevitra abstract dia mpandraharaha iray manangona metrika avy amin'ny fampiharana na mpizara mihitsy aza. Ho an'ny mpanondrana postgres dia voasoratra ao amin'ny Go, miasa amin'ny fitsipiky ny fampandehanana ny script SQL ao anaty angon-drakitra ary avy eo ny prometheus dia maka ny vokatra azo. Izany koa dia ahafahanao manitatra ny metrika voaangona amin'ny fampidirana ny anao manokana.

Andao haparitaka toy izao (ohatra deployment.yaml, tsy mifamatotra):


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

Nitaky serivisy sy sary ihany koa izany

Aorian'ny fametrahana dia tena tianay ny hifankahita ny rehetra.

Ampio ity ampahany manaraka ity amin'ny config Prometheus:

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

Ary avy eo dia niasa ny zava-drehetra, ny hany sisa tavela dia ny manampy ireo zavatra rehetra ireo amin'ny grafana ary mankafy ny vokatra.

Ho fanampin'ny fahafahana manampy ny fanontanianao manokana, azonao atao ny manova ny toe-javatra ao amin'ny prometheus, manangona metrika kendrena kokoa.

Izany dia natao tamin'ny fomba mitovy amin'ny:

  • Kafka
  • Elasticsearch
  • mongo

PS Ny angon-drakitra rehetra momba ny anarana, seranan-tsambo ary ny sisa dia nalaina tamin'ny rivotra ary tsy misy fampahalalana.

Rohy mahasoa:
Lisitry ny mpanondrana isan-karazany

Source: www.habr.com

Add a comment