完整译文请访问:http://www.coderdocument.com/docs/prometheus/v2.14/visualization/console_templates.html。
控制台模板允许使用Go模板语言创建任意控制台。这些是由Prometheus服务器提供的。
控制台模板是创建可以在源代码控制中轻松管理的模板的最强大的方法。这有一个学习曲线,所以使用这种类型监控的新用户应该先尝试Grafana。
入门
Prometheus带有一个控制台的例子,可以在在运行的Prometheus的/consoles/index.html.example
中找到。如果Prometheus正在抓取具有 job="node"
标签的节点导出器,那么它将显示节点导出器控制台。
示例控制台有5个部分:
- 顶部的导航栏
- 左侧菜单
- 底部的时间控件
- 中间的主要内容,通常是图形
- 右侧的表格
导航栏包含指向其他系统的链接,例如:其他Prometheis、文档以及其他任何对你有意义的内容。该菜单用于在同一个Prometheus服务器内导航,这对于快速打开另一个选项卡中的控制台以关联信息非常有用。它们都是在console_libraries/menu.lib
中配置的。
时间控件允许更改图形的持续时间和范围。可以共享控制台URL,并为其他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
的第三个参数的有效输出格式:
- 未指定:默认使用Go显示输出。
humanize
:使用metric prefixes显示结果。humanizeNoSmallPrefix
:如果绝对值大于1,使用metric prefixes显示结果;如果绝对值小于1,显示3位有效数字。humanize1024
:使用1024
而不是1000
作为基数来显示人性化的结果。这通常使用B
一起作为第二个参数来组成类似KiB
和MiB
这样的单位。printf.3g
:显示3位有效数字。
可以定义自定义格式。示例请参见prom.lib。
完整译文请访问:http://www.coderdocument.com/docs/prometheus/v2.14/visualization/console_templates.html。