จะแบ่งไฟล์การกำหนดค่าโพรได้อย่างไร?


10

ตอนนี้เรากำลังใช้Prometheusสำหรับการตรวจสอบของเราและเรามีการกำหนดค่าจำนวนมาก (ไฟล์กำหนดค่าหลัก prometheus.yml ของเรามีความยาว 1,400 บรรทัด)

ฉันต้องการแยกสิ่งนี้ออกเป็นกลุ่มตรรกะ (อาจเป็น DEV / TEST / PROD?) แต่ฉันไม่สามารถหาเอกสารใด ๆ เกี่ยวกับวิธีการใช้ "รวม" (หรือคล้ายกัน) ในไวยากรณ์ไฟล์ Prometheus ได้

มีใครทำเช่นนี้กับไฟล์ config ของ Prometheus หรือไม่ ถ้าเป็นเช่นนั้นคุณทำได้อย่างไร


สิ่งที่เกี่ยวกับสคริปต์เข้าร่วมหลายไฟล์เป็นหนึ่ง?
gf_

ใช่ฉันคิดว่านั่นคือสิ่งที่ฉันจะต้องทำ แต่ที่ดีที่สุดนี่คือ "วิธีแก้ปัญหา" ฉันต้องการที่จะสามารถสร้างไฟล์ปรับแต่งขนาดเล็กโดยกำหนด "job_name" เพื่อทดสอบการกำหนดค่า ("การพัฒนา" ของการกำหนดค่าการคัดลอกที่ฉันคิดว่า) จากนั้นเพียงเรียก "รีโหลด" เพื่อลองใช้งาน
srkiNZ84

คำตอบ:


8

ไฟล์กำหนดค่า Prometheus (และไฟล์กำหนดค่าอื่น ๆ ในระบบนิเวศ) ไม่สนับสนุนรูปแบบการสร้างเทมเพลตใด ๆ อย่างชัดเจน แต่สิ่งนี้จะถูกทิ้งไว้ที่ระบบจัดการการกำหนดค่าของคุณเพื่อจัดการ

นอกจากนี้มันฟังดูผิดปกติเล็กน้อยที่คุณมีส่วน dev / test / prod ในไฟล์ปรับแต่งของคุณ โดยปกติ) คุณต้องการมีโพรต่อสภาพแวดล้อมและ b) แตกต่างที่สำคัญระหว่างเซิร์ฟเวอร์โพรเหล่านี้จะเป็นค่าที่แตกต่างกันสำหรับป้ายของคุณenvexternal_labels


สิ่งนี้ไม่ได้ละเมิดแนวคิด "บานหน้าต่างกระจกบานเดียว" ใช่หรือไม่ เราจะเป็นคนกลางในการเปรียบเทียบการวัด DEV กับ PROD ได้อย่างไรถ้าเราแยกอินสแตนซ์ต่อสิ่งแวดล้อม เราควรใช้ Prometheus ที่ติดต่อกับภายนอกสำหรับกรณีการใช้งานนี้หรือไม่?
srkiNZ84

กรณีการใช้งานคือเรามีกลุ่ม Kubernetes DEV / TEST / PROD แยกกัน สำหรับแต่ละกลุ่มเราใช้ "การค้นพบบริการ" เพื่อรับตัวชี้วัดทั้งหมดจากวัตถุบริการและ Pod (คอนเทนเนอร์)
srkiNZ84

1
โพรไม่ได้มีความคิดแก้วบานเดียวที่ไม่ได้ปรับขนาดสำหรับสิ่งที่เกินกว่าระบบที่น้อยที่สุด แม้แต่ตัวชี้วัดของโพรมีส์ก็ใหญ่เกินไปสำหรับกระจกบานเดียวมันก็เหมือน 4-5 วิธีปกติคือการใช้แหล่งข้อมูลเทมเพลตใน Grafana และคุณสามารถเปรียบเทียบแดชบอร์ดเคียงข้างกัน
brian-brazil

0

คุณสามารถ offload consulเป้าหมายของคุณไปยังไฟล์ที่แตกต่างกันหรือใช้เครื่องมือการค้นพบบริการบางอย่างเช่น

  - job_name: yyy
    metrics_path: /probe
    scrape_interval: 10s
    scheme: https
    params:
      module:
        - http_2xx_LL
    static_configs:
      - targets: null
    file_sd_configs:
      - files:
          - prod-targets.yml
          - prod-misc-targets.yml
          - preprod-targets.yml
          - dev1-targets.yml
          - dev2-targets.yml
          - lab2-targets.yml
          - lab3-targets.yml
          - lab1-targets.yml
    relabel_configs:
      - source_labels:
          - __address__
    (...)

ตัวอย่างของ YML แต่ละรายการ

- targets:
    - https://example0.example.com:8443/studio/
    - https://example1.example.com:8443/studio/
    - https://example2.example.com:8443/studio/
    - https://example3.example.com:8443/studio/
    - https://example4.example.com:8443/studio/
    - https://example5.example.com:8443/studio/
    - https://example.example.com/studio/
  labels:
    service: Studio
    env: Prod
    team: Nullmean
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.