يوم جيد لسكان هبر!
أريد أن أخبرك اليوم كيف كنا نرغب حقًا في مراقبة postgres واثنين من الكيانات داخل نظام OpenShift وكيف قمنا بذلك.
عند المدخل ، كان لديهم:
للعمل مع تطبيق java ، كان كل شيء بسيطًا وشفافًا ، وكان أكثر دقة ، ثم:
1) إضافة إلى build.gradle
implementation "io.micrometer:micrometer-registry-prometheus"
2) إطلاق بروميثيوس مع التكوين
- job_name: 'job-name' metrics_path: '/actuator/prometheus' scrape_interval: 5s kubernetes_sd_configs: - role: pod namespaces: names: - 'name'
3) إضافة عرض في غرافانا
كان كل شيء بسيطًا وصريحًا إلى أن يحين الوقت لمراقبة القواعد القريبة منا في مساحة الاسم (نعم ، هذا سيء ، لا أحد يفعل ذلك ، لكن هذا يحدث بشكل مختلف).
كيف يعمل هذا؟
بالإضافة إلى الموقد مع postgres و prometheus نفسها ، نحن بحاجة إلى كيان آخر مصدر.
المصدر التجريدي هو وكيل يجمع المقاييس من تطبيق أو حتى خادم. بالنسبة إلى postgres ، يتم كتابة المصدر في Go ، وهو يعمل على مبدأ تشغيل البرامج النصية استنادًا إلى sql من الداخل ، ثم يأخذ prometheus النتائج. كما يسمح لك بتوسيع المقاييس التي تم جمعها عن طريق إضافة الخاصة بك.
نحن ننشرها على هذا النحو (publish.yaml example ، ليس ملزماً بأي شيء):
--- 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
هو أيضا بحاجة إلى خدمة و imagestream.
بعد النشر ، نريد حقًا من الجميع رؤية بعضهم البعض.
أضف القطعة التالية إلى تهيئة prometheus:
- job_name: 'postgres_exporter' metrics_path: '/metrics' scrape_interval: 5s dns_sd_configs: - names: - 'postgres-exporter' type: 'A' port: 9187
وبعد ذلك نجح كل شيء ، يبقى إضافة كل هذا الخير إلى العنب والتمتع بالنتيجة.
بالإضافة إلى القدرة على إضافة طلبات البحث الخاصة بك ، في بروميثيوس يمكنك تغيير الإعداد ، وجمع المقاييس اللازمة أكثر استهدافًا.
تم تنفيذ طريقة مماثلة لـ:
ملاحظة: جميع البيانات المتعلقة بالأسماء والموانئ والباقي مأخوذة من السقف ولا تحمل أي معلومات.
روابط مفيدة:
قائمة مختلف المصدرين