2017-10-30 6 views
4

임 프로 메테우스의 YML에 다음 코드를 사용하여, 프로 메테우스 라벨에 GCE 태그를 수행하기 위해 relabeling를 사용 __meta_gce_tags에서 태그의 목록을 만들 :프로 메테우스/

relabel_configs: 
    - source_labels: [__meta_gce_tags] 
    target_label: tags 

태그는 다음과 같이 :

tags=",node_a,node_prod,node_centos," 

문제는 문자열 목록을 제공하는 반면, 태그 목록을 가지고 있으므로 쿼리 할 수 ​​있다는 것입니다. 예를 들어, 다음을 사용하는 대신 :

sum(elasticsearch_node_stats_up{tags=~".*?noda_a.*node_prod.?"}) 

정규식없이 사용할 수 있습니다. 그것을 할 방법이 있습니까?

답변

0

레이블을 다시 지정할 때 regex를 사용하여 레이블 값에서 값을 추출 할 수 있습니다. 그럼 정확히 건조한 것은 아니지만 작동 해보십시오 :

relabel_configs: 
    - source_labels: [__meta_gce_tags] 
    regex: ",node_([a-z]+),node_[a-z]+,node_[a-z]+" 
    target_label: node 
    replacement: '${1}' 
    - source_labels: [__meta_gce_tags] 
    regex: ",node_[a-z]+,node_([a-z]+),node_[a-z]+" 
    target_label: env 
    replacement: '${1}' 
    - source_labels: [__meta_gce_tags] 
    regex: "",node_[a-z]+,node_[a-z]+,node_([a-z]+)"" 
    target_label: os 
    replacement: '${1}' 

아마도 훨씬 더 우아한 정규 표현식을 사용할 수 있습니다.

당신이 레이블 값을 제어 할 수 있다면, 여기에 훨씬 더 내구성 기술이다 : https://www.robustperception.io/extracting-full-labels-from-consul-tags/

+0

감사합니다,하지만 내 태그는 동적 – MiddleWare