Prometheus學習系列(四十)之報警模板參考

Prometheus建立並向Alertmanager發送警報,而後Alertmanager根據標籤向不一樣的接收者發送通知。 接收器能夠是衆多集成中的一種,包括:Slack,PagerDuty,電子郵件或經過通用webhook接口的自定義集成。html

發送給接收者的通知是經過模板構建的。 Alertmanager附帶默認模板,但也能夠自定義。 爲避免混淆,請務必注意Alertmanager模板與Prometheus中的模板不一樣,但Prometheus模板還包括警報規則標籤/註釋中的模板。git

Alertmanager的通知模板基於Go模板系統。 請注意,某些字段將做爲文本進行評估,而其餘字段將做爲HTML進行評估,這將影響轉義。github

1、數據

Data是傳遞給通知模板和webhook推送的結構。golang

Name Type Notes
Receiver string 定義通知將被髮送到的接收者名稱(鬆弛,電子郵件等)。
Status string 若是至少有一個警報被觸發,則定義爲觸發,不然解析。
Alerts Alert 警報對象列表(見下文)。
GroupLabels KV 這些警報的標籤按分組。
CommonLabels KV 全部警報共有的標籤。
CommonAnnotations KV 全部警報的經常使用註釋集。 用於有關警報的更長的其餘信息串。
ExternalURL string 反向連接到發送通知的Alertmanager。
2、警報

Alert爲通知模板保留一個警報。web

Name Type Notes
Status string 定義警報是已解決仍是當前正在觸發。
Labels KV 要附加到警報的一組標籤。
Annotations KV 警報的一組註釋。
StartsAt time.Time 警報開始發射的時間。 若是省略,則當前時間由Alertmanager分配。
EndsAt time.Time 僅在已知警報結束時間時設置。 不然設置爲自上次收到警報以來的可配置超時時間。
GeneratorURL string 一個反向連接,用於標識此警報的生成實體。
3、KV

KV是一組用於表示標籤和註釋的鍵/值字符串對。bash

type KV map[string]string
複製代碼

包含兩個註釋的註釋示例:函數

{
  summary: "alert summary",
  description: "alert description",
}
複製代碼

除了直接訪問存儲爲KV的數據(標籤和註釋)以外,還有用於排序,刪除和查看LabelSet的方法:ui

KV方法spa

Name Arguments Returns Notes
SortedPairs - Pairs (list of key/value string pairs.) 返回鍵/值對的排序列表。
Remove []string KV 返回沒有給定鍵的鍵/值映射的副本。
Names - []string 返回LabelSet中標籤名稱的名稱。
Values - []string 返回LabelSet中的值列表。
4、函數

請注意Go模板也提供的默認函數code

Name Arguments Returns
title string strings.Title, 大寫每一個單詞的第一個字符。
toUpper string strings.ToUpper, 將全部字符轉換爲大寫。
toLower string strings.ToLower, 將全部字符轉換爲小寫。
match pattern, string Regexp.MatchString. 使用Regex匹配字符串。
reReplaceAll pattern, replacement, text Regexp.ReplaceAllString Regexp替換,未經修復。
join sep string, s []string strings.Join, 鏈接s的元素以建立單個字符串。 分隔符字符串sep放在結果字符串中的元素之間。 (注意:參數順序已反轉,以便在模板中更容易管道化。)
safeHtml text string html/template.HTML, 將字符串標記爲不須要自動轉義的HTML。
5、連接

Prometheus官網地址:prometheus.io/ 個人Github:github.com/Alrights/pr…

相關文章
相關標籤/搜索