K8s

Kubernetes 属性

Kubernetes 资源属性。

Attributes

StabilityValue Type描述Example Values
k8s.cluster.nameDevelopment字符串集群的名称。opentelemetry-cluster
k8s.cluster.uidDevelopment字符串集群的伪 ID,设置为 kube-system 命名空间的 UID。[1]218fc5a9-a5f1-4b54-aa05-46717d0ab26d
k8s.container.nameDevelopment字符串Pod 规范中容器的名称,在 Pod 中必须是唯一的。容器运行时通常使用不同的全局唯一名称(container.name)。redis
k8s.container.restart_countDevelopmentint容器重启的次数。此属性可用于识别容器规范中的特定容器(正在运行或已停止)。
k8s.container.status.last_terminated_reasonDevelopment字符串容器最后一次终止的原因。Evicted; Error
k8s.container.status.reasonDevelopment字符串容器状态的原因。对应于 K8s ContainerStateWaitingK8s ContainerStateTerminatedreason 字段。ContainerCreating; CrashLoopBackOff; CreateContainerConfigError; ErrImagePull; ImagePullBackOff; OOMKilled; Completed; Error; ContainerCannotRun
k8s.container.status.stateDevelopment字符串容器的状态。 K8s ContainerStateterminated; running; waiting
k8s.cronjob.annotation.<key>Development字符串已添加到 CronJob 上的注解,其中 <key> 是注解名称,值是注解值。 [2]4; ``
k8s.cronjob.label.<key>Development字符串已添加到 CronJob 上的标签,其中 <key> 是标签名称,值是标签值。 [3]weekly; ``
k8s.cronjob.nameDevelopment字符串CronJob 的名称。opentelemetry
k8s.cronjob.uidDevelopment字符串CronJob 的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.daemonset.annotation.<key>Development字符串已添加到 DaemonSet 上的注解,其中 <key> 是注解名称,值是注解值,即使值为空。 [4]1; ``
k8s.daemonset.label.<key>Development字符串已添加到 DaemonSet 上的标签,其中 <key> 是标签名称,值是标签值,即使值为空。 [5]guestbook; ``
k8s.daemonset.nameDevelopment字符串DaemonSet 的名称。opentelemetry
k8s.daemonset.uidDevelopment字符串DaemonSet 的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.deployment.annotation.<key>Development字符串已添加到 Deployment 上的注解,其中 <key> 是注解名称,值是注解值,即使值为空。 [6]1; ``
k8s.deployment.label.<key>Development字符串已添加到 Deployment 上的标签,其中 <key> 是标签名称,值是标签值,即使值为空。 [7]guestbook; ``
k8s.deployment.nameDevelopment字符串Deployment 的名称。opentelemetry
k8s.deployment.uidDevelopment字符串Deployment 的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.hpa.metric.typeDevelopment字符串水平 Pod 自动伸缩器的指标源类型。 [8]Resource; ContainerResource
k8s.hpa.nameDevelopment字符串水平 Pod 自动缩放器的名称。opentelemetry
k8s.hpa.scaletargetref.api_versionDevelopment字符串水平 Pod 自动伸缩器要缩放的目标资源的 API 版本。 [9]apps/v1; autoscaling/v2
k8s.hpa.scaletargetref.kindDevelopment字符串水平 Pod 自动伸缩器要缩放的目标资源的 Kind。 [10]Deployment; StatefulSet
k8s.hpa.scaletargetref.nameDevelopment字符串水平 Pod 自动伸缩器要缩放的目标资源的名称。 [11]my-deployment; my-statefulset
k8s.hpa.uidDevelopment字符串水平 Pod 自动缩放器的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.hugepage.sizeDevelopment字符串K8s 大页的大小(标识符)。2Mi
k8s.job.annotation.<key>Development字符串已添加到 Job 上的注解,其中 <key> 是注解名称,值是注解值,即使值为空。 [12]1; ``
k8s.job.label.<key>Development字符串已添加到 Job 上的标签,其中 <key> 是标签名称,值是标签值,即使值为空。 [13]ci; ``
k8s.job.nameDevelopment字符串Job 的名称。opentelemetry
k8s.job.uidDevelopment字符串Job 的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.namespace.annotation.<key>Development字符串已添加到 Namespace 上的注解,其中 <key> 是注解名称,值是注解值,即使值为空。 [14]0; ``
k8s.namespace.label.<key>Development字符串已添加到 Namespace 上的标签,其中 <key> 是标签名称,值是标签值,即使值为空。 [15]default; ``
k8s.namespace.nameDevelopment字符串Pod 运行所在命名空间的名称。default
k8s.namespace.phaseDevelopment字符串K8s 命名空间的阶段。 [16]active; terminating
k8s.node.annotation.<key>Development字符串已添加到 Node 上的注解,其中 <key> 是注解名称,值是注解值,即使值为空。 [17]0; ``
k8s.node.condition.statusDevelopment字符串条件的状语,取值只能是 True、False、Unknown 中的一个。 [18]true; false; unknown
k8s.node.condition.typeDevelopment字符串K8s 节点的条件类型。 [19]Ready; DiskPressure
k8s.node.label.<key>Development字符串已添加到 Node 上的标签,其中 <key> 是标签名称,值是标签值,即使值为空。 [20]arm64; ``
k8s.node.nameDevelopment字符串节点的名称。node-1
k8s.node.uidDevelopment字符串节点的 UID。1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2
k8s.pod.annotation.<key>Development字符串已添加到 Pod 上的注解,其中 <key> 是注解名称,值是注解值。 [21]true; x64; ``
k8s.pod.label.<key>Development字符串已添加到 Pod 上的标签,其中 <key> 是标签名称,值是标签值。 [22]my-app; x64; ``
k8s.pod.nameDevelopment字符串Pod 的名称。opentelemetry-pod-autoconf
k8s.pod.status.phaseDevelopment字符串Pod 的阶段。对应于 K8s PodStatusphase 字段。Pending; Running
k8s.pod.status.reasonDevelopment字符串Pod 状态的原因。对应于 K8s PodStatusreason 字段。Evicted; NodeAffinity
k8s.pod.uidDevelopment字符串Pod 的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.replicaset.annotation.<key>Development字符串已添加到 ReplicaSet 上的注解,其中 <key> 是注解名称,值是注解值,即使值为空。 [23]0; ``
k8s.replicaset.label.<key>Development字符串已添加到 ReplicaSet 上的标签,其中 <key> 是标签名称,值是标签值,即使值为空。 [24]guestbook; ``
k8s.replicaset.nameDevelopment字符串ReplicaSet 的名称。opentelemetry
k8s.replicaset.uidDevelopment字符串ReplicaSet 的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.replicationcontroller.nameDevelopment字符串复制控制器的名称。opentelemetry
k8s.replicationcontroller.uidDevelopment字符串复制控制器的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.resourcequota.nameDevelopment字符串资源配额的名称。opentelemetry
k8s.resourcequota.resource_nameDevelopment字符串资源配额定义的 K8s 资源的名称。 [25]count/replicationcontrollers
k8s.resourcequota.uidDevelopment字符串资源配额的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.statefulset.annotation.<key>Development字符串已添加到 StatefulSet 上的注解,其中 <key> 是注解名称,值是注解值,即使值为空。 [26]1; ``
k8s.statefulset.label.<key>Development字符串已添加到 StatefulSet 上的标签,其中 <key> 是标签名称,值是标签值,即使值为空。 [27]guestbook; ``
k8s.statefulset.nameDevelopment字符串StatefulSet 的名称。opentelemetry
k8s.statefulset.uidDevelopment字符串StatefulSet 的 UID。275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
k8s.storageclass.nameDevelopment字符串K8s StorageClass 对象的名称。gold.storageclass.storage.k8s.io
k8s.volume.nameDevelopment字符串K8s 卷的名称。volume0
k8s.volume.typeDevelopment字符串K8s 卷的类型。emptyDir; persistentVolumeClaim

