Maayong adlaw, mga residente sa Habr!
Karon gusto nako isulti kanimo kung giunsa namon gusto nga ma-monitor ang mga postgres ug usa ka magtiayon nga uban pang mga entidad sa sulod sa OpenShift cluster ug kung giunsa namo kini gibuhat.
Sa entrada sila adunay:
- Openshift
- Helm
- Prometheus
Aron magtrabaho sa usa ka aplikasyon sa java, ang tanan yano ug transparent, o aron mahimong mas tukma:
1) Pagdugang sa build.gradle
implementation "io.micrometer:micrometer-registry-prometheus"
2) Pagdalagan ang prometheus nga adunay configuration
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Pagdugang og display sa Grafana
Ang tanan yano ra ug us aka us aka us aka oras hangtod sa pag-abot sa oras sa pag-monitor sa mga base nga nahimutang sa duol sa among namespace (oo, kini dili maayo, walaβy usa nga nagbuhat niini, apan lainlain nga mga butang ang mahitabo).
Giunsa kini molihok?
Dugang pa sa pod nga adunay mga postgres ug prometheus mismo, kinahanglan namon ang usa pa nga entidad - exporter.
Ang usa ka exporter sa abstract nga konsepto usa ka ahente nga nagkolekta sa mga sukatan gikan sa usa ka aplikasyon o bisan sa usa ka server. Alang sa postgres exporter, kini gisulat sa Go, kini nagtrabaho sa prinsipyo sa pagpadagan sa mga script sa SQL sulod sa database ug unya gikuha sa prometheus ang mga resulta nga nakuha. Gitugotan ka usab niini nga mapalapad ang mga nakolekta nga sukatan pinaagi sa pagdugang sa imong kaugalingon.
Ato kining i-deploy sama niini (pananglitan 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
Nagkinahanglan usab kini og serbisyo ug imagestream
Pagkahuman sa pag-deploy, gusto gyud namon nga ang tanan magkita sa usag usa.
Idugang ang mosunod nga piraso sa Prometheus config:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Ug unya ang tanan nagtrabaho, ang nahabilin mao ang pagdugang sa tanan niini nga mga butang sa grafana ug pahimusli ang resulta.
Dugang pa sa abilidad sa pagdugang sa imong kaugalingon nga mga pangutana, mahimo nimong usbon ang mga setting sa prometheus, pagkolekta og mas gipunting nga mga sukatan.
Gihimo kini sa parehas nga paagi alang sa:
- Kafka
- Elasticsearch
- Mongo
PS Ang tanan nga datos sa mga ngalan, pantalan ug uban pa gikuha gikan sa hangin ug walaβy sulud nga kasayuran.
Mapuslanon nga sumpay:
Source: www.habr.com