使用 Azure Monitor 从虚拟机收集性能计数器

性能计数器提供虚拟硬件组件、操作系统和工作负载性能的见解。 搭配使用数据收集规则 (DCR) 和性能计数器数据源,从 Windows 和 Linux 虚拟机收集计数器

有关创建 DCR 的详细信息,请参阅 使用 Azure Monitor 从 VM 客户端收集数据。 本文提供了性能计数器数据源类型的其他详细信息。

注释

若要直接使用 DCR 定义或使用 ARM 模板等其他方法进行部署,请参阅 Azure Monitor 中的数据收集规则(DCR)示例

配置性能计数器数据源

根据使用 Azure Monitor 从虚拟机客户端收集数据的过程创建 DCR。 在 DCR 的“收集和传递”选项卡上,从“数据源类型”下拉列表中选择“性能计数器”。 从预定义的一组对象和其采样率中进行选择。 采样率越低,收集值的频率就越高。

显示 Azure 门户中用于在数据收集规则中选择基本性能计数器的窗体的屏幕截图。

选择“自定义”以指定XPath来收集使用基本选择不可获取的任何性能计数器。 使用 \PerfObject(ParentInstance/ObjectInstance#InstanceIndex)\Counter 格式。

小窍门

如果计数器名称包含和符号 (&),请将其替换成 &。 例如,\Memory\Free & Zero Page List Bytes

此屏幕截图显示了 Azure 门户表单,用于在数据收集规则中选择自定义性能计数器。

警告

在手动定义与 Windows 和 Linux 计算机关联的 DCR 计数器时要小心,因为某些 Windows 和 Linux 样式计数器名称可以解析为相同的指标并导致重复收集。 例如,在同一 DCR 中同时指定 \LogicalDisk(*)\Disk Transfers/sec (Windows) 和 Logical Disk(*)\Disk Transfers/sec (Linux) 将导致每个采样周期收集磁盘传输指标两次。

通过不在未指定平台类型的 DCR 中收集性能计数器,可以避免此行为。 确保 Windows 计数器仅包含在与 Windows 计算机关联的 DCR 中,并且 Linux 计数器仅包含在与 Linux 计算机关联的 DCR 中。

注释

Microsoft.HybridCompute(已启用 Azure Arc 的服务器)资源当前无法在 指标资源管理器中查看,但可以通过指标 REST API(指标命名空间 - 列表、指标定义 - 列表和指标 - 列表)获取其指标数据。

添加目标

性能计数器可以发送到一个 Log Analytics 工作区,存储在 Perf 表和/或 Azure Monitor 指标(预览版)中,在指标资源管理器中可用。 添加 Azure Monitor 日志 类型的目标并选择 Log Analytics 工作区。 虽然可以添加多个工作区,但请注意,这会向每个工作区发送重复的数据,这将导致额外的成本。 对于 Azure Monitor 指标(预览版),不需要进一步的详细信息,因为这存储在受监视资源的订阅级别

注释

对于 Linux,v1.10.9.0 或更高版本中支持使用 Azure Monitor 指标作为唯一目标。

显示数据收集规则中 Azure Monitor 日志目标的配置的屏幕截图。

验证数据收集

若要验证是否正在 Log Analytics 工作区中收集数据,请检查 Perf 表中的记录。 在虚拟机或 Azure 门户中的 Log Analytics 工作区中,选择 “日志 ”,然后单击“ ”按钮。 在“虚拟机”类别下,单击 Perf 旁边的“运行”。

显示从 Perf 表返回的记录的屏幕截图。

若要验证数据是否正在 Azure Monitor 指标中收集,请从 Azure 门户中的虚拟机中选择 “指标 ”。 为命名空间选择 虚拟机来宾 (Windows)或 azure.vm.linux.guestmetrics ,然后选择要添加到视图的指标。

显示指标资源管理器中的客户端指标的屏幕截图。

性能计数器

适用于 Windows 和 Linux 虚拟机的 Azure Monitor 代理可收集以下性能计数器。 创建或更新数据收集规则时,可以更改采样频率。

Windows 性能计数器

性能计数器 类别 默认采样频率
\处理器信息(_总计)\% 处理器时间 中央处理器 六十
\Processor Information(_Total)\% Privileged Time 中央处理器 六十
\Processor Information(_Total)\% User Time 中央处理器 六十
\处理器信息(_Total)\处理器频率 中央处理器 六十
\系统\进程 中央处理器 六十
\进程(_Total)\线程计数 中央处理器 六十
\Process(_Total)\Handle Count 中央处理器 六十
\System\System Up Time 中央处理器 六十
\System\Context Switches/sec 中央处理器 六十
\System\处理器队列长度 中央处理器 六十
\Memory\% Committed Bytes In Use 内存 六十
\内存\可用字节 内存 六十
\Memory\Committed Bytes 内存 六十
\内存\缓存字节 内存 六十
\Memory\Pool Paged Bytes 内存 六十
\Memory\Pool Nonpaged Bytes 内存 六十
\Memory\Pages/sec 内存 六十
\Memory\Page Faults/sec 内存 六十
\Process(_Total)\Working Set 内存 六十
\Process(_Total)\Working Set - Private 内存 六十
\LogicalDisk(_Total)\% Disk Time 磁盘 六十
\LogicalDisk(_Total)\% Disk Read Time 磁盘 六十
\LogicalDisk(_Total)\% Disk Write Time 磁盘 六十
\LogicalDisk(_Total)\% Idle Time 磁盘 六十
\LogicalDisk(_Total)\Disk Bytes/sec 磁盘 六十
\LogicalDisk(_Total)\Disk Read Bytes/sec 磁盘 六十
\LogicalDisk(_Total)\Disk Write Bytes/sec 磁盘 六十
\LogicalDisk(_Total)\磁盘传输次数/秒 磁盘 六十
\LogicalDisk(_Total)\Disk Reads/sec 磁盘 六十
\LogicalDisk(_Total)\Disk Writes/sec 磁盘 六十
\LogicalDisk(_Total)\Avg.Disk sec/Transfer 磁盘 六十
\LogicalDisk(_Total)\Avg.Disk sec/Read 磁盘 六十
\LogicalDisk(_Total)\Avg.Disk sec/Write 磁盘 六十
\LogicalDisk(_Total)\平均磁盘队列长度 磁盘 六十
\LogicalDisk(_Total)\平均磁盘读取队列长度 磁盘 六十
\LogicalDisk(_Total)\Avg.Disk Write Queue Length 磁盘 六十
\LogicalDisk(_Total)\% 空闲空间 磁盘 六十
\LogicalDisk(_Total)\Free Megabytes 磁盘 六十
\网络接口(*) \字节总数/秒 网络 六十
\网络接口(*) \字节发送/秒 网络 六十
\网络接口(*) \接收字节数/秒 网络 六十
\网络接口(*) \数据包/秒 网络 六十
\网络接口(*) \每秒发送的数据包 网络 六十
\网络接口(*) \数据包接收/秒 网络 六十
\网络接口(*) \数据包输出错误 网络 六十
\网络接口(*) \接收数据包错误 网络 六十

后续步骤