Кайырлы күн, Хабр шаарынын тургундары!
Бүгүн мен сизге чындап эле Postgres жана OpenShift кластеринин ичиндеги бир нече башка объекттерди кантип көзөмөлдөгүбүз келгенин жана муну кантип жасаганыбызды айткым келет.
Кире бериште алар:
- Openshift
- башкаруу рулю
- Prometheus
Java тиркемеси менен иштөө үчүн бардыгы жөнөкөй жана ачык-айкын, тагыраак айтканда:
1) build.gradleге кошуу
implementation "io.micrometer:micrometer-registry-prometheus"
2) Прометейди конфигурация менен иштетиңиз
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Grafanaга дисплей кошуу
Биздин мейкиндикте жакын жайгашкан базаларды көзөмөлдөө учуру келгенге чейин бардыгы жөнөкөй жана прозалуу болгон (ооба, бул жаман, муну эч ким жасабайт, бирок ар кандай нерселер болот).
Бул кантип иштейт?
Постгрес менен прометейдин өзүнөн тышкары, бизге дагы бир субъект керек - экспорттоочу.
Абстрактуу концепциядагы экспортер - бул колдонмодон же ал тургай серверден көрсөткүчтөрдү чогултуучу агент. Postgres экспорттоочусу үчүн ал Go тилинде жазылган, ал SQL скрипттерин маалымат базасынын ичинде иштетүү принцибинде иштейт жана андан кийин prometheus алынган натыйжаларды алат. Бул ошондой эле чогултулган көрсөткүчтөрдү өзүңүздүн көрсөткүчтөрүңүздү кошуу менен кеңейтүүгө мүмкүндүк берет.
Келгиле, аны минтип жайгаштыралы (мисалы deployment.yaml, милдеттүү эмес):
---
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
Ал ошондой эле кызматты жана сүрөт агымын талап кылды
Жайгаштыруудан кийин биз бардыгынын бири-бирин көрүшүн каалайбыз.
Prometheus конфигурациясына төмөнкү бөлүгүн кошуңуз:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Анан баары иштеди, калганы бул нерселердин баарын графанага кошуп, натыйжадан ырахат алуу.
Өзүңүздүн сурооңузду кошуу мүмкүнчүлүгүнөн тышкары, сиз прометейдеги орнотууларды өзгөртө аласыз, көбүрөөк максаттуу көрсөткүчтөрдү чогулта аласыз.
Бул ушундай эле жол менен жасалган:
- Татарча
- ElasticSearch
- Соо
PS Аттар, порттор жана калгандары боюнча бардык маалыматтар абадан алынган жана эч кандай маалыматты камтыбайт.
Пайдалуу шилтемелер:
Source: www.habr.com