Host

host.* 命名空间应仅用于捕获资源属性。要报告主机指标,应使用 system.* 命名空间。

状态: 开发中

类型: host

描述: 主机被定义为计算实例。例如,物理服务器、虚拟机、交换机或磁盘阵列。

Attributes

Stability需求级别Value Type描述Example Values
host.archDevelopment推荐字符串主机系统运行的 CPU 架构。amd64; arm32; arm64
host.idDevelopment推荐字符串唯一的​​主机 ID。对于云,这必须是云提供商分配的 instance_id。对于非容器化系统,这应该是 machine-id。请参阅下表了解用于确定 machine-id 的来源,具体取决于操作系统。[1]fdbf79e8af94cb7f9e8df36789187052
host.image.idDevelopment推荐字符串VM 镜像 ID 或主机 OS 镜像 ID。对于云环境,此值来自提供商。ami-07b06b442921831e5
host.image.nameDevelopment推荐字符串实例化主机的 VM 镜像或 OS 安装的名称。infra-ami-eks-worker-node-7d4ec78312; CentOS-8-x86_64-1905
host.image.versionDevelopment推荐字符串VM 镜像或主机 OS 的版本字符串,如 版本属性中所定义。0.1
host.nameDevelopment推荐字符串主机的名称。在 Unix 系统上,它可能包含 hostname 命令返回的内容,或者完全限定的主机名,或者用户指定的其他名称。opentelemetry-test
host.typeDevelopment推荐字符串主机的类型。对于云环境,这必须是机器类型。n1-standard-1
host.ipDevelopment选择加入string[]主机可用的 IP 地址,不包括环回接口。[2]["192.168.1.140", "fe80::abc2:4a28:737a:609e"]
host.macDevelopment选择加入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 的输出
MacOSioreg -rd1 -c "IOPlatformExpertDevice" 输出中的 IOPlatformUUID-
Windows注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography 中的 MachineGuid-

特权机器 ID 查找

可以使用特权来源查找 host.id。例如,Linux 系统可以使用 dmidecode -t systemdmidecode -t baseboarddmidecode -t chassis 的输出,或从文件系统读取相应的数据(例如 cat /sys/devices/virtual/dmi/id/product_idcat /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
amd64AMD64Development
arm32ARM32Development
arm64ARM64Development
ia64ItaniumDevelopment
ppc3232 位 PowerPCDevelopment
ppc6464 位 PowerPCDevelopment
s390xIBM z/ArchitectureDevelopment
x8632 位 x86Development

类型: host.cpu

状态: 开发中

类型: host.cpu

描述: 主机的 CPU 信息

Attributes

Stability需求级别Value Type描述Example Values
host.cpu.cache.l2.sizeDevelopment选择加入int处理器可用的二级缓存内存量(以字节为单位)。12288000
host.cpu.familyDevelopment选择加入字符串CPU 的家族或代数。6; PA-RISC 1.1e
host.cpu.model.idDevelopment选择加入字符串型号标识符。它提供了关于 CPU 的更详细信息,使其区别于同一家族中的其他 CPU。6; 9000/778/B180L
host.cpu.model.nameDevelopment选择加入字符串处理器的型号名称。11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz
host.cpu.steppingDevelopment选择加入字符串步进或核心修订版本。1; r1p1
host.cpu.vendor.idDevelopment选择加入字符串处理器制造商标识符。最多 12 个字符的字符串。[1]GenuineIntel

[1] host.cpu.vendor.id CPUID 命令在 EBX、EDX 和 ECX 寄存器中返回供应商 ID 字符串。按此顺序将它们写入内存会产生一个 12 个字符的字符串。