Góðan dag, íbúar í Habr!
Í dag vil ég segja þér hvernig við vildum virkilega fylgjast með postgres og nokkrum öðrum aðilum inni í OpenShift klasanum og hvernig við gerðum það.
Við innganginn höfðu þeir:
- Openshift
- Helm
- Prometheus
Til að vinna með Java forrit var allt frekar einfalt og gagnsætt, eða til að vera nákvæmari:
1) Bæti við build.gradle
implementation "io.micrometer:micrometer-registry-prometheus"
2) Keyrðu prometheus með stillingum
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Bæta skjá við Grafana
Allt var frekar einfalt og prosaískt þar til stundin rann upp til að fylgjast með bækistöðvum sem eru staðsettar í nágrenninu í nafnarýminu okkar (já, þetta er slæmt, enginn gerir þetta, en mismunandi hlutir gerast).
Hvernig virkar það?
Til viðbótar við fræbelginn með postgres og prometheus sjálfum, þurfum við eina aðila í viðbót - útflytjanda.
Útflytjandi í óhlutbundnu hugtaki er umboðsmaður sem safnar mælingum frá forriti eða jafnvel netþjóni. Fyrir postgres útflytjanda er það skrifað í Go, það virkar á meginreglunni um að keyra SQL forskriftir inni í gagnagrunninum og þá tekur Prometheus niðurstöðurnar sem fengust. Þetta gerir þér einnig kleift að stækka söfnuð mæligildi með því að bæta við þínum eigin.
Við skulum dreifa því svona (dæmi deployment.yaml, ekki bindandi):
---
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
Það krafðist líka þjónustu og myndstraums
Eftir dreifingu viljum við virkilega að allir sjáist.
Bættu eftirfarandi hluta við Prometheus stillinguna:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Og svo gekk allt, það eina sem er eftir er að bæta öllu þessu dóti í grafana og njóta útkomunnar.
Til viðbótar við möguleikann á að bæta við eigin fyrirspurnum geturðu breytt stillingunum í prometheus og safnað markvissari mælingum.
Þetta var gert á svipaðan hátt fyrir:
- Kafka
- Elasticsearch
- Mongó
PS Öll gögn um nöfn, höfn og restina eru tekin úr lofti og innihalda engar upplýsingar.
Gagnlegar hlekkir:
Heimild: www.habr.com