使用 Azure 工作簿查询 Prometheus 指标

使用 Azure 工作簿为 Prometheus 创建由 Azure Monitor 托管服务提供支持的仪表板。 本文介绍 Azure Monitor 工作区的工作簿,并演示如何使用 Azure 工作簿和 Prometheus 查询语言 (PromQL) 查询 Prometheus 指标。

先决条件

若要从 Azure Monitor 工作区查询 Prometheus 指标,需要以下各项:

  • Azure Monitor 工作区。 若要创建 Azure Monitor 工作区,请参阅创建 Azure Monitor 工作区
  • Azure Monitor 工作区必须从 AKS 群集收集 Prometheus 指标
  • 必须为用户分配角色,该角色可以在 Azure Monitor 工作区上执行 microsoft.monitor/accounts/read 操作。

Prometheus 资源管理器工作簿

Azure Monitor 工作区包括一个浏览工作簿,用于查询 Prometheus 指标。

  1. 在 Azure Monitor 工作区概述页中,选择“Prometheus 资源管理器

显示 Azure Monitor 工作区菜单选择的屏幕截图。

  1. 或者“工作簿”菜单项,然后在 Azure Monitor 工作区库中,选择“Prometheus 资源管理器”工作簿磁贴。

显示 Azure Monitor 工作区库的屏幕截图。

工作簿具有以下输入选项:

  • 时间范围。 选择要包含在查询中的时间段。 选择“自定义”以设置开始和结束时间。
  • PromQL。 输入 PromQL 查询以检索数据。 有关 PromQL 的详细信息,请参阅查询 Prometheus
  • “图”、“网格”和“维度”选项卡。 在查询输出的图形视图、表格视图和维度视图之间切换。

显示 PromQL 资源管理器的屏幕截图。

创建 Prometheus 工作簿

工作簿支持许多可视化效果和 Azure 集成。 有关 Azure 工作簿的详细信息,请参阅创建 Azure 工作簿

  1. 从 Azure Monitor 工作区中选择工作簿

  2. 选择“新建”。

  3. 在新工作簿中,选择“添加”,然后从下拉列表中选择“添加查询”。 显示空白工作区中的“添加内容”下拉列表的屏幕截图。

  4. Azure 工作簿使用数据源来设置它们所呈现数据的源范围。 要查询 Prometheus 指标,请选择“数据源”下拉列表,然后选择“Prometheus”。

  5. 从“Azure Monitor 工作区”下拉列表中,选择工作区。

  6. 从“Prometheus 查询类型”下拉列表中选择查询类型。

  7. 在“Prometheus 查询”字段中编写 PromQL 查询。

  8. 选择“运行查询”按钮。

  9. 选择该部分底部的“完成编辑”并保存工作

显示示例 PromQL 查询的屏幕截图。

故障排除

如果收到一条消息,指示“当前没有任何 Prometheus 数据引入到此 Azure Monitor 工作区”:

  • 验证是否已在 Azure Monitor 工作区的“受监视群集”边栏选项卡中启用指标收集。

如果工作簿查询未返回带有消息“您没有查询访问权限”的数据:

  • 检查在 Azure Monitor 工作区中是否拥有足够的权限来执行通过访问控制 (IAM) 分配的 microsoft.monitor/accounts/read
  • 确认网络设置是否支持查询访问。 可能需要通过专用终结点启用专用访问,或更改设置以允许公共访问。
  • 如果在浏览器中启用了广告块,则可能需要暂停或禁用和刷新工作簿才能查看数据。

常见问题

本部分提供常见问题的解答。

我缺少所有或部分指标。 如何进行故障排除?

可以使用此处的故障排除指南从托管代理引入 Prometheus 指标。

为什么我缺少具有名称相同但大小写不同的两个标签的指标?

Azure 托管的 Prometheus 是一个不区分大小写的系统。 如果字符串(例如指标名称、标签名称或标签值)与另一个时序的区别仅在于字符串的大小写,则它会将这些字符串视为相同的时序。 有关详细信息,请参阅 Prometheus 指标概述

指标数据中存在一些差距,为什么会这样?

在节点更新期间,对于从群集级别收集器收集的指标,你可能会看到指标数据中存在 1 到 2 分钟的间隔。 发生此差距的原因是运行数据的节点正在作为正常更新过程的一部分进行更新。 此更新过程影响整个群集范围内的目标,例如 kube-state-metrics 和指定的自定义应用程序目标。 手动或自动更新群集时,会出现这种情况。 此行为是预期行为,它的发生是由于它基于的节点正在更新。 此行为不会影响我们推荐的任何警报规则。

后续步骤