සුභ දවසක්, හබ්ර් හි පදිංචිකරුවන්!
අද මට ඔබට කියන්නට අවශ්ය වන්නේ අපට OpenShift පොකුර තුළ postgres සහ වෙනත් ආයතන කිහිපයක් නිරීක්ෂණය කිරීමට සැබවින්ම අවශ්ය වූයේ කෙසේද සහ අපි එය කළ ආකාරයයි.
ඇතුල් වන ස්ථානයේ ඔවුන්ට තිබුණේ:
- Openshift
- හෙල්ම්
- Prometheus
ජාවා යෙදුමක් සමඟ වැඩ කිරීමට, සෑම දෙයක්ම තරමක් සරල සහ විනිවිද පෙනෙන හෝ වඩාත් නිවැරදිව කිවහොත්:
1) build.gradle වෙත එකතු කිරීම
implementation "io.micrometer:micrometer-registry-prometheus"
2) වින්යාසය සමඟ prometheus ධාවනය කරන්න
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Grafana වෙත සංදර්ශකයක් එක් කිරීම
අපගේ නාම අවකාශයේ අසල පිහිටා ඇති කඳවුරු නිරීක්ෂණය කිරීමට මොහොත පැමිණෙන තෙක් සෑම දෙයක්ම තරමක් සරල හා විචිත්රවත් විය (ඔව්, මෙය නරකයි, කිසිවෙකු මෙය නොකරයි, නමුත් වෙනස් දේවල් සිදු වේ).
එය ක්රියා කරන්නේ කෙසේද?
පෝස්ට්ග්රෙස් සහ ප්රොමිතියස් සහිත පොඩ් එකට අමතරව, අපට තවත් එක් ආයතනයක් අවශ්ය වේ - අපනයනකරු.
වියුක්ත සංකල්පයක අපනයනකරුවෙකු යනු යෙදුමකින් හෝ සේවාදායකයකින් පවා ප්රමිතික එකතු කරන නියෝජිතයෙකි. postgres exporter සඳහා, එය 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 config එකට පහත කොටස එකතු කරන්න:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
එවිට සියල්ල ක්රියාත්මක විය, ඉතිරිව ඇත්තේ මේ සියල්ල ග්රැෆානා වෙත එකතු කර ප්රති result ලය භුක්ති විඳීමයි.
ඔබේම විමසුම් එකතු කිරීමේ හැකියාවට අමතරව, ඔබට ප්රොමිතියස් හි සැකසුම් වෙනස් කළ හැකිය, වැඩි ඉලක්කගත ප්රමිතික එකතු කිරීම.
මෙය මේ සඳහා සමාන ආකාරයකින් සිදු කරන ලදී:
- කාෆ්කා
- Elasticsearch
- මොන්ගෝ
PS නම්, වරායන් සහ ඉතිරි සියලු දත්ත වාතයෙන් ලබාගෙන ඇති අතර කිසිදු තොරතුරක් අඩංගු නොවේ.
ප්රයෝජනවත් සබැඳි:
මූලාශ්රය: www.habr.com