2017-04-18 5 views
1

Prometheus/Alert Managerにcs_job_timeというラベルがあり、別のジョブの条件が満たされたときに電子メールアラートを送信したいと考えています。電子メールは正常に送信されますが、cs_job_timeの値を電子メールに含めることは可能ですか?問題のメトリックには{{$value}}を使用できますが、cs_job_timeの値も印刷したいと考えています。Prometheusからメールを受信して​​メトリックの値を表示する

私はthisに出くわしたが、私は

time = "{{ `cs_job_time{instance='%s', job='/'}` $labels.instance | query | first }} 

または類似の変種をしようとすると、私はエラーメッセージ"Error expanding alert template CSJobAlert with data '{map[] 2123}': runtime error: invalid memory address or nil pointer dereference" source="alerting.go:199"

はメトリック値を電子メールで送信することが可能になってしまいますか?

答えて

2

あなたは例からそこprintfを逃している:そしてfirstが失敗する何の結果がありません場合

"{{ printf `cs_job_time{instance='%s', job='/'}` $labels.instance | query | first }}" 

は、しかし注意してください。通常、rangeステートメントを使用するのが最良です。

+0

返信ありがとうございます。それは問題を修正しましたが、今は ':最初の呼び出しでエラーが発生しました:要素のないベクトルで呼び出されたfirst()' 'Prometheusから' cs_job_time'にアクセスすると値があります。私の元の投稿にエラーメッセージが表示されていますが、私は間違っていると思います(申し訳ありません、私はテンプレートに行きます) – iso123

+0

あなたの仕事のラベルが間違っていると思います。 /prometheus.io/docs/visualization/template_examples/#simple-iterationの例を参考にしてください –

+1

ジョブ名をハードコードしていましたが、それはうまくいきました。 \ {cs_job_time {instance = 'localhost:9091'、job = 'jobname'} \ '|クエリ|最初の値}}' – iso123

関連する問題