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

Add Azure SDK semantic conventions #2233

Closed

Conversation

lmolkova
Copy link
Contributor

Adds yml spec for Azure SDK trace semantic conventions. This doc only documents the current state, it is not stable and has experimental status.

As Otel conventions stabilize, Azure SDKs will gradually onboard onto them.

@lmolkova lmolkova requested review from a team December 20, 2021 20:53
@lmolkova lmolkova force-pushed the azure-sdk-tracing-conventions branch 2 times, most recently from 3ed4a27 to d7ae2a3 Compare December 20, 2021 21:33
@arminru arminru added area:semantic-conventions Related to semantic conventions semconv:database semconv:HTTP semconv:messaging spec:trace Related to the specification/trace directory labels Dec 21, 2021
@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 Dec 29, 2021
@lmolkova lmolkova force-pushed the azure-sdk-tracing-conventions branch 2 times, most recently from b019d45 to 0008ead Compare January 4, 2022 01:02
@bogdandrutu bogdandrutu removed the Stale label Jan 4, 2022
@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 Jan 14, 2022
@lmolkova
Copy link
Contributor Author

@open-telemetry/specs-trace-approvers can someone please take a look?

@lmolkova
Copy link
Contributor Author

@arminru thanks for the review! I think I addressed your comments.

@github-actions github-actions bot removed the Stale label Jan 19, 2022
Comment on lines +1 to +2
# Version: 0.0.0
# Status: Experimental
Copy link
Member

Choose a reason for hiding this comment

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

Are those metadata fields used by internal tooling or intended to be used by the MD and code generator in https://github.com/open-telemetry/build-tools?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

those are only intended for MD generator at this point, they might also be used by Java code generator in the future. The main intent is formal documentation though.

Copy link
Member

Choose a reason for hiding this comment

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

I think it would make sense to agree on the format and content first and have that specified in the syntax.md for the tool (but it looks good to me in general).

semantic_conventions/trace/instrumentation/azure-sdk.yml Outdated Show resolved Hide resolved
semantic_conventions/trace/instrumentation/azure-sdk.yml Outdated Show resolved Hide resolved
semantic_conventions/trace/instrumentation/azure-sdk.yml Outdated Show resolved Hide resolved
# Status: Experimental
# This document describes Azure SDK trace semantic conventions. For more details refer to https://azure.github.io/azure.sdk/distributed_tracing_conventions.html

groups:
Copy link
Member

Choose a reason for hiding this comment

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

All of these define an id but no prefix. I assume you'd want to set prefix to match your ids.

Copy link
Contributor Author

@lmolkova lmolkova Jan 24, 2022

Choose a reason for hiding this comment

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

I'm not aware of any requirement for id and prefix to match. Did I miss something?
AFAIK id is only relevant for tooling, while prefix is attribute prefix.
I don't see anything here and if I check existing specs, some of them have different prefix and id. Moreover, with things like HTTP, we don't add any new prefixes to attributes.

Copy link
Member

@arminru arminru Jan 28, 2022

Choose a reason for hiding this comment

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

That is correct. Currently you have request_id and service_request_id as standalone top-level attributes though. I assume those should be put under an azure prefix / namespace (e.g. azure.sdk.http.request_id), or is this intentional?

Comment on lines +66 to +71
- id: peer.address
type: string
brief: 'Fully qualified messaging service name.'
required: always
examples: ['myEventHubNamespace.servicebus.windows.net']
Copy link
Member

Choose a reason for hiding this comment

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

How about referencing net.peer.name from the general conventions here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

once we'll switch to net.peer.name I'll use it and add a reference. But this is instrumentation exists for years and it can't be changed overnight.

Copy link
Member

@arminru arminru Jan 28, 2022

Choose a reason for hiding this comment

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

Ah so that's not a new suggestion that just borrows from OpenTracing semconvs but it's documenting an existing instrumentation that's already in use?

@lmolkova lmolkova force-pushed the azure-sdk-tracing-conventions branch from 2bf134f to 378087d Compare January 25, 2022 00:21
brief: 'Describes Azure SDK API calls that wrap an Azure service call(s).'

# http
- id: azure.sdk.http
Copy link
Contributor

Choose a reason for hiding this comment

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

Just confirming if you meant to remove .sdk in all the cases too, assuming a possibility of filling in on the server.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this specific section describes the client side of things (e.g. populates http.url), if we add server, I assume it would go under azure.<server>.http, so I kept sdk intentionally. Do you see any problem with this?

I assume if we add common attributes between server and client and declare them in azure.http this would still be a backward-compatible change.

Copy link
Member

Choose a reason for hiding this comment

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

For HTTP, we chose the same names for client and server, since the overlapping attributes (like http.url) do have the same meaning. We use the span kind to distinguish.

@github-actions
Copy link

github-actions bot commented Feb 5, 2022

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 Feb 5, 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 Feb 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:semantic-conventions Related to semantic conventions semconv:database semconv:HTTP semconv:messaging spec:trace Related to the specification/trace directory Stale
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants