Mirëdita, banorë të Habrit!
Sot dua t'ju tregoj se si vërtet donim të monitoronim postgres dhe disa entitete të tjera brenda grupit OpenShift dhe si e bëmë atë.
NĂ« hyrje kishin:
- Openshift
- kaskë
- Prometeu
Për të punuar me një aplikacion java, gjithçka ishte mjaft e thjeshtë dhe transparente, ose për të qenë më të saktë:
1) Shtimi në build.gradle
implementation "io.micrometer:micrometer-registry-prometheus"2) Drejtoni prometheus me konfigurim
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'3) Shtimi i një ekrani në Grafana
Gjithçka ishte mjaft e thjeshtë dhe prozaike derisa erdhi momenti për të monitoruar bazat që ndodhen afër në hapësirën tonë të emrave (po, kjo është e keqe, askush nuk e bën këtë, por ndodhin gjëra të ndryshme).
Si punon?
Përveç podit me postgres dhe vetë Prometheus, na duhet edhe një subjekt - eksportues.
Një eksportues në një kuptim abstrakt është një agjent që mbledh metrika nga një aplikacion ose edhe serverEksportuesi i Postgres është shkruar në Go dhe ekzekuton skripte SQL brenda bazës së të dhënave, me rezultatet që rezultojnë që mblidhen më pas nga Prometheus. Kjo gjithashtu ju lejon të zgjeroni metrikat e mbledhura duke shtuar tuajat.
Le ta vendosim kështu (shembull deployment.yaml, jo-detyrues):
---
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: metricsKërkonte gjithashtu një shërbim dhe transmetim imazhi
Pas vendosjes, ne vërtet dëshirojmë që të gjithë të shihen.
Shtoni pjesën e mëposhtme në konfigurimin e Prometheus:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187Dhe pastaj gjithçka funksionoi, gjithçka që mbetet është të shtoni të gjitha këto gjëra në grafana dhe të shijoni rezultatin.
Përveç aftësisë për të shtuar pyetjet tuaja, ju mund të ndryshoni cilësimet në Prometheus, duke mbledhur metrika më të synuara.
Kjo është bërë në mënyrë të ngjashme për:
- Kafka
- Elasticsearch
- Mongo
PS Të gjitha të dhënat për emrat, portet dhe të tjerat janë marrë nga ajri dhe nuk përmbajnë asnjë informacion.
Lidhje të dobishme:
Burimi: www.habr.com
