prometheus를 데이터 소스로 만든 grafana의 groups/tags 사용법

5061 단어 grafanaprometheus

동기 부여



grafana의 templating을 사용하여에서 prometheus의 라벨을 가챠 가챠 하고 있으면 항목이 늘어나고 포치포치 선택하는 것이 귀찮은 장면이 나온다고 생각합니다.
이것을 (어느 정도) 해소할 수 있다 groups/tags 라는 기능이 있다고 하는 것으로 사용해 보았습니다만 생각했던 것보다 직관적으로 아빠와 사용할 수 없었기 때문에 이해하기 위한 메모입니다.

목표



prometheus의 label의 값의 일부를 tag로 해 사용할 수 있도록 한다

말로 설명하기 어려운… 궁극적으로 생긴 것을 보기가 빠르다


이런 것을 만들

해보자



환경



prometheus 2.10.0
grafana 6.2.2

사용할 지표
sample_metrics{label="hoge-1"} 1
sample_metrics{label="hoge-2"} 1
sample_metrics{label="hoge-3"} 1
sample_metrics{label="hoge-ex1"} 1
sample_metrics{label="hoge-ex2"} 1
sample_metrics{label="fuga-11"} 1
sample_metrics{label="fuga-12"} 1
sample_metrics{label="fuga-13"} 1
sample_metrics{label="piyo-xxx"} 1
sample_metrics{label="peko-vvv"} 1

이번은 이 label 의 값의 - 의 이전의 캐릭터 라인을 tag로서 이용하고 싶습니다
hoge fuga piyo peko 를 tag로 하는 가정이군요

grafana에서 미리 원래가 될 변수를 설정하십시오.


경과



어쨌든 문서를 보았습니다.
htps : // g 라후나. 코 m / 드 cs / 레후 렌세 / mp ぁ チン g / #
굉장히 시원한...
실험적인 기능인 것 같아서 어쩔 수 없는가
Tags query 에서 태그가 될 항목 목록Tag values query 에서 낸 tag의 항목을 사용해 어떻게 할까
같은 느낌 같아요.

Tag 얻기



어쨌든 원하는 tag를 얻을 필요가 있습니다.
직접 쓰기로 열거하고 싶습니다만, 그런 것은 할 수 없고 쿼리로 얻을 필요가 있는 것 같습니다.
prometheus라면 이것들을 사용
h tps : // g 라후나. 코 m / 드 cs / 훗 아츠레 s / 굳이 r s / p 뻗어 s / # mp ぁ 친 g

이것은 prometheus의 label_replace를 사용하면 다소 강인하지만 괜찮다…라고 생각하면 안 된다.
htps : // 기주 b. 코 m / g 라후나 / g 라후나 / 이스에 s / 11674
variables와 같이 regex가 있으면 할 수 있습니다만 tag는 query 일발로 낼 필요가 있습니다.

분명히 미리 태그에 대한 레이블을 메트릭에 부여해야하는 것 같습니다.

그래서 prometheus config에서 metric_relabel_config 사용합니다.
위의 지표에 대해 이런 식으로 relabel합니다.

prometheus.yaml(발췌)
  - job_name: 'sample'
    static_configs:
      - targets: ['target-host']
    metric_relabel_configs:
      - source_labels: ["label"]
        target_label: tag
        regex: "(.+)-.+"

이름 tag 로 대상 라벨의 - 의 앞의 캐릭터 라인을 값으로 한 라벨이 만들어집니다

에서 다시 Tags querylabel_values(tag)이번 목적의 태그를 얻었습니다.



태그 사용



마침내 태그를 얻을 수 있었지만 이것만으로는 물론 작동하지 않습니다.

동작을 Tag values query 로 설정해야 합니다.
이것은 문서에 쓰여진 것처럼,
Tag를 잡을 때 연동시키고 싶은 값의 일람을 얻는다
같은 느낌입니다.
Tag의 값은 $tag 에서 사용할 수 있습니다.
이번에 예를 들어,
tag fuga 부터 fuga-11 fuga-12 fuga-13그렇게되기 때문에,label_values({label=~"$tag.*"},label)대체로 이런 느낌입니다.


이제 이번 목표를 달성할 수 있어 서두의 gif와 같은 동작을 할 수 있게 되었습니다.

잡감



어디까지나 실험적인 기능이므로 많이 기대하는 것은 좋지 않습니다.
그렇지만 이 앞 기능이 충실해 가는 것 같은 분위기도 그다지 느껴지지 않는 것 같다.

어쨌든 태그를 얻는 것이 너무 귀찮다고 생각합니다만, 다른 datasource라면 이것이 사용하기 쉽거나 합니까?

좋은 웹페이지 즐겨찾기