Prometheus 구성 파일을 분리하는 방법은 무엇입니까?


10

지금 우리는 모니터링을 위해 Prometheus 를 사용 하고 있으며 많은 구성이 있습니다 (prometheus.yml 기본 구성 파일의 길이는 1400+ 줄입니다).

이것을 논리 그룹 (DEV / TEST / PROD?)으로 나누고 싶지만 Prometheus 구성 파일 구문에서 "includes"(또는 유사한)를 사용하는 방법에 대한 문서를 찾을 수없는 것 같습니다.

누구든지 Prometheus 구성 파일로이 작업을 수행 했습니까? 그렇다면 어떻게 했습니까?


여러 파일을 하나로 결합하는 스크립트는 어떻습니까?
gf_

그래, 그게 내가해야 할 일이라고 생각해 그러나 기껏해야 이것이 "해결 방법"입니다. 작은 구성 파일을 만들어서 "job_name"을 정의하여 구성 (제 생각에 긁는 구성의 "개발")을 테스트 한 다음 "reload"를 호출하여 시험해보십시오.
srkiNZ84

답변:


8

Prometheus 구성 파일 (및 에코 시스템의 다른 구성 파일)은 명시 적으로 템플릿 형식을 지원하지 않습니다. 대신 이것은 구성 관리 시스템에 맡겨 처리해야합니다.

또한 구성 파일에 dev / test / prod 섹션이 있다는 것은 조금 이상합니다. 일반적으로 a) 환경 당 Prometheus가 있고 b) 이러한 Prometheus 서버의 주요 차이점은의 env레이블에 대한 값이 다릅니다 external_labels.


이것이 "단일 유리창"아이디어를 위반하지 않습니까? 환경 당 별도의 인스턴스가있는 경우 DEV와 PROD 지표를 비교하기 위해 어떻게해야합니까? 이 사용 사례에 페더레이션 프로 메테우스를 사용해야합니까?
srkiNZ84

사용 사례는 별도의 DEV / TEST / PROD Kubernetes 클러스터가 있다는 것입니다. 각 클러스터에 대해 "서비스 검색"을 사용하여 서비스 및 포드 (컨테이너) 개체에서 모든 메트릭을 가져옵니다.
srkiNZ84

1
Prometheus에는 단일 유리창이 없으므로 아주 작은 시스템을 넘어서는 확장 성이 없습니다. Prometheus 자체의 메트릭조차 단일 유리 창에 비해 너무 커서 4-5와 비슷합니다. 일반적인 접근 방식은 Grafana에서 데이터 소스 템플릿을 사용하는 것이며 대시 보드를 나란히 비교할 수 있습니다.
brian-brazil

0

대상을 다른 파일로 오프로드하거나과 같은 일부 서비스 검색 도구를 사용할 수 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.