Kufuatilia postgres ndani ya Openshift

Siku njema, wakazi wa Habr!

Leo nataka kukuambia jinsi tulivyotaka kufuatilia postgres na vyombo vingine kadhaa ndani ya nguzo ya OpenShift na jinsi tulivyoifanya.

Kwenye mlango walikuwa na:

  • Fursa
  • Helm
  • Prometheus


Kufanya kazi na programu ya java, kila kitu kilikuwa rahisi na wazi, au kuwa sahihi zaidi:

1) Kuongeza kujenga.gradle

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

2) Endesha prometheus na usanidi

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

3) Kuongeza onyesho kwa Grafana

Kila kitu kilikuwa rahisi na cha kushangaza hadi wakati ulipofika wa kufuatilia besi ambazo ziko karibu katika nafasi yetu ya majina (ndio, hii ni mbaya, hakuna mtu anayefanya hivi, lakini mambo tofauti hufanyika).

Inafanyaje kazi?

Mbali na pod na postgres na prometheus yenyewe, tunahitaji chombo kimoja zaidi - nje.

Msafirishaji katika dhana dhahania ni wakala anayekusanya vipimo kutoka kwa programu au hata seva. Kwa msafirishaji wa postgres, imeandikwa katika Go, inafanya kazi kwa kanuni ya kuendesha hati za SQL ndani ya hifadhidata na kisha prometheus huchukua matokeo yaliyopatikana. Hii pia hukuruhusu kupanua vipimo vilivyokusanywa kwa kuongeza chako.

Wacha tuiweke kama hii (mfano deployment.yaml, isiyofunga):


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

Pia ilihitaji huduma na mkondo wa picha

Baada ya kupelekwa, tunataka sana kila mtu aonane.

Ongeza kipande kifuatacho kwenye usanidi wa Prometheus:

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

Na kisha kila kitu kilifanya kazi, kilichobaki ni kuongeza vitu hivi vyote kwenye grafana na kufurahiya matokeo.

Mbali na uwezo wa kuongeza hoja zako mwenyewe, unaweza kubadilisha mipangilio katika prometheus, kukusanya vipimo vinavyolengwa zaidi.

Hii ilifanywa kwa njia sawa kwa:

  • Kafka
  • Elasticsearch
  • Mongo

PS Data zote kwenye majina, bandari na nyinginezo huchukuliwa kutoka hewani na haina taarifa yoyote.

Viungo muhimu:
Orodha ya wasafirishaji mbalimbali

Chanzo: mapenzi.com

Kuongeza maoni