Openshift اندر پوسٽ گريج جي نگراني

سٺو ڏينهن، حبر جا رهواسي!

اڄ مان توهان کي ٻڌائڻ چاهيان ٿو ته ڪيئن اسان واقعي جي نگراني ڪرڻ چاهيندا هئاسين پوسٽ گريس ۽ ڪجهه ٻين ادارن اندر OpenShift ڪلستر ۽ اسان اهو ڪيئن ڪيو.

داخلا تي اهي هئا:

  • اوپن شفٽ
  • هيلمٽ
  • Prometheus


جاوا ايپليڪيشن سان ڪم ڪرڻ لاء، هر شيء بلڪل سادي ۽ شفاف هئي، يا وڌيڪ صحيح هجڻ لاء:

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) گرافانا ۾ ڊسپلي شامل ڪرڻ

هر شيء بلڪل سادو ۽ پراسڪ هو جيستائين اهو لمحو اسان جي نالي جي جاء تي ويجھي واقعن جي نگراني ڪرڻ لاء آيو (ها، اهو خراب آهي، ڪو به اهو نٿو ڪري، پر مختلف شيون ٿين ٿيون).

اهو ڪيئن ڪم ڪري ٿو؟

پوسٽ گريس ۽ پروميٿيوس سان گڏ پوڊ کان علاوه، اسان کي هڪ وڌيڪ ادارو جي ضرورت آهي - برآمد ڪندڙ.

هڪ برآمد ڪندڙ هڪ تجريدي تصور ۾ هڪ ايجنٽ آهي جيڪو ميٽرڪ گڏ ڪري ٿو ايپليڪيشن يا حتي سرور کان. پوسٽ گريس ايڪسپورٽر لاءِ، اهو گو ۾ لکيل آهي، اهو ڊيٽابيس جي اندر SQL اسڪرپٽ هلائڻ جي اصول تي ڪم ڪري ٿو ۽ پوءِ پروميٿيس حاصل ڪيل نتيجا وٺي ٿو. اهو پڻ توهان کي توهان جي پنهنجي شامل ڪندي گڏ ڪيل ميٽرڪس کي وڌائڻ جي اجازت ڏئي ٿو.

اچو ته ان کي هن طرح ترتيب ڏيو (مثال 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 config ۾ ھيٺيون ٽڪرا شامل ڪريو:

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

۽ پوءِ سڀ ڪجهه ڪم ڪيو، باقي رهي ٿو ته هي سڀ شيون گرافانا ۾ شامل ڪرڻ ۽ نتيجن مان لطف اندوز ٿيڻ.

توهان جي پنهنجي سوالن کي شامل ڪرڻ جي صلاحيت کان علاوه، توهان پروميٿيوس ۾ سيٽنگون تبديل ڪري سگهو ٿا، وڌيڪ ٽارگيٽ ميٽرڪ گڏ ڪري.

اهو ساڳيو طريقي سان ڪيو ويو آهي:

  • ڪوفي
  • ElasticsSearch
  • منڊو

PS نالن، بندرگاهن ۽ باقي سموري ڊيٽا هوا مان ورتي وئي آهي ۽ ان ۾ ڪا به ڄاڻ نه آهي.

مددگار ڪڙيون:
مختلف برآمد ڪندڙن جي فهرست

جو ذريعو: www.habr.com

تبصرو شامل ڪريو