рдУрдкрдирд╢рд┐рдлреНрдЯ рдХреЗ рдЕрдВрджрд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ

рд╢реБрдн рджрд┐рди, рд╣рдмрд░ рдХреЗ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ!

рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдУрдкрдирд╢рд┐рдлреНрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреИрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рд╣рдордиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ред

рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдерд╛:

  • OpenShift
  • рдкрддрд╡рд╛рд░
  • рдкреНрд░реЛрдорд┐рдереЗрдЙрд╕


рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рдкрд╛рд░рджрд░реНрд╢реА рдерд╛, рдпрд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдХрд╣реЗрдВ рддреЛ:

1) рдмрд┐рд▓реНрдб.рдЧреНрд░реЗрдбрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛

 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) рдЧреНрд░рд╛рдлрд╛рдирд╛ рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрдкреНрд▓реЗ рдЬреЛрдбрд╝рдирд╛

рд╣рдорд╛рд░реЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдЖрд╕-рдкрд╛рд╕ рд╕реНрдерд┐рдд рдард┐рдХрд╛рдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖрдиреЗ рддрдХ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рдиреАрд░рд╕ рдерд╛ (рд╣рд╛рдБ, рдпрд╣ рдмреБрд░рд╛ рд╣реИ, рдХреЛрдИ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реЛрддреА рд╣реИрдВ)ред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬрд╝ рдФрд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╡рд╛рд▓реЗ рдкреЙрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдПрдХ рдФрд░ рдЗрдХрд╛рдИ - рдирд┐рд░реНрдпрд╛рддрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдПрдХ рдЕрдореВрд░реНрдд рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдПрдХ рдирд┐рд░реНрдпрд╛рддрдХ рдПрдХ рдПрдЬреЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдПрдХреНрд╕рдкреЛрд░реНрдЯрд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЧреЛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрдВрджрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЬреЛрдбрд╝рдХрд░ рдПрдХрддреНрд░рд┐рдд рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЖрдЗрдП рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдирд┐рдпреЛрдЬрди.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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