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

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

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

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

  • Openshift
  • Helm
  • Prometheus


Π—Π° Ρ€Π°Π±ΠΎΡ‚Π° с 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, Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΎΡ‰Π΅ Π΅Π΄Π½Π° ΡΡŠΡ‰Π½ΠΎΡΡ‚ β€” exporter.

Π•ΠΊΡΠΏΠΎΡ€Ρ‚Π΅Ρ€ΡŠΡ‚ Π² абстрактно понятиС Π΅ Π°Π³Π΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠ±ΠΈΡ€Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ ΡΡŠΡ€Π²ΡŠΡ€. Π—Π° postgres СкспортСра Π΅ написан Π½Π° 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 ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° промСнятС настройкитС, ΡΡŠΠ±ΠΈΡ€Π°ΠΉΠΊΠΈ ΠΏΠΎ-цСлСнасочСно Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ.

По Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ бСшС Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ Π·Π°:

  • Kafka
  • Elasticsearch
  • Mongo

P.S. Всички Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°Ρ‚Π°, ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ останалото са измислСни ΠΈ Π½Π΅ носят Π½ΠΈΠΊΠ°ΠΊΠ²Π° информация.

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

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster