2017-07-17 3 views
1

私は次のラベルを持つメトリックがある場合:プロメテウスのクエリでラベルをグループ化する方法はありますか?

my_metric{group="group a"} 100 
my_metric{group="group b"} 100 
my_metric{group="group c"} 100 
my_metric{group="misc group a"} 1 
my_metric{group="misc group b"} 2 
my_metric{group="misc group c"} 1 
my_metric{group="misc group d"} 1 

はそれもクエリまたは一緒に「misc」のグループを組み合わせたlabel_replaceを行うことは可能ですか?

答えて

6

はい、あなたはラベルを使用することができるグループにまとめ、すべてのmiscの置き換え:

sum by (new_group) (
    label_replace(
    label_replace(my_metric, "new_group", "$1", "group", ".+"), 
    "new_group", "misc", "group", "misc group.+" 
) 
) 

インナーlabel_replaceコピーnew_groupにグループからすべての値を、外側が一致したもの上書きして「その他のグループを+。」 "misc"とし、 "new_group"ラベルで合計します。新しいラベルを使用する理由は、「グループ」ラベルを上書きしただけでシリーズが一意でなくなり、合計が機能しなくなるためです。

+0

それだけで実行して同じ結果をarchieveすることはできません: '和(その他)( label_replace(my_metrics、 "その他"、 "グループ"、 "その他グループ+。") )'で – Hawky4s

1

(私は後でクエリを経由してメトリックを修正したい場合のために、私はメトリックカーディナリティを改善する必要があることを認識し、私はそれを修正するためにアプリを更新しました。しかし、この質問を私に左)

あなたは正規表現のクエリを使用することができます。

my_metric{group=~"misc group.+"} 

あなたの「その他グループ」とgroup始まるすべてを与えること。

関連する問題