[1] k8s.cluster.uid: K8s 不支持获取集群 ID。如果将来添加了此功能,我们将建议通过官方 API 收集 k8s.cluster.uid。在此期间,我们可以使用 kube-system 命名空间的 uid 作为集群 ID 的代理。有关理由,请继续阅读。

K8s 集群中创建的每个对象都会被分配一个唯一的 UID。kube-system 命名空间由 Kubernetes 本身使用,并将存在于集群的生命周期内。使用 kube-system 命名空间的 uid 作为 K8s ClusterID 的合理代理,因为它只有在集群重建时才会更改。此外,Kubernetes UID 是根据 ISO/IEC 9834-8 和 ITU-T X.667 标准化的 UUID。

如果根据 Rec. ITU-T X.667 | ISO/IEC 9834-8 中定义的机制之一生成,UUID 要么保证与 3603 年之前生成的所有其他 UUID 不同,要么(取决于所选机制)极有可能不同。

因此,集群之间的 UID 发生冲突的可能性极小。

[2] k8s.cronjob.annotation.<key>: 示例

  • 值为 4 的注解 retries 应记录为属性 k8s.cronjob.annotation.retries,值为 "4"
  • 值为""的注解 data 应记录为属性 k8s.cronjob.annotation.data,值为 ""

[3] k8s.cronjob.label.<key>: 示例

  • 值为 weekly 的标签 type 应记录为属性 k8s.cronjob.label.type,值为 "weekly"
  • 值为""的标签 automated 应记录为属性 k8s.cronjob.label.automated,值为 ""

[4] k8s.daemonset.annotation.<key>: 示例

  • 值为 1 的标签 replicas 应记录为属性 k8s.daemonset.annotation.replicas,值为 "1"
  • 值为""的标签 data 应记录为属性 k8s.daemonset.annotation.data,值为 ""

[5] k8s.daemonset.label.<key>: 示例

  • 值为 guestbook 的标签 app 应记录为属性 k8s.daemonset.label.app,值为 "guestbook"
  • 值为""的标签 data 应记录为属性 k8s.daemonset.label.injected,值为 ""

[6] k8s.deployment.annotation.<key>: 示例

  • 值为 1 的标签 replicas 应记录为属性 k8s.deployment.annotation.replicas,值为 "1"
  • 值为""的标签 data 应记录为属性 k8s.deployment.annotation.data,值为 ""

[7] k8s.deployment.label.<key>: 示例

  • 值为 guestbook 的标签 replicas 应记录为属性 k8s.deployment.label.app,值为 "guestbook"
  • 值为""的标签 injected 应记录为属性 k8s.deployment.label.injected,值为 ""

[8] k8s.hpa.metric.type: 此属性反映了 HPA 中 spec.metrics[] 的 type 字段。

[9] k8s.hpa.scaletargetref.api_version: 此属性映射到 HPA spec 中 scaleTargetRefapiVersion 字段。

[10] k8s.hpa.scaletargetref.kind: 此属性映射到 HPA spec 中 scaleTargetRefkind 字段。

[11] k8s.hpa.scaletargetref.name: 此属性映射到 HPA spec 中 scaleTargetRefname 字段。

[12] k8s.job.annotation.<key>: 示例

  • 值为 1 的标签 number 应记录为属性 k8s.job.annotation.number,值为 "1"
  • 值为""的标签 data 应记录为属性 k8s.job.annotation.data,值为 ""

[13] k8s.job.label.<key>: 示例

  • 值为 ci 的标签 jobtype 应记录为属性 k8s.job.label.jobtype,值为 "ci"
  • 值为""的标签 data 应记录为属性 k8s.job.label.automated,值为 ""

[14] k8s.namespace.annotation.<key>: 示例

  • 值为 0 的标签 ttl 应记录为属性 k8s.namespace.annotation.ttl,值为 "0"
  • 值为""的标签 data 应记录为属性 k8s.namespace.annotation.data,值为 ""

[15] k8s.namespace.label.<key>: 示例

  • 值为 default 的标签 kubernetes.io/metadata.name 应记录为属性 k8s.namespace.label.kubernetes.io/metadata.name,值为 "default"
  • 值为""的标签 data 应记录为属性 k8s.namespace.label.data,值为 ""

[16] k8s.namespace.phase: 此属性与 K8s NamespaceStatusphase 字段一致。

[17] k8s.node.annotation.<key>: 示例

  • 值为 0 的注解 node.alpha.kubernetes.io/ttl 应记录为属性 k8s.node.annotation.node.alpha.kubernetes.io/ttl,值为 "0"
  • 值为""的注解 data 应记录为属性 k8s.node.annotation.data,值为 ""

[18] k8s.node.condition.status: 此属性与 NodeConditionstatus 字段一致。

[19] k8s.node.condition.type: K8s 节点条件,如 K8s 文档所述。

此属性与 NodeConditiontype 字段一致。

可能值的集合不限于此处列出的值。托管的 Kubernetes 环境或自定义控制器可能会引入其他节点条件类型。发生这种情况时,应使用 Kubernetes API 报告的确切值。

[20] k8s.node.label.<key>: 示例

  • 值为 arm64 的标签 kubernetes.io/arch 应记录为属性 k8s.node.label.kubernetes.io/arch,值为 "arm64"
  • 值为""的标签 data 应记录为属性 k8s.node.label.data,值为 ""

[21] k8s.pod.annotation.<key>: 示例

  • 值为 true 的注解 kubernetes.io/enforce-mountable-secrets 应记录为属性 k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets,值为 "true"
  • 值为 x64 的注解 mycompany.io/arch 应记录为属性 k8s.pod.annotation.mycompany.io/arch,值为 "x64"
  • 值为""的注解 data 应记录为属性 k8s.pod.annotation.data,值为 ""

[22] k8s.pod.label.<key>: 示例

  • 值为 my-app 的标签 app 应记录为属性 k8s.pod.label.app,值为 "my-app"
  • 值为 x64 的标签 mycompany.io/arch 应记录为属性 k8s.pod.label.mycompany.io/arch,值为 "x64"
  • 值为""的标签 data 应记录为属性 k8s.pod.label.data,值为 ""

