Çavdêriya postgres di hundurê Openshift de

Roj baş, rûniştvanên Hebrê!

Îro ez dixwazim ji we re vebêjim ka me bi rastî çawa dixwest ku postgres û çend saziyên din di hundurê koma OpenShift de bişopînin û me ew çawa kir.

Li ber deriyê wan hebû:

  • Openshift
  • Bêr
  • Prometheus


Ji bo ku bi serîlêdanek java re bixebitin, her tişt pir hêsan û zelal bû, an jî rasttir be:

1) Zêde kirin ava kirin.gradle

 implementation "io.micrometer:micrometer-registry-prometheus"

2) Prometheus bi veavakirinê bixebitin

 - job_name: 'job-name'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    kubernetes_sd_configs:
    - role: pod
      namespaces:
        names: 
          - 'name'

3) Zêdekirina pêşandanek li Grafana

Her tişt pir sade û prozaîk bû heya ku dem hat çavdêrîkirina bingehên ku li nêzîkê navên me ne (erê, ev xirab e, kes vê yekê nake, lê tiştên cûda diqewimin).

Çawa dixebite?

Ji xeynî pêlava bi postgres û prometheus bi xwe, ji me re saziyek din - îxrackar hewce dike.

Hin hinardekar di têgehek razber de karmendek e ku metrîkan ji serîlêdanek an tewra serverek berhev dike. Ji bo hinardekarê postgres, ew di Go-yê de hatî nivîsandin, ew li ser prensîba xebitandina SQL-yên di hundurê databasê de dixebite û dûv re prometheus encamên ku hatine bidestxistin digire. Ev jî dihêle hûn bi lêzêdekirina ya xwe metrîkên berhevkirî berfireh bikin.

Werin em wê bi vî rengî bicîh bikin (mînak deployment.yaml, ne-binding):


---
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

Di heman demê de karûbar û wêneyek jî hewce dike

Piştî şandinê, em bi rastî dixwazin ku her kes hevûdu bibînin.

Parçeya jêrîn li konfigurasyona Prometheus zêde bikin:

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

Û dûv re her tişt xebitî, ya ku dimîne ev e ku meriv van hemî tiştan li grafana zêde bike û ji encamê kêfê bike.

Digel şiyana ku hûn pirsên xwe zêde bikin, hûn dikarin mîhengên li prometheus biguhezînin, metrîkên bêtir armanc berhev bikin.

Ev bi heman awayî ji bo:

  • Kafka
  • Elasticsearch
  • mongo

PS Hemî daneyên li ser nav, port û yên mayî ji hewayê têne girtin û ti agahiyê nagirin.

Zencîreyên bikêr:
Lîsteya hinardekarên cihêreng

Source: www.habr.com

Add a comment