Host
host.* 命名空间应仅用于捕获资源属性。要报告主机指标,应使用 system.* 命名空间。
状态:
类型: host
描述: 主机被定义为计算实例。例如,物理服务器、虚拟机、交换机或磁盘阵列。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
host.arch | 推荐 | 字符串 | 主机系统运行的 CPU 架构。 | amd64; arm32; arm64 | |
host.id | 推荐 | 字符串 | 唯一的主机 ID。对于云,这必须是云提供商分配的 instance_id。对于非容器化系统,这应该是 machine-id。请参阅下表了解用于确定 machine-id 的来源,具体取决于操作系统。[1] | fdbf79e8af94cb7f9e8df36789187052 | |
host.image.id | 推荐 | 字符串 | VM 镜像 ID 或主机 OS 镜像 ID。对于云环境,此值来自提供商。 | ami-07b06b442921831e5 | |
host.image.name | 推荐 | 字符串 | 实例化主机的 VM 镜像或 OS 安装的名称。 | infra-ami-eks-worker-node-7d4ec78312; CentOS-8-x86_64-1905 | |
host.image.version | 推荐 | 字符串 | VM 镜像或主机 OS 的版本字符串,如 版本属性中所定义。 | 0.1 | |
host.name | 推荐 | 字符串 | 主机的名称。在 Unix 系统上,它可能包含 hostname 命令返回的内容,或者完全限定的主机名,或者用户指定的其他名称。 | opentelemetry-test | |
host.type | 推荐 | 字符串 | 主机的类型。对于云环境,这必须是机器类型。 | n1-standard-1 | |
host.ip | 选择加入 | string[] | 主机可用的 IP 地址,不包括环回接口。[2] | ["192.168.1.140", "fe80::abc2:4a28:737a:609e"] | |
host.mac | 选择加入 | string[] | 主机可用的 MAC 地址,不包括环回接口。[3] | ["AC-DE-48-23-45-67", "AC-DE-48-23-45-67-01-9F"] |
[1] host.id: 从非容器化系统收集 host.id
非特权机器 ID 查找
在为非容器化系统收集 host.id 时,首选非特权查找机器 ID。SDK 检测器实现必须使用下面列出的来源来获取机器 ID。
| OS | 主要 | 备用 |
|---|---|---|
| Linux | /etc/machine-id 的内容 | /var/lib/dbus/machine-id 的内容 |
| BSD | /etc/hostid 的内容 | kenv -q smbios.system.uuid 的输出 |
| MacOS | ioreg -rd1 -c "IOPlatformExpertDevice" 输出中的 IOPlatformUUID 行 | - |
| Windows | 注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography 中的 MachineGuid | - |
特权机器 ID 查找
可以使用特权来源查找 host.id。例如,Linux 系统可以使用 dmidecode -t system、dmidecode -t baseboard、dmidecode -t chassis 的输出,或从文件系统读取相应的数据(例如 cat /sys/devices/virtual/dmi/id/product_id、cat /sys/devices/virtual/dmi/id/product_uuid 等),但 SDK 资源检测器实现不得从特权来源收集 host.id。如果需要特权查找 host.id,则应通过 OTEL_RESOURCE_ATTRIBUTES 环境变量注入该值。
[2] host.ip: IPv4 地址必须使用点分四段表示法指定。IPv6 地址必须使用 RFC 5952 格式指定。
[3] host.mac: MAC 地址必须以 IEEE RA 十六进制格式表示:从最高有效位到最低有效位,以连字符分隔的十六进制八位字节表示。
host.arch 具有以下知名值列表。如果其中一个适用,则必须使用相应的名称;否则,可以使用自定义名称。
| 值 | 描述 | Stability |
|---|---|---|
amd64 | AMD64 | |
arm32 | ARM32 | |
arm64 | ARM64 | |
ia64 | Itanium | |
ppc32 | 32 位 PowerPC | |
ppc64 | 64 位 PowerPC | |
s390x | IBM z/Architecture | |
x86 | 32 位 x86 |
类型: host.cpu
状态:
类型: host.cpu
描述: 主机的 CPU 信息
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
host.cpu.cache.l2.size | 选择加入 | int | 处理器可用的二级缓存内存量(以字节为单位)。 | 12288000 | |
host.cpu.family | 选择加入 | 字符串 | CPU 的家族或代数。 | 6; PA-RISC 1.1e | |
host.cpu.model.id | 选择加入 | 字符串 | 型号标识符。它提供了关于 CPU 的更详细信息,使其区别于同一家族中的其他 CPU。 | 6; 9000/778/B180L | |
host.cpu.model.name | 选择加入 | 字符串 | 处理器的型号名称。 | 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz | |
host.cpu.stepping | 选择加入 | 字符串 | 步进或核心修订版本。 | 1; r1p1 | |
host.cpu.vendor.id | 选择加入 | 字符串 | 处理器制造商标识符。最多 12 个字符的字符串。[1] | GenuineIntel |
[1] host.cpu.vendor.id: CPUID 命令在 EBX、EDX 和 ECX 寄存器中返回供应商 ID 字符串。按此顺序将它们写入内存会产生一个 12 个字符的字符串。