Wilujeng siang warga Habr!
Dinten ieu kuring hoyong nyarioskeun ka anjeun kumaha urang leres-leres hoyong ngawas postgres sareng sababaraha éntitas sanés dina kluster OpenShift sareng kumaha urang ngalakukeunana.
Di lawang aranjeunna ngagaduhan:
- Openhift
- helem
- Prometheus
Pikeun damel sareng aplikasi java, sadayana saderhana sareng transparan, atanapi langkung tepatna:
1) Nambahan ka build.gradle
implementation "io.micrometer:micrometer-registry-prometheus"
2) Jalankeun prometheus kalawan konfigurasi
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Nambahkeun tampilan ka Grafana
Sagalana éta cukup basajan tur prosaic dugi momen sumping ka ngawas basa anu lokasina caket dieu di namespace urang (enya, ieu goréng, teu saurang ogé ngalakukeun ieu, tapi hal béda lumangsung).
Kumaha jalanna?
Salian pod sareng postgres sareng prometheus sorangan, urang peryogi hiji éntitas deui - eksportir.
Éksportir dina konsép abstrak nyaéta agén anu ngumpulkeun métrik tina aplikasi atanapi bahkan server. Pikeun eksportir postgres, éta ditulis dina Go, gawéna dina prinsip ngajalankeun Aksara SQL jero database lajeng prometheus nyokot hasil diala. Ieu ogé ngamungkinkeun anjeun ngalegaan métrik anu dikumpulkeun ku cara nambihan anjeun sorangan.
Hayu urang nyebarkeun éta sapertos kieu (conto deployment.yaml, henteu ngariung):
---
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
Éta ogé peryogi jasa sareng aliran gambar
Saatos deployment, urang bener hayang dulur ningali silih.
Tambahkeun potongan di handap ieu kana config Prometheus:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Teras sadayana damel, sadayana anu tetep nyaéta nambihan sadayana barang ieu kana grafana sareng nikmati hasilna.
Salian kamampuhan pikeun nambahkeun queries sorangan, Anjeun bisa ngarobah setelan dina prometheus, ngumpulkeun metrics leuwih sasaran.
Hal ieu dilakukeun dina cara anu sami pikeun:
- Kafka
- Elasticsearch
- mongo
PS Sadaya data dina ngaran, palabuhan sarta sésana dicokot tina hawa sarta henteu ngandung émbaran nanaon.
Tumbu mangpaat:
sumber: www.habr.com