Host
主机
状态:
类型: host
描述:主机定义为计算实例。例如,物理服务器、虚拟机、交换机或磁盘阵列。
其他属性
⚠️ 此实体定义包含没有角色的属性。稳定的实体不得包含没有定义角色的属性。
| 键 | 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 |
主机 CPU
状态:
类型: host.cpu
描述:主机的 CPU 信息
其他属性
⚠️ 此实体定义包含没有角色的属性。稳定的实体不得包含没有定义角色的属性。
| 键 | 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 个字符的字符串。[4] | GenuineIntel |
[4] host.cpu.vendor.id:CPUID 命令在 EBX、EDX 和 ECX 寄存器中返回供应商 ID 字符串。按此顺序将它们写入内存会生成一个 12 个字符的字符串。