Compartilhar via

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

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

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

已为 OpenTelemetry 性能计数器添加了新的数据源,支持Azure Monitor工作区作为目标。 在此处阅读有关使用此新数据源的好处的详细信息

注释

若要直接使用 DCR 定义或使用其他方法(如 ARM 模板)进行部署,请参阅 Azure Monitor 中的 Data 集合规则 (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启用的服务器)资源当前无法在 Metrics Explorer 中查看,但可以通过指标 REST API(指标命名空间 - 列表、指标定义 - 列表和指标 - 列表)获取其指标数据。

添加目标

OpenTelemetry 性能计数器可以发送到Azure Monitor工作区,可通过 PromQl 查询它。 这是所有用户推荐的数据目的地,因为 Container Insights、Application Insights 和 VM Insights 都正在转向使用 Azure Monitor 工作区 作为指标的来源,而不是 Log Analytics 工作区。

截图,显示数据收集规则中 Azure Monitor 工作区目标的配置。

验证数据收集

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

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

若要验证旧性能计数器数据源是否正在被收集到 Azure Monitor 指标中,请从 Azure 门户中的虚拟机中选择 Metrics。 为命名空间选择 Virtual Machine Guest (Windows) 或 azure.vm.linux.guestmetrics,然后选择要添加到视图的指标。

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

性能计数器

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

性能计数器 类别 默认采样频率
\处理器信息(_总计)\% 处理器时间 CPU 六十
\处理器信息(_Total)\% 特权时间 CPU 六十
\处理器信息(_Total)\% 用户时间 CPU 六十
\处理器信息(_Total)\处理器频率 CPU 六十
\系统\进程 CPU 六十
\进程(_Total)\线程计数 CPU 六十
\进程(_总计)\句柄计数 CPU 六十
\System\系统运行时间 CPU 六十
\System\上下文切换/秒 CPU 六十
\System\处理器队列长度 CPU 六十
\Memory\% 已提交字节使用中 内存 六十
\内存\可用字节 内存 六十
\内存\已提交字节 内存 六十
\内存\缓存字节 内存 六十
\Memory\Pool 分页字节数 内存 六十
\Memory\非分页内存池字节 内存 六十
\内存\页面/秒 内存 六十
\Memory\Page Faults/sec (内存页故障次数/秒) 内存 六十
\Process(_Total)\Working Set 内存 六十
\Process(_Total)\Working Set - Private 内存 六十
\LogicalDisk(_Total)\% 磁盘时间 Disk 六十
\LogicalDisk(_Total)\% 磁盘读取时间 Disk 六十
\LogicalDisk(_Total)\% 磁盘写入时间 Disk 六十
\LogicalDisk(_Total)\% 空闲时间 Disk 六十
\LogicalDisk(_Total)\磁盘字节/秒 Disk 六十
\LogicalDisk(_Total)\磁盘读取字节数/秒 Disk 六十
\LogicalDisk(_Total)\磁盘写入字节数/秒 Disk 六十
\LogicalDisk(_Total)\磁盘传输次数/秒 Disk 六十
\LogicalDisk(_Total)\磁盘读取/秒 Disk 六十
\LogicalDisk(_Total)\磁盘写入/秒 Disk 六十
\LogicalDisk(_Total)\Avg.Disk sec/Transfer Disk 六十
\LogicalDisk(_Total)\Avg.Disk sec/Read Disk 六十
\LogicalDisk(_Total)\Avg.Disk sec/Write Disk 六十
\LogicalDisk(_Total)\平均磁盘队列长度 Disk 六十
\LogicalDisk(_Total)\平均磁盘读取队列长度 Disk 六十
\LogicalDisk(_Total)\Avg.Disk Write Queue Length Disk 六十
\LogicalDisk(_Total)\% 空闲空间 Disk 六十
\LogicalDisk(_Total)\空闲兆字节 Disk 六十
\网络接口(*) \字节总数/秒 网络 六十
\网络接口(*) \字节发送/秒 网络 六十
\网络接口(*) \接收字节数/秒 网络 六十
\网络接口(*) \数据包/秒 网络 六十
\网络接口(*) \每秒发送的数据包 网络 六十
\网络接口(*) \数据包接收/秒 网络 六十
\网络接口(*) \数据包输出错误 网络 六十
\网络接口(*) \接收数据包错误 网络 六十

后续步骤