語言模板創(chuàng)建任意的console篙顺。這些由Prometheus服務(wù)提供。
控制臺模板是創(chuàng)建可在源代碼管理中輕松管理的模板的最強大方法。 雖然有一個學(xué)習(xí)曲線种远,所以對這種監(jiān)控方式不熟悉的用戶應(yīng)首先嘗試Grafana涩澡。
一顽耳、Getting started
Prometheus附帶一套示例,讓您學(xué)習(xí)妙同。 這些可以在運行的Prometheus上的/consoles/index.html.example
中找到射富,如果Prometheus正在使用job="node"
標(biāo)簽來抓取節(jié)點導(dǎo)出器,則會顯示節(jié)點導(dǎo)出器控制臺粥帚。
這個例子控制臺包括5部分:
- 在頂部的導(dǎo)航欄
- 左邊的一個菜單
- 底部的時間控制
- 在中心的主內(nèi)容胰耗,通常是圖表
- 右邊的表格
導(dǎo)航欄用于指向其他系統(tǒng)的鏈接,例如其他Prometheis芒涡,文檔以及其他任何對您有意義的內(nèi)容丧慈。 該菜單用于在同一個Prometheus服務(wù)器內(nèi)導(dǎo)航遗嗽,這對于能夠在另一個選項卡中快速打開控制臺以關(guān)聯(lián)信息非常有用。 兩者都在console_libraries/menu.lib
中配置。
時間控制允許更改圖形的持續(xù)時間和范圍凹耙。 控制臺URL可以共享,并為其他人顯示相同的圖表奉件。
主要內(nèi)容通常是圖表耗溜。 提供了一個可配置的JavaScript圖形庫,可以處理來自Prometheus的請求數(shù)據(jù),并通過Rickshaw進(jìn)行渲染冬三。
最后匀油,右側(cè)的表格可用于以比圖形更緊湊的形式顯示統(tǒng)計數(shù)據(jù)。
二勾笆、例子控制臺
這是一個基本的控制臺敌蚜。 它顯示了右側(cè)表中的任務(wù)數(shù),其中有多少窝爪,平均CPU使用率和平均內(nèi)存使用量钝侠。 主要內(nèi)容具有每秒查詢圖。
{{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
模板包含右側(cè)表酸舍。這是可選的帅韧。
prom_query_drilldown
是一個模板,它將評估傳遞給它的表達(dá)式啃勉,格式化它忽舟,并鏈接到表達(dá)式瀏覽器中的表達(dá)式。第一個參數(shù)是表達(dá)式淮阐。第二個參數(shù)是要使用的單位叮阅。第三個參數(shù)是如何格式化輸出。只需要第一個參數(shù)泣特。
prom_query_drilldown
的第三個參數(shù)的有效輸出格式:
- 未指定:默認(rèn)轉(zhuǎn)到顯示輸出浩姥。
-
humanize
:使用指標(biāo)前綴顯示結(jié)果。 -
humanizeNoSmallPrefix
:對于大于1的絕對值状您,使用度量標(biāo)準(zhǔn)前綴顯示結(jié)果勒叠。對于小于1的絕對值,顯示3位有效數(shù)字膏孟。這對于避免可以通過人性化生成的諸如每秒毫微秒的單位是有用的眯分。 -
humanize1024
:使用1024而不是1000的基數(shù)顯示人性化結(jié)果。這通常與B
一起用作生成KiB
和MiB
等單位的第二個參數(shù)柒桑。 -
printf.3g
:顯示3位有效數(shù)字弊决。
可以定義自定義格式。有關(guān)示例魁淳,請參閱prom.lib飘诗。
三、圖庫
圖庫被調(diào)用為:
<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界逛。
圖庫的參數(shù):
名字 | 描述 |
---|---|
expr | 必選. 表達(dá)式到圖表昆稿。 可以是一個清單。 |
node | 必選. 要渲染的DOM節(jié)點仇奶。 |
duration | 可選. 圖表的持續(xù)時間貌嫡。 默認(rèn)為1小時比驻。 |
endTime | 可選. 圖表結(jié)束時的Unixtime。 默認(rèn)為現(xiàn)在岛抄。 |
width | 可選. 圖表的寬度别惦,不包括標(biāo)題。 默認(rèn)為自動檢測夫椭。 |
height | 可選. 圖表的高度掸掸,不包括標(biāo)題和圖例。 默認(rèn)為200像素蹭秋。 |
min | 可選. 最小x軸值扰付。 默認(rèn)為最低數(shù)據(jù)值。 |
max | 可選. 最小y軸值仁讨。 默認(rèn)為最高數(shù)據(jù)值羽莺。 |
renderer | 可選. 圖表類型。 選項line 和area (堆疊圖)洞豁。 默認(rèn)為行盐固。 |
name | 可選. 圖例和懸停細(xì)節(jié)中的圖表標(biāo)題。 如果傳遞了一個字符串丈挟,[[label]] 將被替換為標(biāo)簽值刁卜。 如果傳遞了一個函數(shù),它將傳遞一個標(biāo)簽映射曙咽,并應(yīng)該將該名稱作為字符串返回蛔趴。 可以是一個清單。 |
xTitle | 可選. x軸的標(biāo)題例朱。 默認(rèn)為Time 孝情。 |
yUnits | 可選. y軸的單位。 默認(rèn)為空茉继。 |
yTitle | 可選. y軸的標(biāo)題咧叭。 默認(rèn)為空。 |
yAxisFormatter | 可選. y軸的數(shù)字格式化程序烁竭。 默認(rèn)為PromConsole.NumberFormatter.humanize 。 |
yHoverFormatter | 可選. 懸停細(xì)節(jié)的數(shù)字格式化程序吉挣。 默認(rèn)為PromConsole.NumberFormatter.humanizeExact 派撕。 |
colorScheme | 可選. 圖表使用的配色方案。 可以是十六進(jìn)制顏色代碼列表睬魂,也可以是人力車支持的顏色方案名稱之一终吼。 默認(rèn)為colorwheel 。 |
如果expr
和name
都是列表氯哮,則它們的長度必須相同际跪。 該名稱將應(yīng)用于相應(yīng)表達(dá)式的圖。
yAxisFormatter
和yHoverFormatter
的有效選項:
-
PromConsole.NumberFormatter.humanize
:使用度量標(biāo)準(zhǔn)前綴的格式。 -
PromConsole.NumberFormatter.humanizeNoSmallPrefix
:對于大于1的絕對值姆打,使用度量標(biāo)準(zhǔn)前綴進(jìn)行格式化良姆。 對于小于1的絕對值,請使用3位有效數(shù)字格式幔戏。 這對于避免PromConsole.NumberFormatter.humanize
可以生成的每秒毫秒數(shù)等單位很有用玛追。 -
PromConsole.NumberFormatter.humanize1024
:使用1024而不是1000的基數(shù)格式化人性化結(jié)果。
四闲延、鏈接:
Prometheus官網(wǎng)地址:https://prometheus.io/
我的Github:https://github.com/Alrights/prometheus