Nyob zoo, cov neeg nyob hauv Habr!
Hnub no kuv xav qhia koj tias peb xav saib xyuas postgres thiab ob peb lwm qhov chaw hauv OpenShift pawg thiab peb tau ua li cas.
Ntawm qhov nkag lawv muaj:
- Openshift
- Helm
- Prometheus
Txhawm rau ua haujlwm nrog java daim ntawv thov, txhua yam yooj yim heev thiab pob tshab, lossis kom meej meej:
1) Ntxiv rau build.gradle
implementation "io.micrometer:micrometer-registry-prometheus"
2) Khiav prometheus nrog kev teeb tsa
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Ntxiv cov zaub rau Grafana
Txhua yam yog yooj yim heev thiab prosaic kom txog rau thaum lub sijhawm los saib xyuas cov hauv paus uas nyob ze ntawm peb lub npe (yog, qhov no tsis zoo, tsis muaj leej twg ua qhov no, tab sis muaj ntau yam tshwm sim).
Nws ua haujlwm li cas?
Ntxiv rau cov pods nrog postgres thiab prometheus nws tus kheej, peb xav tau ib qho chaw ntxiv - exporter.
Tus xa tawm hauv lub tswv yim paub daws teeb yog tus neeg sawv cev uas sau cov metrics los ntawm daim ntawv thov lossis txawm tias lub server. Rau postgres exporter, nws yog sau nyob rau hauv Go, nws ua hauj lwm nyob rau hauv lub hauv paus ntsiab lus ntawm khiav SQL scripts nyob rau hauv lub database thiab ces prometheus yuav siv sij hawm qhov tau txais. Qhov no kuj tso cai rau koj nthuav cov metrics sau los ntawm kev ntxiv koj tus kheej.
Cia peb xa nws zoo li qhov no (piv txwv li deployment.yaml, tsis yog khi):
---
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
Nws kuj xav tau ib qho kev pabcuam thiab cov duab ntws
Tom qab kev xa tawm, peb xav kom sawv daws pom ib leeg.
Ntxiv cov khoom hauv qab no rau Prometheus config:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Thiab tom qab ntawd txhua yam ua haujlwm, txhua yam uas tseem tshuav yog ntxiv tag nrho cov khoom no rau grafana thiab txaus siab rau qhov tshwm sim.
Ntxiv rau qhov muaj peev xwm ntxiv koj tus kheej cov lus nug, koj tuaj yeem hloov kho qhov chaw hauv prometheus, sau ntau cov phiaj xwm ntsuas.
Qhov no tau ua nyob rau hauv ib txoj kev zoo sib xws rau:
- Kafka
- Elasticsearch
- Mongo
PS Tag nrho cov ntaub ntawv ntawm cov npe, chaw nres nkoj thiab cov seem yog muab los ntawm huab cua thiab tsis muaj cov ntaub ntawv.
Cov kev sib txuas tseem ceeb:
Tau qhov twg los: www.hab.com