Bon jounen, moun ki abite nan Habr!
Jodi a mwen vle di ou ki jan nou reyèlman te vle kontwole postgres ak yon koup nan lòt antite andedan gwoup la OpenShift ak ki jan nou te fè li.
Nan papòt la yo te gen:
- Openshift
- Helm
- Prometheus
Pou travay ak yon aplikasyon java, tout bagay te byen senp ak transparan, oswa yo dwe pi presi:
1) Ajoute nan build.gradle
implementation "io.micrometer:micrometer-registry-prometheus"
2) Kouri prometheus ak konfigirasyon
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Ajoute yon ekspozisyon nan Grafana
Tout bagay te byen senp ak prozaik jiskaske moman sa a rive kontwole baz yo ki sitiye tou pre nan espas non nou an (wi, sa a se move, pa gen moun ki fè sa, men bagay diferan rive).
Ki jan li travay?
Anplis gous la ak postgres ak prometheus tèt li, nou bezwen yon lòt antite - ekspòtatè.
Yon ekspòtatè nan yon konsèp abstrè se yon ajan ki kolekte mezi nan yon aplikasyon oswa menm yon sèvè. Pou ekspòtatè postgres, li ekri nan Go, li travay sou prensip la nan kouri Scripts SQL andedan baz done a ak Lè sa a, prometheus pran rezilta yo jwenn. Sa a tou pèmèt ou elaji mezi yo kolekte lè w ajoute pwòp ou a.
Ann deplwaye li tankou sa a (egzanp deployment.yaml, ki pa obligatwa):
---
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
Li mande tou yon sèvis ak imagestream
Apre deplwaman, nou reyèlman vle tout moun wè youn ak lòt.
Ajoute moso sa a nan konfigirasyon Prometheus la:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Lè sa a, tout bagay te travay, tout sa ki rete se ajoute tout bagay sa yo nan grafana a epi jwi rezilta a.
Anplis kapasite pou ajoute pwòp demann ou yo, ou ka chanje anviwònman yo nan prometheus, kolekte plis mezi vize.
Sa a te fè menm jan an pou:
- Kafka
- Elasticsearch
- Mongo
PS Tout done sou non, pò ak rès yo pran nan lè a epi yo pa gen okenn enfòmasyon.
Lyen itil:
Sous: www.habr.com