写点什么

06 Prometheus 之 exporter 及查询持久性

  • 2022 年 1 月 06 日
  • 本文字数:821 字

    阅读完需:约 3 分钟

06 Prometheus之exporter及查询持久性

在主机上获得 CPU 饱和的一种方法是跟踪平均负载,实际上它是将主机上的 CPU 数量考虑在内的一段时间内的平均运行队列长度。平均负载少于 CPU 的数量通常是正常的,长时间内超过该数字的平均值则表示 CPU 已饱和。要查看主机的平均负载,我们可以使用 node_load*指标,它们显示了 1 分钟、5 分钟和 15 分钟的平均负载。


许多 exporter 都有特定的指标,旨在确定最后一次成功的数据抓取。例如,cAdvisor 指标 container_last_seen,它提供容器列表以及它们最近一次活动的时间。MySQL Exporter 返回一个指标 mysql_up,如果 SELECT 查询在数据库服务器上成功运行,则将该指标设置为 1。


可以使用 metadata 指标来进行向量匹配(vector match)。向量匹配可以使用任何 PromQL 二元运算符[插图]。向量匹配尝试针对左侧向量中的每个元素在右侧向量中查找对应的匹配元素。目前有两种向量匹配:一对一(one-to-one)和多对一(many-to-one,或一对多(one-to-many))


记录规则是一种根据已有时间序列计算新时间序列(特别是聚合时间序列)的方法,我们这样做是为了:

  • 跨多个时间序列生成聚合

  • 预先计算消耗大的查询

  • 产生可用于生成警报的时间序列


记录规则在规则组中定义,这里的规则组叫作 node_rules。规则组名称在服务器中必须是唯一的。规则组内的规则以固定间隔顺序执行。默认情况下,这是通过全局 evaluate_interval 来控制的,但你可以使用 interval 子句在规则组中覆盖。


安装了 exporter,并且抓取了主机和容器指标。对于指定的每个目标,我们在抓取配置中手动列出了它们的 IP 地址和端口。这种方法在主机较少时还可以,但不适用于规模较大的集群,尤其不适用于使用容器和基于云的实例的动态集群,这些实例经常会出现变化、创建或销毁的情况。


Prometheus 通过使用服务发现解决了这个问题:通过自动化的机制来检测、分类和识别新的和变更的目标。服务发现可以通过以下几种机制实现:

  • 从配置管理工具生成的文件中接收目标列表

  • 查询 API(例如 Amazon AWS API)以获取目标列表。

  • 使用 DNS 记录以返回目标列表。

发布于: 刚刚
用户头像

InfoQ签约作者 2018.11.30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
06 Prometheus之exporter及查询持久性