اچھا دن، حبر کے رہنے والوں!
آج میں آپ کو بتانا چاہتا ہوں کہ ہم واقعی پوسٹگریس اور اوپن شفٹ کلسٹر کے اندر موجود کچھ دیگر اداروں کی نگرانی کرنا چاہتے تھے اور ہم نے یہ کیسے کیا۔
داخلی دروازے پر ان کے پاس تھا:
- اوپن شپ
- پتوار
- 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