Skip to content

Additional K8s entity attributes are needed #38687

Closed
@seonsfx

Description

@seonsfx

Component(s)

No response

Describe the issue you're reporting

Is your feature request related to a problem? Please describe.

The attributes included in K8s entity events are handpicked and collected by separate code paths aside from regular metric reporting. This results in the attributes of each K8s entity widely missing compared to those included in K8s metrics. For example, the k8s.pod entity type does not report the k8s.pod.name attribute, which is pretty basic.

The issue with such thin coverage of entity attributes is that a consumer would struggle to characterize the entities based on the K8s entity event packets, making the feature a lot less valuable.

Describe the solutions you'd like

We have identified a list of needful attributes currently included in the metrics and missing in the entity event packets. Some of the are more critical than others, and some of them are really nice to have. We are planning on creating multiple PRs to enhance the metadata collecting logic of K8s entities. For instance, here.

We will also try our best to break down this issue into multiple pieces if it makes more sense. Please advise if there is a good strategy for doing that. We will also deliver the enhancement in the reasonably sized chunks.

Below is the list of attributes we have identified so far:

Entity type: Namespace

  • k8s.cluster.uid
  • k8s.namespace.name
  • k8s.namespace.uid

Entity type: Node

  • k8s.cluster.uid
  • k8s.node.condition_ready
  • k8s.node.condition_disk_pressure
  • k8s.node.condition_memory_pressure
  • k8s.node.condition_pid_pressure
  • k8s.node.condition_network_unavailable
  • k8s.node.condition_read
  • host.id removing as not relevant in this context
  • cloud.availability_zone removing as not relevant in this context

Entity type: Pod

  • k8s.pod.name
  • k8s.node.uid
  • k8s.node.name
  • k8s.namespace.name
  • k8s.namespace.uid
  • k8s.cluster.uid
  • service.name removing as not relevant in this context

Entity type: Container

  • container.image
  • container.name
  • k8s.pod.uid
  • k8s.pod.name
  • service.name removing as not relevant in this context

Entity type: ReplicaSet

  • k8s.replicaset.name
  • k8s.cluster.uid
  • k8s.namespace.uid
  • k8s.namespace.name

Entity type: StatefulSet

  • k8s.statefulset.name
  • k8s.cluster.uid
  • k8s.namespace.uid
  • k8s.namespace.name

Entity type: DaemonSet

  • k8s.daemonset.name
  • k8s.cluster.uid
  • k8s.namespace.name

Entity type: Job

  • k8s.job.name
  • k8s.cluster.uid
  • k8s.namespace.uid
  • k8s.namespace.name

Entity type: CronJob

  • k8s.cronjob.name
  • k8s.namespace.uid
  • k8s.namespace.name

Entity type: Deployment

  • k8s.cluster.uid
  • k8s.namespace.uid
  • k8s.namespace.name

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions