Eftirlit með postgres inni í Openshift

Góðan dag, íbúar í Habr!

Í dag vil ég segja þér hvernig við vildum virkilega fylgjast með postgres og nokkrum öðrum aðilum inni í OpenShift klasanum og hvernig við gerðum það.

Við innganginn höfðu þeir:

  • Openshift
  • Helm
  • Prometheus


Til að vinna með Java forrit var allt frekar einfalt og gagnsætt, eða til að vera nákvæmari:

1) Bæti við build.gradle

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

2) Keyrðu prometheus með stillingum

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

3) Bæta skjá við Grafana

Allt var frekar einfalt og prosaískt þar til stundin rann upp til að fylgjast með bækistöðvum sem eru staðsettar í nágrenninu í nafnarýminu okkar (já, þetta er slæmt, enginn gerir þetta, en mismunandi hlutir gerast).

Hvernig virkar það?

Til viðbótar við fræbelginn með postgres og prometheus sjálfum, þurfum við eina aðila í viðbót - útflytjanda.

Útflytjandi í óhlutbundnu hugtaki er umboðsmaður sem safnar mælingum frá forriti eða jafnvel netþjóni. Fyrir postgres útflytjanda er það skrifað í Go, það virkar á meginreglunni um að keyra SQL forskriftir inni í gagnagrunninum og þá tekur Prometheus niðurstöðurnar sem fengust. Þetta gerir þér einnig kleift að stækka söfnuð mæligildi með því að bæta við þínum eigin.

Við skulum dreifa því svona (dæmi deployment.yaml, ekki bindandi):


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

Það krafðist líka þjónustu og myndstraums

Eftir dreifingu viljum við virkilega að allir sjáist.

Bættu eftirfarandi hluta við Prometheus stillinguna:

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

Og svo gekk allt, það eina sem er eftir er að bæta öllu þessu dóti í grafana og njóta útkomunnar.

Til viðbótar við möguleikann á að bæta við eigin fyrirspurnum geturðu breytt stillingunum í prometheus og safnað markvissari mælingum.

Þetta var gert á svipaðan hátt fyrir:

  • Kafka
  • Elasticsearch
  • Mongó

PS Öll gögn um nöfn, höfn og restina eru tekin úr lofti og innihalda engar upplýsingar.

Gagnlegar hlekkir:
Listi yfir ýmsa útflytjendur

Heimild: www.habr.com

Bæta við athugasemd