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

[Common] Clarify Attribute support based on stable wire protocol definition of Attributes #2581 #2620

Closed
wants to merge 10 commits into from

Conversation

MSNev
Copy link

@MSNev MSNev commented Jun 16, 2022

Fixes #
#2581 [Common] Spec inconsistency with proto definition of Attributes

Changes

  • Clarifies the Attribute support as defined by Proto AnyValue and clarifies Attribute Collections.
  • Clarifies and identifies how nested attributes support (as defined by Proto) should be supported.

Related issues #
#376 Support map values and nested values for attributes #376

@github-actions
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Jun 24, 2022
@MSNev
Copy link
Author

MSNev commented Jun 28, 2022

Not stale

spec-compliance-matrix.md Outdated Show resolved Hide resolved
@Aneurysm9
Copy link
Member

Clarifies the Attribute support as defined by Proto AnyValue and clarifies Attribute Collections.
Clarifies and identifies how nested attributes support (as defined by Proto and some SDK's) should be supported.

To the extent that this would apply to attributes for traces and metrics I think this goes beyond clarification and changes the specification. To my knowledge there are no trace/metric SDK implementations that allow nested attributes.

@arminru arminru added area:api Cross language API specification issue area:data-model For issues related to data model labels Jun 28, 2022
@github-actions github-actions bot removed the Stale label Jun 29, 2022
@MSNev
Copy link
Author

MSNev commented Jul 1, 2022

Clarifies the Attribute support as defined by Proto AnyValue and clarifies Attribute Collections.
Clarifies and identifies how nested attributes support (as defined by Proto and some SDK's) should be supported.

To the extent that this would apply to attributes for traces and metrics I think this goes beyond clarification and changes the specification. To my knowledge there are no trace/metric SDK implementations that allow nested attributes.

If you read the spec changes, I believe that I have not specified that trace/metric implementations have to implement or allow for nested attributes. And even the PR comment from above I am stating how it should be supported not that it must or is.

I've now removed the "and some SDK's" based on re-reviewing the JavaScript implementation and removing it from the support matrix.

What specific or additional clarification would you suggest?

specification/common/README.md Outdated Show resolved Hide resolved
specification/common/README.md Outdated Show resolved Hide resolved
specification/common/README.md Outdated Show resolved Hide resolved
specification/common/README.md Outdated Show resolved Hide resolved
spec-compliance-matrix.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
@arminru arminru requested review from a team July 5, 2022 11:29
@arminru arminru added the spec:logs Related to the specification/logs directory label Jul 12, 2022
specification/common/README.md Outdated Show resolved Hide resolved
specification/common/README.md Outdated Show resolved Hide resolved
specification/common/README.md Outdated Show resolved Hide resolved
specification/common/README.md Outdated Show resolved Hide resolved
@github-actions
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

specification/common/README.md Outdated Show resolved Hide resolved
specification/common/README.md Outdated Show resolved Hide resolved
@Oberon00
Copy link
Member

Oberon00 commented Aug 3, 2022

Please give this PR a more descriptive title. I think the "inconsistency" issue has been explained. It seems to me this is not solving an inconsistency but proposing a new feature.

@MSNev MSNev changed the title [Common] Spec inconsistency with proto definition of Attributes #2581 [Common] Clarify Attribute support based on stable wire protocol definition of Attributes #2581 Aug 3, 2022
@MSNev
Copy link
Author

MSNev commented Aug 3, 2022

Please give this PR a more descriptive title. I think the "inconsistency" issue has been explained. It seems to me this is not solving an inconsistency but proposing a new feature.

Renamed.

I don't believe that this PR is identifying any new functionality, it is attempting to properly document what Attribute support is today.

  • The protocol SUPPORTS nesting for Attributes (and has for around 2 years)
  • Logs SUPPORTS and requires nested attributes

While Spans and Metrics also use "Attributes" their definition of Attributes does not support nesting (from at the spec level), which if not clarified is going to cause confusion not just at the consumer level (using the API vs Protocol) but also at the implementation level when SDK's start to support the proper definition of the Logs Attributes

@Oberon00
Copy link
Member

Oberon00 commented Aug 4, 2022

I don't believe that this PR is identifying any new functionality, it is attempting to properly document what Attribute support is today.

In practice, you are proposing a new feature. This is not supported today.

Do note that OTLP is merely a protocol that can be used for transporting (a superset of) OpenTelemetry-generated data. It is not the authoritative definition of the data model.

@MSNev
Copy link
Author

MSNev commented Aug 8, 2022

In practice, you are proposing a new feature. This is not supported today.

That is because none of the SDK's (that I'm aware of) are currently SPEC compliant for LOGS, once they start to correctly implement Attributes for Logs everyone will hit this issue.

@@ -31,8 +32,15 @@ An `Attribute` is a key-value pair, which MUST have the following properties:
- A primitive type: string, boolean, double precision floating point (IEEE 754-1985) or signed 64 bit integer.
- An array of primitive type values. The array MUST be homogeneous,
i.e., it MUST NOT contain values of different types.
- When specified via semantic conventions it MAY (see [Nested Attributes](#nested-attributes))
Copy link
Member

@Oberon00 Oberon00 Oct 4, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a clarification (as written in the PR title) but allows a new feature. Also what is allowed on the level of the basic attribute definition must not depend on semantic conventions.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line explicitly calls out to see the Nested Attribute support which clarifies that this is NOT automatically supported by this line but must be explicitly defined by the semantic conventions (and is supported by Logs).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But it allows semantic conventions to add them, as written now, doesn't it?

@github-actions
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions
Copy link

Closed as inactive. Feel free to reopen if this PR is still being worked on.

@github-actions github-actions bot closed this Oct 26, 2022
@MSNev
Copy link
Author

MSNev commented Oct 26, 2022

Not stale as this is part of a larger issue like #2888

@MSNev
Copy link
Author

MSNev commented Nov 7, 2022

Closed as inactive. Feel free to reopen if this PR is still being worked on.

Don't have the ability (permissions) to re-open...

@djaglowski djaglowski reopened this Nov 7, 2022
@github-actions github-actions bot removed the Stale label Nov 8, 2022
@github-actions
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Nov 30, 2022
@github-actions
Copy link

Closed as inactive. Feel free to reopen if this PR is still being worked on.

@github-actions github-actions bot closed this Dec 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:api Cross language API specification issue area:data-model For issues related to data model spec:logs Related to the specification/logs directory Stale
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants