open-telemetry / opentelemetry-collector-contrib

Contrib repository for the OpenTelemetry Collector
https://opentelemetry.io
Apache License 2.0
3.13k stars 2.4k forks source link

[k8sattributesprocessor]: Fall back to only container within a pod if no `k8s.container.name`/`container.id` attribute is present in resource #34189

Open bacherfl opened 4 months ago

bacherfl commented 4 months ago

Component(s)

processor/k8sattributes

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

Currently, the k8sattributes processor requires either the k8s.container.name or container.id attribute to be present in the resource attributes to attach container level attributes, as described in the readme. This makes sense for pods with multiple containers, as otherwise it would not be possible to correctly associate the resource to the correct container. For pods containing only one container however, this requirement can likely be dropped, and the container level attributes from the only container can automatically be attached for resources coming from a matching pod. This could potentially make things a bit simpler for users, as the requirement of providing the container name or id as attributes for the resource seemed to have caused some confusion in the past (e.g. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32104#issuecomment-2048447690)

Describe the solution you'd like

If a matching pod is found for an incoming resource, and the pod only consists of one container, automatically attach the container level attributes if they are part of the extraction rules, also when the k8s.container.name and container.id are not provided resource attributes.

Describe alternatives you've considered

Attaching the k8s.container.name or container.id attribute to the resource sent to the collector will also ensure the container level attributes are attached correctly, but this is a requirement that may easily be missed by users.

Additional context

If this is something we agree to add, I'm happy to work on the implementation. In the meantime I will work on a PoC to validate the suggested solution

github-actions[bot] commented 4 months ago

Pinging code owners:

github-actions[bot] commented 2 months ago

This issue has been inactive for 60 days. It will be closed in 60 days if there is no activity. To ping code owners by adding a component label, see Adding Labels via Comments, or if you are unsure of which component this issue relates to, please ping @open-telemetry/collector-contrib-triagers. If this issue is still relevant, please ping the code owners or leave a comment explaining why it is still relevant. Otherwise, please close it.

Pinging code owners:

See Adding Labels via Comments if you do not have permissions to add labels yourself.