[23] k8s.replicaset.annotation.<key>: 示例

  • 值为 0 的标签 replicas 应记录为属性 k8s.replicaset.annotation.replicas,值为 "0"
  • 值为""的标签 data 应记录为属性 k8s.replicaset.annotation.data,值为 ""

[24] k8s.replicaset.label.<key>: 示例

  • 值为 guestbook 的标签 app 应记录为属性 k8s.replicaset.label.app,值为 "guestbook"
  • 值为""的标签 injected 应记录为属性 k8s.replicaset.label.injected,值为 ""

[25] k8s.resourcequota.resource_name: 此属性的值可以是完整的 count/<resource>[.<group>] 字符串(例如,count/deployments.apps、count/pods),或者对于某些核心 Kubernetes 资源,可以只是资源名称(例如,pods、services、configmaps)。Kubernetes 支持这两种形式用于对象计数配额。有关更多详细信息,请参阅 Kubernetes 资源配额文档

[26] k8s.statefulset.annotation.<key>: 示例

  • 值为 1 的标签 replicas 应记录为属性 k8s.statefulset.annotation.replicas,值为 "1"
  • 值为""的标签 data 应记录为属性 k8s.statefulset.annotation.data,值为 ""

[27] k8s.statefulset.label.<key>: 示例

  • 值为 guestbook 的标签 replicas 应记录为属性 k8s.statefulset.label.app,值为 "guestbook"
  • 值为""的标签 injected 应记录为属性 k8s.statefulset.label.injected,值为 ""

k8s.container.status.reason 具有以下已知值列表。如果适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
Completed容器已完成执行。Development
ContainerCannotRun容器无法运行。Development
ContainerCreating容器正在创建中。Development
CrashLoopBackOff容器处于崩溃循环回退状态。Development
CreateContainerConfigError创建容器配置时出错。Development
ErrImagePull拉取容器映像时出错。Development
Error容器出错。Development
ImagePullBackOff容器映像拉取处于回退状态。Development
OOMKilled容器因内存不足而被终止。Development

k8s.container.status.state 具有以下已知值列表。如果适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
running容器正在运行。Development
terminated容器已终止。Development
waiting容器正在等待。Development

k8s.namespace.phase 具有以下已知值列表。如果适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
activeActive 命名空间阶段,由 K8s API 描述。Development
terminatingTerminating 命名空间阶段,由 K8s API 描述。Development

k8s.node.condition.status 具有以下已知值列表。如果适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
falsecondition_falseDevelopment
truecondition_trueDevelopment
unknowncondition_unknownDevelopment

k8s.node.condition.type 具有以下已知值列表。如果适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
DiskPressure磁盘空间存在压力 — 即,磁盘容量不足。Development
MemoryPressure节点内存存在压力 — 即,节点内存不足。Development
NetworkUnavailable节点的网络未正确配置。Development
PIDPressure进程存在压力 — 即,节点上的进程过多。Development
Ready节点运行正常,已准备好接受 Pod。Development

k8s.pod.status.phase 具有以下已知值列表。如果适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
失败Pod 中的所有容器都已终止,并且至少有一个容器因失败而终止(以非零退出码退出或被系统停止)。Development
PendingPod 已被系统接受,但有一个或多个容器尚未启动。这包括绑定到节点之前的时间,以及在主机上拉取映像所需的时间。Development
RunningPod 已绑定到节点,并且所有容器都已启动。至少有一个容器仍在运行或正在重新启动。Development
SucceededPod 中的所有容器都已自愿以退出码 0 终止,并且系统不会重新启动这些容器。Development
Unknown由于某种原因,无法获取 Pod 的状态,通常是因为与 Pod 所运行的主机通信时出错。Development

k8s.pod.status.reason 具有以下已知值列表。如果适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
EvictedPod 已被驱逐。Development
NodeAffinityPod 的状态是由于其节点亲和性。Development
NodeLost当 Kubelet 在其上(或曾经)运行的节点无响应时,Pod 的状态无法确认。Development
Shutdown节点已关机。Development
UnexpectedAdmissionErrorPod 因 admission 过程中的未知错误而被节点拒绝。Development

k8s.volume.type 具有以下已知值列表。如果适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
configMap一个 configMap 卷。Development
downwardAPI一个 downwardAPI 卷。Development
emptyDir一个 emptyDir 卷。Development
local一个 local 卷。Development
persistentVolumeClaim一个 persistentVolumeClaim 卷。Development
secret一个 secret 卷。Development

已弃用的 Kubernetes 属性

描述已弃用的 k8s 属性。

Attributes

StabilityValue Type描述Example Values
k8s.pod.labels.<key>Deprecated
已替换为 k8s.pod.label
字符串已弃用,请改用 k8s.pod.labelmy-app