Arahaba ry mponina ao Habr!
Androany aho dia te-hilaza aminao hoe ahoana no tena tiantsika hanara-maso ireo postgres sy sampana roa hafa ao anatin'ny cluster OpenShift sy ny fomba nanaovanay izany.
Teo amin'ny fidirana dia nanana:
- Openshift
- fiarovan-doha
- Prometheus
Raha hiasa amin'ny fampiharana java dia tsotra sy mangarahara ny zava-drehetra, na ny marimarina kokoa:
1) Manampy amin'ny build.gradle
implementation "io.micrometer:micrometer-registry-prometheus"
2) Manaova prometheus miaraka amin'ny fanamafisana
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Manampy fampisehoana amin'ny Grafana
Tsotra sy tsy misy dikany ny zava-drehetra mandra-pahatongan'ny fotoana hanaraha-maso ireo toby izay misy eo akaiky eo amin'ny toerana misy antsika (eny, ratsy izany, tsy misy manao izany, fa zavatra hafa no mitranga).
Ahoana ny fomba fiasa?
Ho fanampin'ny pod miaraka amin'ny postgres sy prometheus dia mila orinasa iray hafa isika - mpanondrana.
Ny mpanondrana amin'ny foto-kevitra abstract dia mpandraharaha iray manangona metrika avy amin'ny fampiharana na mpizara mihitsy aza. Ho an'ny mpanondrana postgres dia voasoratra ao amin'ny Go, miasa amin'ny fitsipiky ny fampandehanana ny script SQL ao anaty angon-drakitra ary avy eo ny prometheus dia maka ny vokatra azo. Izany koa dia ahafahanao manitatra ny metrika voaangona amin'ny fampidirana ny anao manokana.
Andao haparitaka toy izao (ohatra deployment.yaml, tsy mifamatotra):
---
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
Nitaky serivisy sy sary ihany koa izany
Aorian'ny fametrahana dia tena tianay ny hifankahita ny rehetra.
Ampio ity ampahany manaraka ity amin'ny config Prometheus:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Ary avy eo dia niasa ny zava-drehetra, ny hany sisa tavela dia ny manampy ireo zavatra rehetra ireo amin'ny grafana ary mankafy ny vokatra.
Ho fanampin'ny fahafahana manampy ny fanontanianao manokana, azonao atao ny manova ny toe-javatra ao amin'ny prometheus, manangona metrika kendrena kokoa.
Izany dia natao tamin'ny fomba mitovy amin'ny:
- Kafka
- Elasticsearch
- mongo
PS Ny angon-drakitra rehetra momba ny anarana, seranan-tsambo ary ny sisa dia nalaina tamin'ny rivotra ary tsy misy fampahalalana.
Rohy mahasoa:
Source: www.habr.com