اوپن شفٹ کے اندر پوسٹگریس کی نگرانی کرنا

اچھا دن، حبر کے رہنے والوں!

آج میں آپ کو بتانا چاہتا ہوں کہ ہم واقعی پوسٹگریس اور اوپن شفٹ کلسٹر کے اندر موجود کچھ دیگر اداروں کی نگرانی کرنا چاہتے تھے اور ہم نے یہ کیسے کیا۔

داخلی دروازے پر ان کے پاس تھا:

  • اوپن شپ
  • پتوار
  • Prometheus


جاوا ایپلیکیشن کے ساتھ کام کرنے کے لیے، ہر چیز بالکل سادہ اور شفاف تھی، یا زیادہ درست ہونے کے لیے:

1) build.gradle میں شامل کرنا

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

2) ترتیب کے ساتھ prometheus چلائیں

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

3) گرافانا میں ڈسپلے شامل کرنا

ہمارے نام کی جگہ کے قریب واقع اڈوں کی نگرانی کرنے کا لمحہ آنے تک سب کچھ بہت آسان اور پراسک تھا (ہاں، یہ برا ہے، کوئی ایسا نہیں کرتا، لیکن مختلف چیزیں ہوتی ہیں)۔

یہ کیسے کام کرتا ہے؟

پوسٹگریس اور پرومیتھیس کے ساتھ پوڈ کے علاوہ، ہمیں ایک اور ہستی کی ضرورت ہے - برآمد کنندہ۔

تجریدی تصور میں برآمد کنندہ ایک ایسا ایجنٹ ہوتا ہے جو کسی ایپلیکیشن یا سرور سے میٹرکس اکٹھا کرتا ہے۔ پوسٹگریس ایکسپورٹر کے لیے گو میں لکھا جاتا ہے، یہ ڈیٹا بیس کے اندر ایس کیو ایل اسکرپٹ کو چلانے کے اصول پر کام کرتا ہے اور پھر 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

اور پھر سب کچھ کام کر گیا، جو کچھ باقی ہے وہ یہ ہے کہ یہ ساری چیزیں گرافانا میں شامل کریں اور نتیجہ سے لطف اندوز ہوں۔

آپ کے اپنے سوالات شامل کرنے کی صلاحیت کے علاوہ، آپ مزید ٹارگٹڈ میٹرکس اکٹھا کرتے ہوئے پرومیٹیس میں سیٹنگز کو تبدیل کر سکتے ہیں۔

یہ اسی طرح سے کیا گیا تھا:

  • Kafka
  • Elasticsearch
  • منگو

PS ناموں، بندرگاہوں اور باقی کا تمام ڈیٹا ہوا سے لیا گیا ہے اور اس میں کوئی معلومات نہیں ہیں۔

کارآمد روابط:
مختلف برآمد کنندگان کی فہرست

ماخذ: www.habr.com

نیا تبصرہ شامل کریں