你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Monitor 指标概述
Azure Monitor 指标是 Azure Monitor 的一项功能,它将受监视的资源中的数值数据收集到时序数据库。 指标是定期收集的数值,用于描述系统在某一特定时间的某些情况。
注意
Azure Monitor 指标是支持 Azure Monitor 的数据平台的一半。 另一半是 Azure Monitor 日志,它用于收集和组织日志与性能数据。 可以使用丰富的查询语言分析这些数据。
指标类型
Azure Monitor 指标支持多种类型的指标:
- 原生指标使用 Azure Monitor 中的工具进行分析和警报。
- 平台指标是从 Azure 资源收集的。 它们不需要任何配置,也无需付费。
- 自定义指标是从配置的不同源收集的,包括虚拟机上运行的应用程序和代理。
- Prometheus 指标是从 Kubernetes 群集(包括 Azure Kubernetes 服务 (AKS))收集的,并使用行业标准工具(例如 PromQL 和 Grafana)进行分析和警报。
下表汇总了每个指标之间的差异。
类别 | 原生平台指标 | 原生自定义指标 | Prometheus 指标 |
---|---|---|---|
源 | Azure 资源 | Azure Monitor 代理 Application insights REST API |
Azure Kubernetes 服务 (AKS) 群集 任何通过远程写入的 Kubernetes 群集 |
Configuration | 无 | 因源而异 | 启用适用于 Prometheus 的 Azure Monitor 托管服务 |
已存储 | 订阅 | 订阅 | Azure Monitor 工作区 |
成本 | 否 | 是 | 是(预览期间免费) |
聚合 | 预先聚合 | 预先聚合 | 原始数据 |
分析 | 指标资源管理器 | 指标资源管理器 | PromQL Grafana 仪表板 |
警报 | 指标警报规则 | 指标警报规则 | Prometheus 警报规则 |
可视化 | 工作簿 Azure 仪表板 Grafana |
工作簿 Azure 仪表板 Grafana |
Grafana |
检索 | Azure CLI Azure PowerShell cmdlet REST API 或客户端库 .NET Go Java JavaScript Python |
Azure CLI Azure PowerShell cmdlet REST API 或客户端库 .NET Go Java JavaScript Python |
Grafana |
数据收集
Azure Monitor 收集来自以下源的指标。 在 Azure Monitor 指标数据库中收集这些指标后,就可以一起评估它们,而不管它们的数据源是什么:
- Azure 资源:平台指标由 Azure 资源创建,可让你了解其运行状况和性能。 每种资源创建一组非重复性指标,无需进行任何配置。 平台指标每分钟从 Azure 资源中收集一次,除非在指标的定义中另有规定。
- 应用程序:Application Insights 为受监视的应用程序创建指标,以帮助检测性能问题,以及跟踪应用程序的用途趋势。 值包括服务器响应时间和浏览器异常。
- 虚拟机代理:指标收集自虚拟机的来宾操作系统。 可以使用 Azure Monitor 代理为 Windows 虚拟机启用来宾 OS 指标。 Azure Monitor 代理取代了旧代理 - Windows 诊断扩展,以及适用于 Linux 虚拟机的 InfluxData Telegraf 代理。
- 自定义指标:除了自动提供的标准指标,你还可以定义指标。 可以在 Application Insights 监视的应用程序中定义自定义指标。 还可以使用自定义指标 API 为 Azure 服务创建自定义指标。
- Kubernetes 群集:Kubernetes 群集通常会将指标数据发送到必须维护的本地 Prometheus 服务器。 适用于 Prometheus 的 Azure Monitor 托管服务提供了从 Kubernetes 群集收集指标并将其存储在 Azure Monitor 指标中的托管服务。
注意
从不同源和通过不同方法收集的指标可能以不同的方式聚合。 例如,平台指标预先聚合并存储在时序数据库中,而 Prometheus 指标存储为原始数据。资源指标可能也有不同于其他指标的延迟。 这可能导致特定示例时间的指标值存在差异。 随着时间的推移,当延迟不再是一个问题,并且以相同的时间粒度分析指标时,这些差异就会消失。
REST API
Azure Monitor 提供了可与 Azure Monitor 指标之间进行数据传输的 REST API。
- 自定义指标 API - 使用自定义指标可将自己的指标加载到 Azure Monitor 指标数据库中。 然后,这些指标即可由处理 Azure Monitor 平台指标的同一分析工具使用。
- Azure Monitor 指标 REST API - 允许访问 Azure Monitor 平台指标定义和值。 有关详细信息,请参阅 Azure Monitor REST API。 有关如何使用 API 的信息,请参阅 Azure 监视 REST API 演练。
- Azure Monitor 指标批平面 REST API - Azure Monitor 指标批 API 是一种大容量 API,专为具有大量指标查询的客户设计。 它类似于现有的标准 Azure Monitor 指标 REST API,但可以在单个批处理 API 调用中检索同一订阅和区域中最多 50 个资源 ID 的指标数据。 这可以提高查询吞吐量并降低受到限制的风险。
安全性
会使用 TLS 1.2 (HTTPS) 协议对已连接的系统与 Azure Monitor 服务之间的所有通信进行加密。 会遵循 Microsoft SDL 过程,确保所有 Azure 服务都是最新的且加密协议也是最新的。
会使用基于证书的身份验证和 TLS 通过端口 443 在代理和 Azure Monitor 服务之间建立安全连接。 Azure Monitor 使用机密存储生成和维护密钥。 私钥每隔 90 天会进行轮换、存储在 Azure 中,并受遵循严格的法规和合规性操作的 Azure Operations 管理。 有关安全性的详细信息,请参阅传输中的数据加密、静态数据加密和 Azure Monitor 日志数据安全性
指标资源管理器
使用指标资源管理器以交互方式分析指标数据库中的数据,并绘制随时间变化的多个指标的值图表。 可以将图表固定到仪表板,以便使用其他可视化效果来查看它们。 还可以使用 Azure 监视 REST API 检索指标。
有关详细信息,请参阅使用 Azure Monitor 指标资源管理器分析指标。
数据结构
Azure Monitor 指标收集的数据存储在为分析带有时间戳的数据而进行优化的时序数据库中。 每组指标值都是具有以下属性的时序:
- 值的收集时间。
- 与值关联的资源。
- 充当指标类别的命名空间。
- 指标名称。
- 值本身。
- 存在多个维度时。 自定义指标限制为 10 个维度。
多维指标
指标数据面临的一大挑战是,通常只有有限的信息来为收集的值提供上下文。 Azure Monitor 通过多维指标解决了这一挑战。
指标维度是携带更多数据来描述指标值的名称/值对。 例如,名为“可用磁盘空间”的指标的维度可能名为“驱动器”,其值为 C: 和 D:。 该维度将允许查看所有驱动器的可用磁盘空间或单独查看每个驱动器的可用磁盘空间。
有关在指标资源管理器中查看指标维度的详细信息,请参阅应用维度筛选器和拆分。
非维度指标
下表显示了来自非维度指标“网络吞吐量”的示例数据。 该指标只能回答类似“在某个给定时间我的网络吞吐量是多少?”的基本问题
时间戳 | 指标值 |
---|---|
8/9/2017 8:14 | 1,331.8 Kbps |
8/9/2017 8:15 | 1,141.4 Kbps |
8/9/2017 8:16 | 1,110.2 Kbps |
网络吞吐量和两个维度(“IP”和“方向”)
下表显示了来自多维度指标“网络吞吐量”(包含 IP 和 Direction 两个维度)的示例数据。 该指标可以回答类似“每个 IP 地址的网络吞吐量是多少?”以及“相对于收到的数据,发送的数据有多少?”的问题
时间戳 | “IP”维度 | “方向”维度 | 指标值 |
---|---|---|---|
8/9/2017 8:14 | IP="192.168.5.2" | Direction="Send" | 646.5 Kbps |
8/9/2017 8:14 | IP="192.168.5.2" | Direction="Receive" | 420.1 Kbps |
8/9/2017 8:14 | IP="10.24.2.15" | Direction="Send" | 150.0 Kbps |
8/9/2017 8:14 | IP="10.24.2.15" | Direction="Receive" | 115.2 Kbps |
8/9/2017 8:15 | IP="192.168.5.2" | Direction="Send" | 515.2 Kbps |
8/9/2017 8:15 | IP="192.168.5.2" | Direction="Receive" | 371.1 Kbps |
8/9/2017 8:15 | IP="10.24.2.15" | Direction="Send" | 155.0 Kbps |
8/9/2017 8:15 | IP="10.24.2.15" | Direction="Receive" | 100.1 Kbps |
注意
维度名称和维度值不区分大小写。
指标保留期
平台和自定义指标
平台和自定义指标存储 93 天,但以下情况除外:
经典来宾 OS 指标:这些性能计数器由 Windows 诊断扩展或 Linux 诊断扩展收集,将路由到 Azure 存储帐户。 保证这些指标的保留期至少为 14 天,但不会将到期日期写入存储帐户。
出于性能原因,门户会根据卷限制显示的数据量。 因此,如果写入的数据量不大,则门户检索到的实际天数可能会超过 14 天。
发送到 Azure Monitor 指标的来宾 OS 指标:这些性能计数器由 Windows 诊断扩展收集,并通过数据收集规则发送到 Azure Monitor 数据接收器或 Linux 计算机上的 InfluxData Telegraf 代理或较新的 Azure Monitor 代理。 这些指标的保留期为 93 天。
Log Analytics 代理收集的来宾 OS 指标:这些性能计数器由 Log Analytics 代理收集,将发送到 Log Analytics 工作区。 这些指标的保留期为 31 天,最多可延长到 2 年。
Application Insights 基于日志的指标:在幕后,基于日志的指标将转换为日志查询。 它们的保留期可变,并与基础日志中的事件保留期一致(31 天到 2 年)。 对于 Application Insights 资源,日志的存储时间为 90 天。
注意
虽然平台和自定义指标存储 93 天,但只能在任意单个图表上查询最多 30 天的数据(在“指标”磁贴中)。 此限制不适用于基于日志的指标。 如果显示空白图表,或图表仅显示部分指标数据,请验证时间选取器中开始日期和结束日期之间的间隔是否不超过 30 天。 选择 30 天间隔后,可以平移图表以查看完整的保留期窗口。
注意
移动或重命名 Azure 资源可能会导致该资源的指标历史记录丢失。
Prometheus 指标
Prometheus 指标存储 18 个月,但 PromQL 查询最多只能跨 32 天。
后续步骤
- 详细了解 Azure Monitor 数据平台。
- 了解 Azure Monitor 中的日志数据。
- 了解适用于 Azure 中各种资源的监视数据。