เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจเจพ

เจธเจผเฉเจญ เจฆเจฟเจจ, เจนเฉˆเจฌเจฐ เจฆเฉ‡ เจจเจฟเจตเจพเจธเฉ€!

เจ…เฉฑเจœ เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ“เจชเจจเจธเจผเจฟเจซเจŸ เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจ…เจคเฉ‡ เจ•เฉเจ เจนเฉ‹เจฐ เจธเฉฐเจธเจฅเจพเจตเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจธเฉ€ เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเจพ.

เจชเฉเจฐเจตเฉ‡เจธเจผ เจฆเฉเจ†เจฐ 'เจคเฉ‡ เจ‰เจจเฉเจนเจพเจ‚ เจ•เฉ‹เจฒ เจธเฉ€:

  • เจ“เจชเจจเจธเจผเจฟเจซเจŸ
  • เจนเฉ‡เจฒเจฎ
  • Prometheus


เจ‡เฉฑเจ• เจœเจพเจตเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ, เจธเจญ เจ•เฉเจ เจ•เจพเจซเจผเฉ€ เจธเจงเจพเจฐเจจ เจ…เจคเฉ‡ เจชเจพเจฐเจฆเจฐเจธเจผเฉ€ เจธเฉ€, เจœเจพเจ‚ เจตเจงเฉ‡เจฐเฉ‡ เจธเจŸเฉ€เจ• เจนเฉ‹เจฃ เจฒเจˆ:

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) เจ—เฉเจฐเจพเจซเจพเจจเจพ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเจฟเจธเจชเจฒเฉ‡ เจœเฉ‹เฉœเจจเจพ

เจธเจญ เจ•เฉเจ เจ•เจพเจซเจผเฉ€ เจธเจฐเจฒ เจ…เจคเฉ‡ เจตเจฟเจ…เฉฐเจ—เจพเจคเจฎเจ• เจธเฉ€ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจธเจพเจกเฉ‡ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡ เจธเจฅเจฟเจค เจฌเฉ‡เจธเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจฆเจพ เจชเจฒ เจจเจนเฉ€เจ‚ เจ†เจ‡เจ† (เจนเจพเจ‚, เจ‡เจน เจฌเฉเจฐเจพ เจนเฉˆ, เจ•เฉ‹เจˆ เจตเฉ€ เจ…เจœเจฟเจนเจพ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ, เจชเจฐ เจตเฉฑเจ–เฉ‹ เจตเฉฑเจ–เจฐเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ)เฅค

เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจšเจฒเจฆเจพ เจนเฉˆ?

เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจฎเฉ‡เจฅเฉ€เจ…เจธ เจฆเฉ‡ เจจเจพเจฒ เจชเฉ‹เจก เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ‡เจ•เจพเจˆ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ - เจจเจฟเจฐเจฏเจพเจคเจ•.

เจ‡เฉฑเจ• เจเจฌเจธเจŸเจฐเฉˆเจ•เจŸ เจธเฉฐเจ•เจฒเจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจฟเจฐเจฏเจพเจคเจ• เจ‡เฉฑเจ• เจเจœเฉฐเจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจœเจพเจ‚ เจธเจฐเจตเจฐ เจคเฉ‹เจ‚ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจเจ•เจธเจชเฉ‹เจฐเจŸเจฐ เจฒเจˆ, เจ‡เจน เจ—เฉ‹ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจ‡เจน เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ 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

เจ…เจคเฉ‡ เจซเจฟเจฐ เจธเจญ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ, เจœเฉ‹ เจฌเจพเจ•เฉ€ เจฌเจšเจฆเจพ เจนเฉˆ เจ‰เจน เจ‡เจน เจธเจพเจฐเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจจเจพ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฆเจพ เจ…เจจเฉฐเจฆ เจฒเฉˆเจฃเจพ เจนเฉˆ.

เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ–เฉเจฆ เจฆเฉ€เจ†เจ‚ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ›เจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจตเจฟเฉฑเจš เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจตเจงเฉ‡เจฐเฉ‡ เจจเจฟเจธเจผเจพเจจเจพ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ‡เจน เจ‡เจธ เจฒเจˆ เจ‡เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€:

  • เจ•เจพเจซเจ•เจพ
  • เจฒเจฒเจธเฉ€ เจ–เฉ‹เจœ
  • เจฎเฉŒเจ—เฉ‹

PS เจจเจพเจฎเจพเจ‚, เจฌเฉฐเจฆเจฐเจ—เจพเจนเจพเจ‚ เจ…เจคเฉ‡ เจฌเจพเจ•เฉ€ เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจนเจตเจพ เจคเฉ‹เจ‚ เจฒเจ เจ—เจ เจนเจจ เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจฒเจฟเฉฐเจ•:
เจตเฉฑเจ–-เจตเฉฑเจ– เจฌเจฐเจพเจฎเจฆเจ•เจพเจฐเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