Open pauldraper opened 2 years ago
I propose to follow (and contribute to) https://opentelemetry.io/docs/specs/semconv.
The semantic conventions should also provide guidelines e.g. https://opentelemetry.io/docs/specs/semconv/general/metrics-general/#general-guidelines
I hope that my comment gives at least some tiny value.
Thank you, those semantic conventions strongly imply that signals are written to idependently.
For example, for a HTTP request:
<method>
and the attribute http.request.body.size
http.client.duration
with the durationhttp.client.request.size
with the body sizeThe duration of the span and value of http.client.duration
is the same. The value of http.request.body.size
and http.client.request.size
is the same. There is no expected de-duplication of those signals for the implementer.
This is valuable feedback. Can you create an issue for that in https://github.com/open-telemetry/semantic-conventions (especially that the SIG wants to stabilize the HTTP semantic conventions)?
If you have no other concerns/question than you can consider closing this issue afterwards.
CC @open-telemetry/semconv-http-approvers
@pauldraper what you say above is correct. HTTP instrumentation should emit both spans and metrics. Some languages (e.g. Java instrumentation) have built a layer on top of the trace and metric APIs which unify them a bit. Maybe https://github.com/open-telemetry/oteps/pull/165 is what you're looking for?
Some languages (e.g. Java instrumentation) have built a layer on top of the trace and metric APIs which unify them a bit.
Maybe https://github.com/open-telemetry/oteps/pull/165 is what you're looking for?
Yes.
This would be something good for the convenience/devex SIG to think about cc @tsloughter
What should instrumenters be doing?
For example, I'm instrumenting an RPC library:
Does this seem....extremely duplicative to anyone else?
Should I just write to one of these and tell users "well, if you want something else for your SDK/backend, ha ha good luck, you're write a bunch of code to translate from my stuff to your SDK/backend."
This issue really deserves some attention; the entire premise of OTel is that instrumentations and backends can be developed in isolation. This is a very large practical concern for anyone who has actually tried to write a portable, useful instrumentation. (I suspect perhaps many people have not tried this.)
Related: #381, with focus on SDK additions.