-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Currently OTel JS is part way through migrating its various HTTP-semconv-producing instrumentations to the stable (as of semconv v1.23) HTTP conventions.
Relevant instrumentations:
- instrumentation-http: For Node.js. Server and client instrumentation. In Sep 2024 (in Http server semconv span stable open-telemetry/opentelemetry-js#4978) this was updated to support
OTEL_SEMCONV_STABILITY_OPT_INas described at https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/ and was released in'0.54.0': '2024-10-23T14:52:35.451Z'. - instrumentation-undici: For Node.js. Client instrumentation (for
undiciusage, and for Node's builtinfetch(). This instrumentation was written after HTTP semconv had stabilized. It has always produced stable HTTP semconv. - instrumentation-xml-http-request: For web usage. I think is still using old HTTP semconv.
- instrumentation-fetch: For web/browser
fetch()usage. I think is still using old HTTP semconv.
The instrumentation-http is still "experimental" (i.e. 0.x versions) and has had breaking change bumps. So my understanding of the requirements from https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/ is that OTel JS could change instrumentation-http over to just use the newer semconv.
However, a possible read of the spirit of:
Need to maintain (security patching at a minimum) their existing major version for at least six months after it starts emitting both sets of conventions.
perhaps suggests that there should be a 6 month wait, at least for upstream OTel JS. That would be until 2025-04-23.
For EDOT Node.js, I think it would be fine the indirectly switch to using just the newer semconv by default now:
- For instrumentation-http we would default
OTEL_SEMCONV_STABILITY_OPT_IN=httpif the user has not put anhttp-related entry in that envvar. - instrumentation-undici is already using the new
- The web instrumentations are not relevant to EDOT Node.js