console template(控制模板)


控制模板允许使用Go语言模板创建任意的console。这些由Prometheus服务提供

console模板是最强有力的方法,它可以在源码控制中创建容易管理的模板。我们可以首先尝试Grafana,减少学习成本。

Getting started

Prometheus提供了一系列的控制模板来帮助您。这些可以在Prometheus服务上的console/index.html.example中找到,如果Prometheus服务正在删除带有标签job="node"的Node Exporter, 则会显示NodeExporter控制台

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

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

这个导航栏是链接到其他系统,例如Prometheus其他方面的文档,以及其他任何使你明白的。该菜单用于在同一个Prometheus服务中导航,它可以快速在另一个tar中打开一个控制台。这些都是在console_libraries/menu.lib中配置。

时间控制台允许持久性和图表范围的改变。控制台URLs能够被分享,并且在其他的控制台中显示相同的图表。

主要内容通常是图表。这里有一个可配置的JavaScript图表库,它可以处理来自Prometheus服务的请求,并通过Rickshaw来渲染

最后,在右边的表格可以用笔图表更紧凑的形式显示统计信息。

例子控制台

这是一个最基本的控制台。它显示任务的数量,其中CPU平均使用率、以及右侧表中的平均内存使用率。主要内容具有每秒查询数据。

  1. {{template "head" .}}
  2. {{template "prom_right_table_head"}}
  3. <tr>
  4. <th>MyJob</th>
  5. <th>{{ template "prom_query_drilldown" (args "sum(up{job='myjob'})") }}
  6. / {{ template "prom_query_drilldown" (args "count(up{job='myjob'})") }}
  7. </th>
  8. </tr>
  9. <tr>
  10. <td>CPU</td>
  11. <td>{{ template "prom_query_drilldown" (args
  12. "avg by(job)(rate(process_cpu_seconds_total{job='myjob'}[5m]))"
  13. "s/s" "humanizeNoSmallPrefix") }}
  14. </td>
  15. </tr>
  16. <tr>
  17. <td>Memory</td>
  18. <td>{{ template "prom_query_drilldown" (args
  19. "avg by(job)(process_resident_memory_bytes{job='myjob'})"
  20. "B" "humanize1024") }}
  21. </td>
  22. </tr>
  23. {{template "prom_right_table_tail"}}
  24. {{template "prom_content_head" .}}
  25. <h1>MyJob</h1>
  26. <h3>Queries</h3>
  27. <div id="queryGraph"></div>
  28. <script>
  29. new PromConsole.Graph({
  30. node: document.querySelector("#queryGraph"),
  31. expr: "sum(rate(http_query_count{job='myjob'}[5m]))",
  32. name: "Queries",
  33. yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
  34. yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
  35. yUnits: "/s",
  36. yTitle: "Queries"
  37. })
  38. </script>
  39. {{template "prom_content_tail" .}}
  40. {{template "tail"}}

模板部分不翻译了,建议大家用Grafana,不喜欢后台服务渲染模板,还是让前端的童鞋去做数据呈现工作吧