2017-04-18 30 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有:

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

不過要小心,如果沒有結果,則first將失敗。通常情況下,最好使用範圍語句,因爲這將對此具有彈性。

+0

感謝您的回覆。這是固定的問題,但我現在得到':錯誤調用第一:第一個()調用向量沒有元素「'如果我從普羅米修斯訪問'cs_job_time',有一個值,我也試着改變'第一'到範圍',但得到了錯誤信息在我原來的帖子,但我敢肯定,我做錯了(對不起,我是新的去模板) – iso123

+0

我猜你的工作標籤是不正確的。 /prometheus.io/docs/visualization/template_examples/#simple-iteration作爲例子 –

+1

感謝,它的工作,我硬編碼的工作名稱,它的工作。如果任何人只想要的價值,也加上'value'參數,例如' {{\'cs_job_time {instance ='localhost:9091',job ='jobname'} \'| query | first | value}}' – iso123