主控台範本允許使用 Go 範本語言建立任意主控台。這些主控台由 Prometheus 伺服器提供服務。
主控台範本是在原始碼控制中輕鬆管理範本的最強大方法。不過,學習曲線較陡峭,因此不熟悉此監控方式的使用者應先試用 Grafana。
Prometheus 隨附一組範例主控台,供您開始使用。這些主控台可在執行中的 Prometheus 上的 /consoles/index.html.example
找到,如果 Prometheus 使用 job="node"
標籤抓取節點匯出器,則會顯示節點匯出器主控台。
範例主控台有 5 個部分
導覽列用於連結到其他系統,例如其他 Prometheus 1、文件以及對您有意義的任何其他內容。選單用於在同一個 Prometheus 伺服器內導覽,這對於能夠快速在另一個標籤中開啟主控台以關聯資訊非常有用。兩者都在 console_libraries/menu.lib
中設定。
時間控制項允許變更圖表的持續時間和範圍。可以共用主控台 URL,並且會向其他人顯示相同的圖表。
主要內容通常是圖表。提供了一個可設定的 JavaScript 圖表函式庫,該函式庫將處理從 Prometheus 請求資料,並透過 Rickshaw 呈現資料。
最後,右側的表格可用於以比圖表更精簡的形式顯示統計資訊。
這是一個基本主控台。它會在右側的表格中顯示任務數量、其中有多少個已啟動、平均 CPU 使用率以及平均記憶體使用率。主要內容有一個每秒查詢次數圖表。
{{template "head" .}}
{{template "prom_right_table_head"}}
<tr>
<th>MyJob</th>
<th>{{ template "prom_query_drilldown" (args "sum(up{job='myjob'})") }}
/ {{ template "prom_query_drilldown" (args "count(up{job='myjob'})") }}
</th>
</tr>
<tr>
<td>CPU</td>
<td>{{ template "prom_query_drilldown" (args
"avg by(job)(rate(process_cpu_seconds_total{job='myjob'}[5m]))"
"s/s" "humanizeNoSmallPrefix") }}
</td>
</tr>
<tr>
<td>Memory</td>
<td>{{ template "prom_query_drilldown" (args
"avg by(job)(process_resident_memory_bytes{job='myjob'})"
"B" "humanize1024") }}
</td>
</tr>
{{template "prom_right_table_tail"}}
{{template "prom_content_head" .}}
<h1>MyJob</h1>
<h3>Queries</h3>
<div id="queryGraph"></div>
<script>
new PromConsole.Graph({
node: document.querySelector("#queryGraph"),
expr: "sum(rate(http_query_count{job='myjob'}[5m]))",
name: "Queries",
yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
yUnits: "/s",
yTitle: "Queries"
})
</script>
{{template "prom_content_tail" .}}
{{template "tail"}}
prom_right_table_head
和 prom_right_table_tail
範本包含右側的表格。這是可選的。
prom_query_drilldown
是一個範本,它將評估傳遞給它的表達式、格式化表達式,並連結到 表達式瀏覽器中的表達式。第一個引數是表達式。第二個引數是要使用的單位。第三個引數是如何格式化輸出。只有第一個引數是必要的。
prom_query_drilldown
第三個引數的有效輸出格式
humanize
:使用 公制前綴顯示結果。humanizeNoSmallPrefix
:對於大於 1 的絕對值,使用 公制前綴顯示結果。對於小於 1 的絕對值,顯示 3 個有效位數。這對於避免 humanize
可能產生的單位(例如每秒毫查詢)很有用。humanize1024
:使用 1024 而非 1000 作為基數顯示人性化結果。這通常與 B
作為第二個引數一起使用,以產生諸如 KiB
和 MiB
之類的單位。printf.3g
:顯示 3 個有效位數。可以定義自訂格式。請參閱 prom.lib 以取得範例。
圖表函式庫的調用方式如下
<div id="queryGraph"></div>
<script>
new PromConsole.Graph({
node: document.querySelector("#queryGraph"),
expr: "sum(rate(http_query_count{job='myjob'}[5m]))"
})
</script>
head
範本會載入所需的 Javascript 和 CSS。
圖表函式庫的參數
名稱 | 描述 |
---|---|
expr | 必要。要繪製圖表的表達式。可以是清單。 |
node | 必要。要呈現到的 DOM 節點。 |
duration | 可選。圖表的持續時間。預設值為 1 小時。 |
endTime | 可選。圖表結束的 Unix 時間。預設值為現在。 |
width | 可選。圖表的寬度,不包括標題。預設值為自動偵測。 |
height | 可選。圖表的高度,不包括標題和圖例。預設值為 200 像素。 |
min | 可選。x 軸最小值。預設值為最低資料值。 |
max | 可選。y 軸最大值。預設值為最高資料值。 |
renderer | 可選。圖表類型。選項為 line 和 area (堆疊圖表)。預設值為 line 。 |
name | 可選。圖例和懸停詳細資訊中繪圖的標題。如果傳遞字串,則 [[ label ]] 將替換為標籤值。如果傳遞函式,則會傳遞標籤對應關係,並應以字串形式傳回名稱。可以是清單。 |
xTitle | 可選。x 軸的標題。預設值為 Time 。 |
yUnits | 可選。y 軸的單位。預設值為空白。 |
yTitle | 可選。y 軸的標題。預設值為空白。 |
yAxisFormatter | 可選。y 軸的數字格式設定器。預設值為 PromConsole.NumberFormatter.humanize 。 |
yHoverFormatter | 可選。懸停詳細資訊的數字格式設定器。預設值為 PromConsole.NumberFormatter.humanizeExact 。 |
colorScheme | 可選。繪圖要使用的色彩配置。可以是十六進位色彩代碼的清單,也可以是 Rickshaw 支援的 色彩配置名稱之一。預設值為 'colorwheel' 。 |
如果 expr
和 name
都是清單,則它們的長度必須相同。名稱將套用至對應表達式的繪圖。
yAxisFormatter
和 yHoverFormatter
的有效選項
PromConsole.NumberFormatter.humanize
:使用 公制前綴格式化。PromConsole.NumberFormatter.humanizeNoSmallPrefix
:對於大於 1 的絕對值,使用 公制前綴格式化。對於小於 1 的絕對值,格式化為 3 個有效位數。這對於避免 PromConsole.NumberFormatter.humanize
可能產生的單位(例如每秒毫查詢)很有用。PromConsole.NumberFormatter.humanize1024
:使用 1024 而非 1000 作為基數格式化人性化的結果。此文件是開放原始碼。請透過提交問題或提取要求來協助改進它。