Skip to content

Where to put instrumentation-specific semantic conventions. #968

@anuraaga

Description

@anuraaga

I think it's common for there to be a set of semantic conventions for specific instrumentation. These are often for frameworks with a cross-language scope, or client libraries for a service that exist in many languages. Information that are useful in observability that are always present in these situations make sense to have consistent in spans across languages.

We have an example already in our spec of instrumentation-specific conventions for gRPC.

https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/rpc.md#grpc

I am working on semantic conventions for the AWS SDK client libraries

https://github.com/anuraaga/aws-opentelemetry-java-instrumentation/blob/master/docs/aws-sdk-semantic-conventions.md

These are conventions that AWS has collected through working with customers and are a set of data that we find helps with observability. Of course, we're happy to increase this list even more :) But the main idea is we think it is a good idea to have these conventions implemented in all instrumentations of the AWS SDK, regardless of language and want to make sure there is a reference point for instrumentation writers.

In Java instrumentation, we already have some attributes that are useful to users that are not documented anywhere, but should presumably be in the spec and filled by all languages instrumenting the same system (or not filled anywhere).

open-telemetry/opentelemetry-java-instrumentation#602

For example, Kafka tombstone, elasticsearch actions.

Is it appropriate to have an instrumentations subfolder in semantic_conventions to put these sort of conventions in? We can start by extracting out grpc.md since it's already in this spec.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:semantic-conventionsRelated to semantic conventionsquestionQuestion for discussionrelease:after-gaNot required before GA release, and not going to work on before GAspec:traceRelated to the specification/trace directory

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions