āĻļā§āĻ āĻĻāĻŋāĻ¨, āĻšāĻžāĻŦāĻ°ā§āĻ° āĻŦāĻžāĻ¸āĻŋāĻ¨ā§āĻĻāĻž!
āĻāĻ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāĻ°āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻ¸ āĻāĻŦāĻ āĻāĻĒā§āĻ¨āĻļāĻŋāĻĢā§āĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻ¤ā§āĻ¤ā§āĻŦāĻž āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻā§āĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋ āĻāĻ°ā§āĻāĻŋāĨ¤
āĻĒā§āĻ°āĻŦā§āĻļāĻĻā§āĻŦāĻžāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻŋāĻ˛:
- OpenShift
- āĻšāĻžāĻ˛
- āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸
āĻāĻāĻāĻŋ āĻāĻžāĻāĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻŋāĻ˛ āĻŦā§āĻļ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻ¸ā§āĻŦāĻā§āĻ, āĻŦāĻž āĻāĻ°āĻ āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻšāĻ¤ā§:
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 āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž
āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ā§ āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻāĻžāĻāĻāĻŋāĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻŽā§āĻšā§āĻ°ā§āĻ¤ āĻ¨āĻž āĻāĻ¸āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻŦāĻāĻŋāĻā§āĻ āĻŦā§āĻļ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻ āĻĒā§āĻ°ā§āĻ¤āĻŋāĻāĻ° āĻāĻŋāĻ˛ (āĻšā§āĻ¯āĻžāĻ, āĻāĻāĻŋ āĻāĻžāĻ°āĻžāĻĒ, āĻā§āĻ āĻāĻāĻŋ āĻāĻ°ā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻāĻā§)āĨ¤
āĻāĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§?
āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻ¸ āĻāĻŦāĻ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻĄ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ°āĻ āĻāĻāĻāĻŋ āĻ¸āĻ¤ā§āĻ¤āĻž āĻĻāĻ°āĻāĻžāĻ° - āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋāĻāĻžāĻ°āĻāĨ¤
āĻāĻāĻāĻŋ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻ§āĻžāĻ°āĻŖāĻžāĻ° āĻāĻāĻāĻ¨ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋāĻāĻžāĻ°āĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦāĻž āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°ā§āĨ¤ āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻ¸ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ Go-āĻ¤ā§ āĻ˛ā§āĻāĻž āĻāĻā§, āĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ SQL āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¨ā§āĻ¤āĻŋāĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻ¨ā§āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ¯ā§āĻ āĻāĻ°ā§ āĻ¸āĻāĻā§āĻšā§āĻ¤ āĻŽā§āĻā§āĻ°āĻŋāĻāĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋāĻā§ āĻāĻāĻžāĻŦā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŋ (āĻāĻĻāĻžāĻšāĻ°āĻŖ 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
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻŦāĻ āĻāĻŽā§āĻāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻāĻžāĻ āĻ¯ā§ āĻ¸āĻŦāĻžāĻ āĻāĻā§ āĻ āĻĒāĻ°āĻā§ āĻĻā§āĻā§āĻāĨ¤
āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ āĻāĻļ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°ā§, āĻ¯āĻž āĻŦāĻžāĻāĻŋ āĻĨāĻžāĻā§ āĻ¤āĻž āĻšāĻ˛ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻā§āĻ°āĻžāĻĢāĻ¨āĻžāĻ¯āĻŧ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻāĻĒāĻā§āĻ āĻāĻ°āĻžāĨ¤
āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻā§āĻ° āĻĒā§āĻ°āĻļā§āĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ā§āĻ° āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻ°āĻ āĻ˛āĻā§āĻˇā§āĻ¯āĻ¯ā§āĻā§āĻ¤ āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻŋ āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻāĻ° āĻāĻ¨ā§āĻ¯:
- āĻāĻžāĻĢāĻāĻž
- Elasticsearch
- āĻŽā§āĻā§āĻā§
PS āĻ¨āĻžāĻŽ, āĻŦāĻ¨ā§āĻĻāĻ° āĻāĻŦāĻ āĻŦāĻžāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻāĻž āĻŦāĻžāĻ¯āĻŧā§ āĻĨā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ¤ā§ āĻā§āĻ¨āĻ āĻ¤āĻĨā§āĻ¯ āĻ¨ā§āĻāĨ¤
āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ:
āĻāĻ¤ā§āĻ¸: www.habr.com