Siveyans postgres andedan Openshift

Bon jounen, moun ki abite nan Habr!

Jodi a mwen vle di ou ki jan nou reyèlman te vle kontwole postgres ak yon koup nan lòt antite andedan gwoup la OpenShift ak ki jan nou te fè li.

Nan papòt la yo te gen:

  • Openshift
  • Helm
  • Prometheus


Pou travay ak yon aplikasyon java, tout bagay te byen senp ak transparan, oswa yo dwe pi presi:

1) Ajoute nan build.gradle

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

2) Kouri prometheus ak konfigirasyon

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

3) Ajoute yon ekspozisyon nan Grafana

Tout bagay te byen senp ak prozaik jiskaske moman sa a rive kontwole baz yo ki sitiye tou pre nan espas non nou an (wi, sa a se move, pa gen moun ki fè sa, men bagay diferan rive).

Ki jan li travay?

Anplis gous la ak postgres ak prometheus tèt li, nou bezwen yon lòt antite - ekspòtatè.

Yon ekspòtatè nan yon konsèp abstrè se yon ajan ki kolekte mezi nan yon aplikasyon oswa menm yon sèvè. Pou ekspòtatè postgres, li ekri nan Go, li travay sou prensip la nan kouri Scripts SQL andedan baz done a ak Lè sa a, prometheus pran rezilta yo jwenn. Sa a tou pèmèt ou elaji mezi yo kolekte lè w ajoute pwòp ou a.

Ann deplwaye li tankou sa a (egzanp deployment.yaml, ki pa obligatwa):


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

Li mande tou yon sèvis ak imagestream

Apre deplwaman, nou reyèlman vle tout moun wè youn ak lòt.

Ajoute moso sa a nan konfigirasyon Prometheus la:

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

Lè sa a, tout bagay te travay, tout sa ki rete se ajoute tout bagay sa yo nan grafana a epi jwi rezilta a.

Anplis kapasite pou ajoute pwòp demann ou yo, ou ka chanje anviwònman yo nan prometheus, kolekte plis mezi vize.

Sa a te fè menm jan an pou:

  • Kafka
  • Elasticsearch
  • Mongo

PS Tout done sou non, pò ak rès yo pran nan lè a epi yo pa gen okenn enfòmasyon.

Lyen itil:
Lis ekspòtatè divès kalite

Sous: www.habr.com

Add nouvo kòmantè