ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° postgres Π² Openshift

Π”ΠΎΠ±ΡŠΡ€ Π΄Π΅Π½, ΠΆΠΈΡ‚Π΅Π»ΠΈ Π½Π° Π₯Π°Π±Ρ€!

ДнСс искам Π΄Π° Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ наистина искахмС Π΄Π° наблюдавамС postgres ΠΈ няколко Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΠ±Π΅ΠΊΡ‚Π° Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° OpenShift ΠΈ ΠΊΠ°ΠΊ Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅.

На Π²Ρ…ΠΎΠ΄Π° ΠΈΠΌΠ°Ρ…Π°:

  • ΠžΡ‚Π²Π°Ρ€ΡΠ½Π΅
  • Π¨Π»Π΅ΠΌ
  • ΠŸΡ€ΠΎΠΌΠ΅Ρ‚Π΅ΠΉ


Π—Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с java ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, всичко бСшС доста просто ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ, ΠΈΠ»ΠΈ ΠΏΠΎ-Ρ‚ΠΎΡ‡Π½ΠΎ:

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 ΠΈ самия prometheus, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ субСкт - износитСл.

Π˜Π·Π½ΠΎΡΠΈΡ‚Π΅Π»ΡΡ‚ Π² абстрактна концСпция Π΅ Π°Π³Π΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠ±ΠΈΡ€Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ ΡΡŠΡ€Π²ΡŠΡ€. Π—Π° 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:

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

И Ρ‚ΠΎΠ³Π°Π²Π° всичко ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΈ, всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ остава, Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ всички Ρ‚Π΅Π·ΠΈ Π½Π΅Ρ‰Π° към Π³Ρ€Π°Ρ„Π°Π½Π° ΠΈ Π΄Π° сС насладитС Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°.

Π’ допълнСниС към Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° добавятС свои собствСни заявки, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ настройкитС Π² prometheus, ΡΡŠΠ±ΠΈΡ€Π°ΠΉΠΊΠΈ ΠΏΠΎ-насочСни ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ.

Π’ΠΎΠ²Π° бСшС Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π°:

  • ΠšΠ°Ρ„ΠΊΠ°
  • Elasticsearch
  • Монго

PS Всички Π΄Π°Π½Π½ΠΈ Π·Π° ΠΈΠΌΠ΅Π½Π°, ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅ ΠΈ останалото са Π²Π·Π΅Ρ‚ΠΈ ΠΎΡ‚ Π²ΡŠΠ·Π΄ΡƒΡ…Π° ΠΈ Π½Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠ²Π° информация.

ПолСзни Π²Ρ€ΡŠΠ·ΠΊΠΈ:
Бписък Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ износитСли

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€