Prometheus控制台模板

本文介绍了Prometheus控制台模板的使用,包括入门指南、示例控制台的结构和功能,如导航栏、时间控件、图形和表格展示。通过Go模板语言,用户可以创建自定义控制台进行监控。虽然对于新手来说,Grafana可能是更简单的选择,但Prometheus的控制台模板提供了更高级的定制能力。
摘要由CSDN通过智能技术生成

完整译文请访问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个部分:

  1. 顶部的导航栏
  2. 左侧菜单
  3. 底部的时间控件
  4. 中间的主要内容,通常是图形
  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一起作为第二个参数来组成类似KiBMiB这样的单位。
  • printf.3g:显示3位有效数字。

可以定义自定义格式。示例请参见prom.lib

完整译文请访问http://www.coderdocument.com/docs/prometheus/v2.14/visualization/console_templates.html

一、prometheus简介 Prometheus是一个开源的系统监控和告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,Prometheus再性能上可支撑上万台规模的集群。 二、prometheus架构图 三、prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据。 2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。 3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端 4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。 5.Grafana:监控仪表盘 6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。 四、课程亮点 五、效果图展示 六、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等 七、课程大纲
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值