web-dev-qa-db-ja.com

連邦エンドポイントからすべてのメトリックを取得する方法は?

一部のサーバーが他のサーバーをスクレイピングする、階層的なプロメテウスのセットアップがあります。一部のサーバーが他のサーバーからすべてのメトリックを取得するようにします。

現在、match[]="{__name__=~".*"}"をメトリックセレクターとして使用しようとしていますが、これによりエラーparse error at char 16: vector selector must contain at least one non-empty matcherが発生します。

それぞれ(プレフィックス)を一致セレクターとしてリストせずに、リモートプロメテウスからすべてのメトリックをスクレイプする方法はありますか?

12
tex

はい、次のことができます:match[]="{__name__=~".+"}"(空の文字列と一致しないように+ではなく*に注意してください)。

Prometheusには、ラベルマッチャーセットに一致しないマッチャーが少なくとも1つ必要ですすべて

9
Julius

私は複数の例を試しましたが、プロメテウスのドキュメントからのものでさえもうまくいきませんでした。

代わりにこれは私のために働きます

http://prometheus-ip:9090/federate?match[]={job!=""}
4
Radu Toader

フェデレーションは、すべてのメトリックを転送することを目的としたものではありません。転送しようとすると、最終的に問題が発生します。

代わりに、必要なメトリックを集約してから、それらのみを統合します。

4
brian-brazil

これが私の設定ファイルです。

この制限により、どのエクスポーター(ジョブ)からスクレイプするかをフィルタリングできます。

  params:
    'match[]':
    - '{job=~"node-exporter|kube-state|fluentbit"}'
    - '{__name__=~"job:.*"}'
0
SQERISON

これらをフェデレーションジョブに追加します

    params:
      match[]:
        - '{__name__=~".+"}'
        - '{__name__=~"^job:.*"}'
        - '{job="prometheus"}'
        - '{job="node"}'
        - '{__name__="server_labels"}'
0
Sachin Arote