prometheus监控_Prometheus监控简介

prometheus监控

指标是代表系统整体运行状况以及您认为对监视和警报或可观察性很重要的任何其他特定信息的主要方式Prometheus是从2012年开始在SoundCloud上构建的领先的开源度量工具,收集和存储工具包。此后,它从Cloud Native Computing Foundation 毕业 ,并成为Kubernetes监控的事实上的标准。 它已在以下内容中进行了详细介绍:

但是,这些文章都没有集中讨论如何在Kubernetes上使用Prometheus。 本文:

  • 描述Prometheus架构和数据模型,以帮助您了解其工作原理和功能
  • 提供有关在Kubernetes集群中设置Prometheus以及如何使用它来监视集群和应用程序的教程

建筑

虽然了解Prometheus的工作原理对于有效使用它并不重要,但它可能会有所帮助,尤其是在您考虑将其用于生产时。 Prometheus文档提供了此图形以及有关Prometheus的基本元素以及各部分之间如何连接的详细信息。

对于大多数用例,您应该了解Prometheus的三个主要组成部分:

  1. Prometheus 服务器抓取并存储指标。 请注意,它使用了持久层,该持久层是服务器的一部分,文档中未明确提及。 服务器的每个节点都是自治的,并且不依赖于分布式存储。 稍后,当我希望使用专用的时间序列数据库来存储Prometheus数据而不是依赖服务器本身时,将再次进行讨论。
  2. Web UI允许您访问,可视化和绘制存储数据的图表。 Prometheus提供了自己的UI,但是您也可以配置其他可视化工具,例如Grafana ,以使用PromQL(Prometheus查询语言)访问Prometheus服务器。
  3. Alertmanager从客户端应用程序(尤其是Prometheus服务器)发送警报。 它具有用于重复数据删除,分组和路由警报的高级功能,并且可以路由其他服务,例如PagerDuty和OpsGenie。

理解Prometheus的关键是它从根本上依赖于从已定义的端点中刮取或拉取度量标准。 这意味着您的应用程序需要公开一个可以使用度量的端点,并指示Prometheus服务器如何对其进行爬网(下面的教程中对此进行了介绍)。 对于许多应用程序,有些导出器没有添加Web端点的简便方法,例如KafkaCassandra (使用JMX导出器)。

资料模型

Prometheus文档的“ 度量类型”部分。

计数器和量规

两种最简单的度量标准类型是countergauge 。 当开始使用Prometheus(或更一般地说是时间序列监视)时,这些是最容易理解的类型,因为很容易将它们连接到您可以想象的监视值,例如应用程序正在使用多少系统资源或多少事件。已处理。

计数器是一个累积量度,代表一个单调递增的计数器,其值只能在重新启动时增加重置为零。例如,您可以使用计数器来代表已服务的请求数,已完成的任务或错误。”

因为您不能减少计数器,所以它可以并且应该仅用于表示累积指标。

量规是代表单个数值的指标,该数值可以任意地上下波动。量规通常用于测量值,例如[CPU]或当前内存使用情况,也用于可以上下波动的“计数”,例如并发请求数。”

直方图和摘要

Prometheus支持两种更复杂的度量标准类型: 直方图 摘要 。 由于它们都跟踪观察次数观察值的总和,因此这里有很多混淆的机会。 选择使用它们的原因之一是您需要计算观察值的平均值。 请注意,它们在数据库中创建了多个时间序列。 例如,它们各自创建带有_sum后缀的观测值的总和

直方图对观测值(通常是请求持续时间或响应大小之类的东西)进行采样,并将其计数在可配置的存储桶中。它还提供所有观测值的总和。”

这使它成为跟踪诸如延迟之类的事情的最佳人选,这些事情可能针对它定义了服务级别目标(SLO)。 从文档中

您可能有一个SLO在300毫秒内处理95%的请求。 在这种情况下,请将直方图配置为具有0.3秒上限的存储桶。 然后,您可以直接表示300毫秒内服务的相对请求数量,并在该值降至0.95以下时轻松发出警报。 以下表达式按作业为最近5分钟内服务的请求计算它。 请求持续时间是使用称为http_request_duration_seconds的直方图收集的。

sum(rate(http_request_duration_seconds_bucket{le="0.3"}[5m])) by (job)
/
sum(rate(http_request_duration_seconds_count[5m])) by (job)

返回定义:

“类似于直方图, 摘要会采样观察值(通常是请求持续时间和响应大小之类的东西。虽然它还提供观察值的总数和所有观察值的总和,但它会在滑动时间窗口内计算可配置的分位数。”

汇总和直方图之间的本质区别在于,汇总在客户端上计算流φ分位数并直接公开它们,而直方图则公开了桶式观察计数,而直方图桶中的分位数的计算则在服务器端使用histogram_quantile()函数。

如果您仍然感到困惑,建议您采用以下方法:

  • 大部分时间都使用量规来获取简单的时间序列指标。
  • 将计数器用于您知道会单调增加的事物,例如,如果您要计算发生某事的次数。
  • 使用直方图通过简单的存储桶进行延迟测量,例如,一个存储桶用于“ SLO以下”,另一个存储桶用于“ SLO之上”。

这对于绝大多数用例来说已经足够了,并且您应该依靠统计分析专家来帮助您解决更高级的情况。

现在,您已经对Prometheus是什么,它如何工作以及可以收集和存储的数据类型有了基本的了解,现在就可以开始本教程了。

Prometheus和Kubernetes动手教程

本教程包括以下内容:

  • 在您的集群中安装Prometheus
  • 下载示例应用程序并查看代码
  • 构建和部署应用程序并为其生成负载
  • 访问Prometheus UI并查看基本指标

本教程假定:

  • 您已经部署了Kubernetes集群。
  • 您已配置kubectl命令行实用程序进行访问。
  • 您具有集群管理员角色(或至少具有足够的特权来创建名称空间和部署应用程序)。
  • 您正在运行基于Bash的命令行界面。 如果您运行其他操作系统或外壳环境,请调整本教程。

如果您尚未运行Kubernetes,则此Minikube教程是在笔记本电脑上进行设置的简便方法。

如果您现在准备好了,那就走吧。

安装Prometheus

在本节中,您将克隆样本存储库并使用Kubernetes的配置文件将Prometheus

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值