Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OTEL-738: Add Custom Container Tag Support (datadog.container.tag prefix) #193

Merged
merged 10 commits into from
Nov 9, 2023

Conversation

mackjmr
Copy link
Member

@mackjmr mackjmr commented Nov 9, 2023

What does this PR do?

This PR deprecates ContainerTagFromAttributes in favor of ContainerTagFromResourceAttributes which accepts a pcommon.Map and is now called for metrics, logs and traces. ContainerTagFromResourceAttributes not only checks semantic conventions for container tags, but also checks resource attributes which are prefixed by datadog.container.tag..

Previously, ContainerTagFromAttributes was called by traces here. ContainerTagFromResourceAttributes accepting a pcommon.Map has a couple implications for tracing:

  • We will now only read container tags from resource attributes, whereas we currently read them from both resource attributes and span attributes. Container Semantic Conventions are meant for resource attributes, not span attributes.
  • We will stop adding the mapped container tags as span tags, but only add them in the container tag section (_dd.tags.container). _dd.tags.container is the intended place for container tags so they can be searched without a @, so there is no need to also set these as span tag (searchable with @).

Motivation

OTEL-738

@mackjmr mackjmr requested a review from mx-psi November 9, 2023 10:20
@mackjmr mackjmr requested a review from a team as a code owner November 9, 2023 10:20
@mackjmr mackjmr merged commit f02f8ce into main Nov 9, 2023
7 checks passed
@mackjmr mackjmr deleted the mackjmr/add-custom-container-tag-support branch November 9, 2023 16:04
@mackjmr mackjmr mentioned this pull request Nov 9, 2023
mackjmr added a commit to DataDog/datadog-agent that referenced this pull request Nov 10, 2023
…g.* namespace)

This PR is a follow up to DataDog/opentelemetry-mapping-go#193 which adds support for custom container tags via resource attributes prefixed by `datadog.container.tag`.

This PR also brings a couple other changes:
- Stop extracting container tags from span attributes, but only extract from resource attributes. The semantic conventions we are using to extract the container tags are meant for resource attributes, so we should only check resource attributes.
- Stop setting the DD Format container tags as span tags, but only set these in the dedicated container tag (_dd.container.tag). We currently set the DD mapped container tags both as span tag, and in the `_dd.tags.container`. This should only be set in `_dd.tags.container`. In fact container tags are treated differently than span tags (searchable without @, have a dedicated container tab in the UI...etc)
mackjmr added a commit to DataDog/datadog-agent that referenced this pull request Nov 10, 2023
…g.* namespace)

This PR is a follow up to DataDog/opentelemetry-mapping-go#193 which adds support for custom container tags via resource attributes prefixed by `datadog.container.tag`.

