Prometheus建立並向Alertmanager發送警報,而後Alertmanager根據標籤向不一樣的接收者發送通知。 接收器能夠是衆多集成中的一種,包括:Slack,PagerDuty,電子郵件或經過通用webhook接口的自定義集成。html
發送給接收者的通知是經過模板構建的。 Alertmanager附帶默認模板,但也能夠自定義。 爲避免混淆,請務必注意Alertmanager模板與Prometheus中的模板不一樣,但Prometheus模板還包括警報規則標籤/註釋中的模板。git
Alertmanager的通知模板基於Go模板系統。 請注意,某些字段將做爲文本進行評估,而其餘字段將做爲HTML進行評估,這將影響轉義。github
Data
是傳遞給通知模板和webhook推送的結構。golang
Name | Type | Notes |
---|---|---|
Receiver | string | 定義通知將被髮送到的接收者名稱(鬆弛,電子郵件等)。 |
Status | string | 若是至少有一個警報被觸發,則定義爲觸發,不然解析。 |
Alerts | Alert | 警報對象列表(見下文)。 |
GroupLabels | KV | 這些警報的標籤按分組。 |
CommonLabels | KV | 全部警報共有的標籤。 |
CommonAnnotations | KV | 全部警報的經常使用註釋集。 用於有關警報的更長的其餘信息串。 |
ExternalURL | string | 反向連接到發送通知的Alertmanager。 |
Alert
爲通知模板保留一個警報。web
Name | Type | Notes |
---|---|---|
Status | string | 定義警報是已解決仍是當前正在觸發。 |
Labels | KV | 要附加到警報的一組標籤。 |
Annotations | KV | 警報的一組註釋。 |
StartsAt | time.Time | 警報開始發射的時間。 若是省略,則當前時間由Alertmanager分配。 |
EndsAt | time.Time | 僅在已知警報結束時間時設置。 不然設置爲自上次收到警報以來的可配置超時時間。 |
GeneratorURL | string | 一個反向連接,用於標識此警報的生成實體。 |
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中的值列表。 |
請注意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。 |
Prometheus官網地址:prometheus.io/ 個人Github:github.com/Alrights/pr…