Sugeng siang, warga Habr!
Dina iki aku pengin menehi pitutur marang kowe carane kita pengin ngawasi postgres lan sawetara entitas liyane ing kluster OpenShift lan kepiye carane.
Ing lawang mlebu padha duwe:
- Mbukak
- Helm
- Prometheus
Kanggo nggarap aplikasi java, kabeh cukup prasaja lan transparan, utawa luwih tepat:
1) Nambahake menyang build.gradle
implementation "io.micrometer:micrometer-registry-prometheus"
2) Jalanake prometheus kanthi konfigurasi
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Nambahake tampilan menyang Grafana
Kabeh iku cukup prasaja lan prosaic nganti wayahe teka kanggo ngawasi dhasar sing dumunung ing cedhak papan jeneng kita (ya, iki ala, ora ana sing nindakake iki, nanging beda-beda).
Kepiye cara kerjane?
Saliyane polong karo postgres lan prometheus dhewe, kita butuh siji entitas liyane - eksportir.
Eksportir ing konsep abstrak minangka agen sing ngumpulake metrik saka aplikasi utawa malah server. Kanggo eksportir postgres, ditulis ing Go, kerjane ing prinsip mbukak skrip SQL ing basis data lan banjur prometheus njupuk asil sing dipikolehi. Iki uga ngidini sampeyan nggedhekake metrik sing diklumpukake kanthi nambah dhewe.
Ayo disebarake kaya iki (umpamane deployment.yaml, non-binding):
---
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
Uga mbutuhake layanan lan aliran gambar
Sawise nyebarake, kita pancene pengin kabeh wong bisa ndeleng.
Tambahake potongan ing ngisor iki menyang konfigurasi Prometheus:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Lan banjur kabeh bisa digunakake, sing isih ana yaiku nambahake kabeh barang kasebut menyang grafana lan nikmati asile.
Saliyane kemampuan kanggo nambah pitakon sampeyan dhewe, sampeyan bisa ngganti setelan ing prometheus, ngumpulake metrik sing luwih ditargetake.
Iki ditindakake kanthi cara sing padha kanggo:
- Kafka
- Elasticsearch
- mongo
PS Kabeh data ing jeneng, bandar lan liyane dijupuk saka udhara lan ora ngemot informasi sembarang.
Link migunani:
Source: www.habr.com