Openshift အတွင်းရှိ postgres များကို စောင့်ကြည့်ခြင်း။

Habr မြို့သားတို့၊ ကောင်းသောနေ့ပါ ။

ယနေ့ကျွန်ုပ်တို့သည် Postgres နှင့် OpenShift အစုအဝေးအတွင်းရှိ အခြားအရာအချို့ကို ကျွန်ုပ်တို့ အမှန်တကယ် စောင့်ကြည့်လိုပုံနှင့် ၎င်းကို မည်သို့လုပ်ဆောင်ခဲ့သည်ကို ကျွန်ုပ်ပြောပြလိုပါသည်။

အဝင်ဝတွင်၊

  • ဖွင့်လှစ်
  • သံခမောက်
  • Prometheus


java အပလီကေးရှင်းတစ်ခုနှင့်အလုပ်လုပ်ရန်၊ အရာအားလုံးသည် အတော်လေးရိုးရှင်းပြီး ပွင့်လင်းမြင်သာမှုရှိသည် သို့မဟုတ် ပိုမိုတိကျစေရန်။

1) build.gradle သို့ထည့်ခြင်း။

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

2) configuration ဖြင့် prometheus ကိုဖွင့်ပါ။

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

3) Grafana တွင် display ကိုထည့်ခြင်း။

ကျွန်ုပ်တို့၏အမည်နေရာရှိ အနီးအနားရှိ ခြေကုပ်စခန်းများကို စောင့်ကြည့်ရန် ရောက်လာသည့်အချိန်အထိ အရာအားလုံးသည် ရိုးရှင်းပြီး ပရိုဂရမ်မာနေပါသည် (ဟုတ်ပါတယ်၊ ဒါက ဆိုးပါတယ်၊ ဘယ်သူမှ မလုပ်ပေမယ့် ကွဲပြားတဲ့အရာတွေ ဖြစ်ပေါ်လာပါတယ်)။

ဤအရာဘယ်လိုအလုပ်လုပ်လဲ?

postgres နှင့် prometheus ကိုယ်တိုင်ပါရှိသော pod အပြင်၊ ကျွန်ုပ်တို့သည် နောက်ထပ် entity - exporter တစ်ခု လိုအပ်ပါသည်။

စိတ္တဇအယူအဆရှိ တင်ပို့သူသည် အပလီကေးရှင်းတစ်ခု သို့မဟုတ် ဆာဗာတစ်ခုမှ မက်ထရစ်များကို စုဆောင်းသည့် အေးဂျင့်တစ်ခုဖြစ်သည်။ Postgres တင်ပို့သူအတွက်၊ ၎င်းကို Go တွင်ရေးထားပြီး၊ ၎င်းသည် ဒေတာဘေ့စ်အတွင်း SQL scripts များကိုအလုပ်လုပ်ပြီးနောက်ရရှိသောရလဒ်များကို prometheus မှယူသည်။ ၎င်းသည် သင့်ကိုယ်ပိုင်ထည့်ခြင်းဖြင့် စုဆောင်းထားသော မက်ထရစ်များကို ချဲ့ထွင်နိုင်စေပါသည်။

ဤကဲ့သို့ အသုံးချကြပါစို့ (ဥပမာ deployment.yaml၊ စည်းနှောင်မှုမရှိသော)


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

၎င်းသည် ဝန်ဆောင်မှုနှင့် ရုပ်ပုံထုတ်လွှင့်မှုလည်း လိုအပ်ပါသည်။

ဖြန့်ကျက်ပြီးတဲ့အခါ၊ လူတိုင်းကို အချင်းချင်း မြင်စေချင်တယ်။

Prometheus config တွင် အောက်ပါအပိုင်းကို ထည့်ပါ။

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

ထို့နောက် အရာအားလုံး အဆင်ပြေသွားသည်၊ ကျန်သည်မှာ ဤအရာအားလုံးကို grafana ထဲသို့ထည့်ကာ ရလဒ်ကိုခံစားရန်ဖြစ်သည်။

သင်၏ကိုယ်ပိုင်မေးမြန်းချက်များကိုထည့်သွင်းနိုင်သည့်အပြင်၊ သင်သည်ပိုမိုပစ်မှတ်ထားသောမက်ထရစ်များကိုစုဆောင်းကာ prometheus ရှိဆက်တင်များကိုပြောင်းလဲနိုင်သည်။

၎င်းကို အလားတူနည်းလမ်းဖြင့် လုပ်ဆောင်ခဲ့သည်-

  • Kafka
  • Elasticsearch
  • Mongo အဘိဓါန်

PS အမည်များ၊ ဆိပ်ကမ်းများနှင့် ကျန်ဒေတာအားလုံးကို လေထုမှ ထုတ်ယူပြီး မည်သည့်အချက်အလက်မှ မပါဝင်ပါ။

အသုံးဝင်သော link များ -
အမျိုးမျိုးသော တင်ပို့သူများစာရင်း

source: www.habr.com

မှတ်ချက် Add