Prometheus学习系列(二十九)之可视化-控制台模板

语言模板创建任意的console。这些由Prometheus服务提供。

控制台模板是创建可在源代码管理中轻松管理的模板的最强大方法。 虽然有一个学习曲线,所以对这种监控方式不熟悉的用户应首先尝试Grafana。

一、Getting started

Prometheus附带一套示例,让您学习。 这些可以在运行的Prometheus上的/consoles/index.html.example中找到,如果Prometheus正在使用job="node"标签来抓取节点导出器,则会显示节点导出器控制台。

这个例子控制台包括5部分:

  1. 在顶部的导航栏
  2. 左边的一个菜单
  3. 底部的时间控制
  4. 在中心的主内容,通常是图表
  5. 右边的表格

导航栏用于指向其他系统的链接,例如其他Prometheis,文档以及其他任何对您有意义的内容。 该菜单用于在同一个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_headprom_right_table_tail模板包含右侧表。这是可选的。

prom_query_drilldown是一个模板,它将评估传递给它的表达式,格式化它,并链接到表达式浏览器中的表达式。第一个参数是表达式。第二个参数是要使用的单位。第三个参数是如何格式化输出。只需要第一个参数。

prom_query_drilldown的第三个参数的有效输出格式:

  • 未指定:默认转到显示输出。
  • humanize:使用指标前缀显示结果。
  • humanizeNoSmallPrefix:对于大于1的绝对值,使用度量标准前缀显示结果。对于小于1的绝对值,显示3位有效数字。这对于避免可以通过人性化生成的诸如每秒毫微秒的单位是有用的。
  • humanize1024:使用1024而不是1000的基数显示人性化结果。这通常与B一起用作生成KiBMiB等单位的第二个参数。
  • 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 可选. 图表结束时的Unixtime。 默认为现在。
width 可选. 图表的宽度,不包括标题。 默认为自动检测。
height 可选. 图表的高度,不包括标题和图例。 默认为200像素。
min 可选. 最小x轴值。 默认为最低数据值。
max 可选. 最小y轴值。 默认为最高数据值。
renderer 可选. 图表类型。 选项linearea(堆叠图)。 默认为行。
name 可选. 图例和悬停细节中的图表标题。 如果传递了一个字符串,[[label]]将被替换为标签值。 如果传递了一个函数,它将传递一个标签映射,并应该将该名称作为字符串返回。 可以是一个清单。
xTitle 可选. x轴的标题。 默认为Time
yUnits 可选. y轴的单位。 默认为空。
yTitle 可选. y轴的标题。 默认为空。
yAxisFormatter 可选. y轴的数字格式化程序。 默认为PromConsole.NumberFormatter.humanize
yHoverFormatter 可选. 悬停细节的数字格式化程序。 默认为PromConsole.NumberFormatter.humanizeExact
colorScheme 可选. 图表使用的配色方案。 可以是十六进制颜色代码列表,也可以是人力车支持的颜色方案名称之一。 默认为colorwheel

如果exprname都是列表,则它们的长度必须相同。 该名称将应用于相应表达式的图。

yAxisFormatteryHoverFormatter的有效选项:

  • PromConsole.NumberFormatter.humanize:使用度量标准前缀的格式。
  • PromConsole.NumberFormatter.humanizeNoSmallPrefix:对于大于1的绝对值,使用度量标准前缀进行格式化。 对于小于1的绝对值,请使用3位有效数字格式。 这对于避免PromConsole.NumberFormatter.humanize可以生成的每秒毫秒数等单位很有用。
  • PromConsole.NumberFormatter.humanize1024:使用1024而不是1000的基数格式化人性化结果。
四、链接:

Prometheus官网地址:https://prometheus.io/
我的Github:https://github.com/Alrights/prometheus

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容