This PR also brings a couple other changes:
- Stop extracting container tags from span attributes, but only extract from resource attributes. The semantic conventions we are using to extract the container tags are meant for resource attributes, so we should only check resource attributes.
- Stop setting the DD Format container tags as span tags, but only set these in the dedicated container tag (_dd.container.tag). We currently set the DD mapped container tags both as span tag, and in the `_dd.tags.container`. This should only be set in `_dd.tags.container`. In fact container tags are treated differently than span tags (searchable without @, have a dedicated container tab in the UI...etc)
mackjmr added a commit to DataDog/datadog-agent that referenced this pull request Nov 10, 2023
…g.* namespace) (#20779)

* OTEL-738: Add support for custom container tags (datadog.container.tag.* namespace)

This PR is a follow up to DataDog/opentelemetry-mapping-go#193 which adds support for custom container tags via resource attributes prefixed by `datadog.container.tag`.

This PR also brings a couple other changes:
- Stop extracting container tags from span attributes, but only extract from resource attributes. The semantic conventions we are using to extract the container tags are meant for resource attributes, so we should only check resource attributes.
- Stop setting the DD Format container tags as span tags, but only set these in the dedicated container tag (_dd.container.tag). We currently set the DD mapped container tags both as span tag, and in the `_dd.tags.container`. This should only be set in `_dd.tags.container`. In fact container tags are treated differently than span tags (searchable without @, have a dedicated container tab in the UI...etc)

* fix release note syntax

* Update releasenotes/notes/apm-otlp-custom-container-tags-66f1878743f9f7ca.yaml

Co-authored-by: Alicia Scott <[email protected]>

---------

Co-authored-by: Alicia Scott <[email protected]>
mackjmr added a commit to mackjmr/opentelemetry-collector-contrib that referenced this pull request Nov 13, 2023
This PR updates `github.com/DataDog/datadog-agent/pkg/trace` and `github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes`. This brings in the following PRs: DataDog/opentelemetry-mapping-go#193, DataDog/opentelemetry-mapping-go#174 which add support for custom container tags (for traces, metrics and logs) via resource attributes prefixed by `datadog.container.tag.*`.

This PR also brings a couple other changes for traces which are reflected in the changelog:
- Stop extracting container tags from span attributes, but only extract from resource attributes. The semantic conventions we are using to extract the container tags are meant for resource attributes, so we should only check resource attributes.
- Stop setting the DD Format container tags as span tags, but only set these in the dedicated container tag (_dd.container.tag). We currently set the DD mapped container tags both as span tag, and in the dedicated container tag `_dd.tags.container`. This should only be set in the dedicated container tag.

The update to opentelemetry-mapping-go also brings in this change: DataDog/opentelemetry-mapping-go#174, which adds support for `host.cpu.*` attributes.
mackjmr added a commit to mackjmr/opentelemetry-collector-contrib that referenced this pull request Nov 13, 2023
…-telemetry#29154

This PR updates `github.com/DataDog/datadog-agent/pkg/trace` and `github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes`. This brings in the following PRs: DataDog/opentelemetry-mapping-go#193, DataDog/opentelemetry-mapping-go#174 which add support for custom container tags (for traces, metrics and logs) via resource attributes prefixed by `datadog.container.tag.*`.

This PR also brings a couple other changes for traces which are reflected in the changelog:
- Stop extracting container tags from span attributes, but only extract from resource attributes. The semantic conventions we are using to extract the container tags are meant for resource attributes, so we should only check resource attributes.
- Stop setting the DD Format container tags as span tags, but only set these in the dedicated container tag (`_dd.container.tag`). We currently set the DD mapped container tags both as span tag, and in the dedicated container tag `_dd.tags.container`. This should only be set in the dedicated container tag.

The update to opentelemetry-mapping-go also brings in this change: DataDog/opentelemetry-mapping-go#174, which adds support for `host.cpu.*` attributes.
mackjmr added a commit to DataDog/opentelemetry-collector-contrib that referenced this pull request Nov 13, 2023
This PR pulls in this change: DataDog/datadog-agent#20779 and this change DataDog/opentelemetry-mapping-go#193 which add custom container tagging support for traces, metrics and logs.
mx-psi pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Nov 14, 2023
)

**Description:**
This PR updates `github.com/DataDog/datadog-agent/pkg/trace` and
`github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes`. This
brings in the following PRs:
DataDog/opentelemetry-mapping-go#193,
DataDog/datadog-agent#20779 which add support
for custom container tags (for traces, metrics and logs) via resource
attributes prefixed by `datadog.container.tag.*`.

This PR also brings a couple other changes for traces which are
reflected in the changelog:
- Stop extracting container tags from span attributes, but only extract
from resource attributes. The semantic conventions we are using to
extract the container tags are meant for resource attributes, so we
should only check resource attributes.
- Stop setting the DD Format container tags as span tags, but only set
these in the dedicated container tag (`_dd.container.tag`). We currently
set the DD mapped container tags both as span tag, and in the dedicated
container tag `_dd.tags.container`. This should only be set in the
dedicated container tag.

The update to opentelemetry-mapping-go also brings in this change:
DataDog/opentelemetry-mapping-go#174, which adds
support for `host.cpu.*` attributes.
RoryCrispin pushed a commit to ClickHouse/opentelemetry-collector-contrib that referenced this pull request Nov 24, 2023
…n-telemetry#29156)

**Description:**
This PR updates `github.com/DataDog/datadog-agent/pkg/trace` and
`github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes`. This
brings in the following PRs:
DataDog/opentelemetry-mapping-go#193,
DataDog/datadog-agent#20779 which add support
for custom container tags (for traces, metrics and logs) via resource
attributes prefixed by `datadog.container.tag.*`.

This PR also brings a couple other changes for traces which are
reflected in the changelog:
- Stop extracting container tags from span attributes, but only extract
from resource attributes. The semantic conventions we are using to
extract the container tags are meant for resource attributes, so we
should only check resource attributes.
- Stop setting the DD Format container tags as span tags, but only set
these in the dedicated container tag (`_dd.container.tag`). We currently
set the DD mapped container tags both as span tag, and in the dedicated
container tag `_dd.tags.container`. This should only be set in the
dedicated container tag.

The update to opentelemetry-mapping-go also brings in this change:
DataDog/opentelemetry-mapping-go#174, which adds
support for `host.cpu.*` attributes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants