เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเดฒเต† เดชเต‹เดธเตเดฑเตเดฑเตเด—เตเดฐเต†เดธเต เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต

เดจเดฒเตเดฒ เดฆเดฟเดตเดธเด‚, เดนเดฌเตเตผ เดจเดฟเดตเดพเดธเดฟเด•เตพ!

เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดชเต‹เดธเตเดฑเตเดฑเตโ€Œเด—เตเดฐเต†เดธเตเด‚ เดฎเดฑเตเดฑเต เดฐเดฃเตเดŸเต เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เดณเตเด‚ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดถเดฐเดฟเด•เตเด•เตเด‚ เด†เด—เตเดฐเดนเดฟเดšเตเดšเดคเต เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต†เดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เด…เดคเต เดŽเด™เตเด™เดจเต† เดšเต†เดฏเตเดคเตเดตเต†เดจเตเดจเตเด‚ เด‡เดจเตเดจเต เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเตเดฐเดตเต‡เดถเดจ เด•เดตเดพเดŸเดคเตเดคเดฟเตฝ เด…เดตเตผเด•เตเด•เต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต:

  • เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต
  • เดนเต†เตฝเด‚
  • เดชเตเดฐเต‡เดพเดฎเดฟเดคเตเดคเดฟเดฏเดธเต


เด’เดฐเต เดœเดพเดต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป, เดŽเดฒเตเดฒเดพเด‚ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดตเตเด‚ เดธเตเดคเดพเดฐเตเดฏเดตเตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ:

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) เด—เตเดฐเดพเดซเดพเดจเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดกเดฟเดธเตเดชเตเดฒเต‡ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

เดžเด™เตเด™เดณเตเดŸเต† เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต‡เดธเดฟเตฝ เดธเดฎเต€เดชเดคเตเดคเดพเดฏเดฟ เดธเตเดฅเดฟเดคเดฟเดšเต†เดฏเตเดฏเตเดจเตเดจ เดฌเต‡เดธเตเด•เตพ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเดฎเดฟเดทเด‚ เดตเดฐเตเดจเตเดจเดคเตเดตเดฐเต† เดŽเดฒเตเดฒเดพเด‚ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดตเตเด‚ เด†เด•เตผเดทเด•เดตเตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต (เด…เดคเต†, เด‡เดคเต เดฎเต‹เดถเดฎเดพเดฃเต, เด†เดฐเตเด‚ เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต).

เด…เดคเต†เด™เตเด™เดจเต†เดฏเดพเดฃเต เดชเตเดฐเดตเดฐเตเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต?

เดชเต‹เดธเตเดฑเตเดฑเตโ€Œเด—เตเดฐเต‡เดธเตเด‚ เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเตเด‚ เด‰เดณเตเดณ เดชเต‹เดกเดฟเดจเต เดชเตเดฑเดฎเต‡, เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟ เด•เต‚เดŸเดฟ เด†เดตเดถเตเดฏเดฎเดพเดฃเต - เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟเด•เตเด•เดพเดฐเตป.

เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดธเต†เตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดเดœเดจเตเดฑเดพเดฃเต เด…เดฎเต‚เตผเดคเตเดคเดฎเดพเดฏ เด’เดฐเต เด†เดถเดฏเดคเตเดคเดฟเดฒเต† เดŽเด•เตโ€Œเดธเตโ€Œเดชเต‹เตผเดŸเตเดŸเตผ. เดชเต‹เดธเตเดฑเตเดฑเตโ€Œเด—เตเดฐเต†เดธเต เดŽเด•เตโ€Œเดธเตโ€Œเดชเต‹เตผเดŸเตเดŸเดฑเดฟเดจเต, เด‡เดคเต Go- เตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเตเดณเตเดณเดฟเตฝ SQL เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดŽเดจเตเดจ เดคเดคเตเดตเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เดฒเดญเดฟเดšเตเดš เดซเดฒเด™เตเด™เตพ เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเต เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเต เดšเต‡เตผเดคเตเดคเตเด•เตŠเดฃเตเดŸเต เดถเต‡เด–เดฐเดฟเดšเตเดš เด…เดณเดตเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เดจเดฎเตเด•เตเด•เต เด‡เดคเต เด‡เดคเตเดชเต‹เดฒเต† เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเด‚ (เด‰เดฆเดพเดนเดฐเดฃเด‚ 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

เด‡เดคเดฟเดจเต เด’เดฐเต เดธเต‡เดตเดจเดตเตเด‚ เด‡เดฎเต‡เดœเต เดธเตเดŸเตเดฐเต€เดฎเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต

เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚, เดŽเดฒเตเดฒเดพเดตเดฐเตเด‚ เดชเดฐเดธเตเดชเดฐเด‚ เด•เดพเดฃเดฃเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเต เด•เต‹เตบเดซเดฟเด—เดฑเดฟเดฒเต‡เด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดญเดพเด—เด‚ เดšเต‡เตผเด•เตเด•เตเด•:

  - job_name: 'postgres_exporter'
    metrics_path: '/metrics'
    scrape_interval: 5s
    dns_sd_configs:
    - names:
      - 'postgres-exporter'
      type: 'A'
      port: 9187

เดคเตเดŸเตผเดจเตเดจเต เดŽเดฒเตเดฒเดพเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต, เด—เตเดฐเดพเดซเดพเดจเดฏเดฟเดฒเต‡เด•เตเด•เต เดˆ เด•เดพเดฐเตเดฏเด™เตเด™เดณเต†เดฒเตเดฒเดพเด‚ เดšเต‡เตผเดคเตเดคเต เดซเดฒเด‚ เด†เดธเตเดตเดฆเดฟเด•เตเด•เตเด• เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเดคเต.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด…เดจเตเดตเต‡เดทเดฃเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เด•เต‚เดŸเดพเดคเต†, เด•เต‚เดŸเตเดคเตฝ เดŸเดพเตผเด—เต†เดฑเตเดฑเตเดšเต†เดฏเตโ€Œเดค เด…เดณเดตเตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเดฟเดฒเต† เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเดพเดจเดพเด•เตเด‚.

เด‡เดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด‡เดคเต เดšเต†เดฏเตเดคเต:

  • เด•เดพเดซเตเด•
  • เด‡เดฒเดพเดธเตเดฑเตเดฑเดฟเดธเต†เดฐเตเดšเตเดšเต
  • เดฎเต‡เดพเด™เตเด•เต‡เดพ

PS เดชเต‡เดฐเตเด•เตพ, เดชเต‹เตผเดŸเตเดŸเตเด•เตพ, เดฌเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดต เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดกเดพเดฑเตเดฑเดฏเตเด‚ เดตเดพเดฏเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดŸเตเดคเตเดคเดคเดพเดฃเต, เด…เดคเดฟเตฝ เดตเดฟเดตเดฐเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.

เดชเตเดฐเดฏเต‡เดพเดœเดจเดชเตเดฐเดฆเดฎเดพเดฏ เดฒเดฟเด™เตเด•เตเด•เตพ:
เดตเดฟเดตเดฟเดง เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟเด•เตเด•เดพเดฐเตเดŸเต† เดชเดŸเตเดŸเดฟเด•

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•