open-telemetry / semantic-conventions

Defines standards for generating consistent, accessible telemetry across a variety of domains
Apache License 2.0
262 stars 167 forks source link

Messaging: do we need `messaging.destination.temporary` and/or `messaging.destination.anonymous` attributes? #1126

Open lmolkova opened 4 months ago

lmolkova commented 4 months ago

messaging.destination.temporary - A boolean that is true if the message destination is temporary and might not exist anymore after messages are processed.

messaging.destination.anonymous - A boolean that is true if the message destination is anonymous (could be unnamed or have auto-generated name).

I think we should start with excluding them from the stability scope.

pyohannes commented 4 months ago
  • do we need both attributes? what's the difference? Can we merge them into one?

I'd be against merging them. The two attributes have a clearly defined meaning, I don't think we gain much by replacing them with a single attribute that has a vague meaning.

  • do we need any of these attributes? The only information they convey is that destination name could have high cardinality. Do we need to record it as attributes?

If I remember correctly, @dpauls was a proponent of these attributes. Maybe he can give some use cases?

  • do we have a reliable way to detect temporary/anonymous destinations in auto-instrumentations?

I don't think there's a 100% reliable way to detect this across libraries and systems. However, we assume in the conventions that instrumentation authors can know whether a destination name is of high or low cardinality (because depending on this the destination name is used on metrics and in the span name), and we also assume that names of temporary or anonymous destinations are of high cardinality.

So, I don't think there's a reliable way, but it will be a best-effort approach.

I think we should start with excluding them from the stability scope.

I'm fine with that.