2017-07-17 2 views
0

私のノードアプリケーションでprom-clientを使用して、私たちのprometheusインスタンスに統計情報を送信しています。私はアプリが起動しているかどうかを判断する一連のリクエストを発しています。これで、どのアプリケーションがpingされているかによって、ゲージの名前を動的に設定したいと思います。Prometheusゲージ名を動的に作成する

apps.map(app => { 
    request(app.url, (error, response, body) => { 
    let name = app.name 
    const gauge = new client.Gauge({ 
     name: `${app.name}`, 
     help: `${app.name}`, 
     register, 
    }) 
    if (error) { 
     console.log(`${app.name} ERROR!`, error) 
     gauge.set(0) 
    } 
    if (response && response.statusCode == 200) { 
     console.log(`${app.name} is up!`, response.statusCode) 
     gauge.set(0) 
    } 
    gateway.pushAdd({ jobName: 'app_up_down', register }) 
    }) 
}) 

ゲージ名を${app.name}に設定すると、無効な名前のエラーがスローされます。そのエラーを投げるのをやめるために私が得ることができる唯一の方法は、私のために働かない名前をハードコードすることでした。動的にこれを設定する方法があるかどうか知っていますか?これはパッケージの問題ですか?

答えて

1

これは、おそらくblackbox exporterが優れたツールであるブラックボックス監視のようです。

名前に無効な文字が含まれている可能性が高いため、ラベルが適切な選択肢になります。さらに、これはnot a good use of the pushgatewayです。

+0

私は理解していますが、私たちのインフラストラクチャはプロメテウスを持つKubernetesをベースにしています。私はそれがプッシュゲートウェイをうまく利用していないことを知っていますが、私たちのアプリはファイアウォールの背後にあり、メトリックを削ることはできません。プッシュゲートウェイへのプッシュは私たちの唯一の選択肢です。 無効な文字についてもう少し詳しい情報を提供できますか?許可されるものとされないものは何ですか?これは私の初めてのプロメテウスを使用しており、文字列内の文字はすべてA-Z – erichardson30

+0

ですhttps://prometheus.io/docs/concepts/data_model/ファイアウォールの後ろにプロメテウスを実行します。 –

関連する問題