НаблюдСниС на 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, Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΎΡ‰Π΅ Π΅Π΄Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° – СкспортСр.

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

И Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΡƒΠΊ всичко Π·Π°Ρ€Π°Π±ΠΎΡ‚ΠΈ, остана само Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ всичко Ρ‚ΠΎΠ²Π° Π² Grafana ΠΈ Π΄Π° сС наслаТдавамС Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°.

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

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

  • Kafka
  • Elasticsearch
  • Mongo

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

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

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

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