[comment]: # ({3f27ca92-fb204a33})
# 10 自动发现Windows性能计数器实例

[comment]: # ({/3f27ca92-fb204a33})

[comment]: # ({b3792a56-f150cb4f})
#### 概述

可以发现 Windows 性能计数器的对象实例。
这对于多实例性能计数器非常有用。

[comment]: # ({/b3792a56-f150cb4f})

[comment]: # ({bae6ae54-b89c3c17})
#### 监控项键值

要配置[发现规则](/manual/discovery/low_level_discovery#discovery-rule)，请使用以下监控项：

-   `perf_instance.discovery[object]`

请注意，对象名称可能会被本地化。例如：

```bash
perf_instance.discovery[Processor] # 对象名称为英文。
perf_instance.discovery[Processador] # 对象名称为葡萄牙语。
```

或者，为了确保无论操作系统本地化设置如何，对象名称都以英文提供，请使用以下监控项：

-   `perf_instance_en.discovery[object]`

例如：

```bash
perf_instance_en.discovery[Processor]
perf_instance_en.discovery[Memory]
```

[comment]: # ({/bae6ae54-b89c3c17})

[comment]: # ({12c54373-4407d98a})
#### 支持的宏

发现过程将返回指定对象的所有实例，并存入 `{#INSTANCE}` 宏中：

```json
[
    {"{#INSTANCE}":"0"},
    {"{#INSTANCE}":"1"},
    {"{#INSTANCE}":"_Total"}
]
```

此宏可在 `perf_counter[]` 和 `perf_counter_en[]` 监控项的原型中使用。

例如，如果发现规则中使用的监控项键为 `perf_instance.discovery[Processor]`，则可以创建以下监控项原型：

```bash
perf_counter["\Processor({#INSTANCE})\% Processor Time"]
```

注意：

-   如果未找到指定对象，或者该对象不支持可变实例，则发现监控项将变为 NOTSUPPORTED。
-   如果指定对象支持可变实例，但当前没有任何实例，则将返回一个空的 JSON 数组。
-   重复的实例将被跳过。

[comment]: # ({/12c54373-4407d98a})
