v1.0.0-rc.2
Pre-releaseAdded
OTelAPI.setErrorHandler— a user-configurable global error handler
(api#94). Internal misuse reports route through it instead of throwing;
the default handler logs viaOTelLogand never throws. A user-installed
handler that throws propagates deliberately (strict mode), per
error-handling.md. The handler is factory-held state:OTelFactory
carries the installed handler and an overridabledefaultErrorHandler
for SDK factories, and a handler installed before any factory exists
is buffered and adopted at factory installation.Context.runIsolate
re-installs the parent's handler inside the child isolate (handlers
are copied; capture aSendPortto aggregate reports across isolates
— an unsendable handler degrades to the child default and is
reported).
Fixed (spec compliance)
Span.end()no longer promotes status from Unset to Ok (api#60).
UnsetstaysUnset; analysis tools can no longer be misled by
fabricated Ok statuses. The deprecatedspanStatusparameter still
flows through thesetStatusrules when passed.CompositePropagator.extractwalks propagators in the order they were
specified (api#76), matching inject and every other OpenTelemetry SDK
(was reversed, so the last-registered propagator no longer wins extract).Context.withSpanContextreturns a derived Context instead of throwing
ArgumentErrorwhen the context already holds a span from a different
trace (api#77) — a routine situation during extraction.
Added
-
Semantic conventions regenerated from registry v1.44.0 (previously
v1.43.0-21-g436fa257). Additive only, per the VERSIONING.md policy: 47
new identifiers, no renames and no removals.The substantial addition is the complete
browser.web_vital.*set —
name,value,delta,id,ratingandnavigation_type— together
with their value enums:cls,lcp,fcp,inp,ttfband the
obsoletedfid;good/needs-improvement/poor; and the six
navigation types (navigate,reload,back-forward,
back-forward-cache,prerender,restore). Web-vitals instrumentation
now has registry names to emit against instead of inventing its own.Also new:
browser.platform,hw.errorsandhw.status,
k8s.node.filesystem.inode.count/.free, and thescaleway_cloud
andscaleway_cloud_computemembers. -
lib/src/api/semantics/candidates/— a home for attribute keys that are
not yet in the registry, staged for upstream contribution, exported from
the package barrel and marked@experimental.This revisits the rc.1 position that "the API package now contains only
registry conventions". That rule was right about the problem — a private
dialect masquerading as OpenTelemetry — but it left no path for the
conventions we want to propose, which the semantic-conventions CONTRIBUTING
guide asks be "prototyped in the corresponding instrumentation(s)" first.
Candidates are kept in a separate directory, under a separate stability
promise, so a consumer can always tell a published convention from a
proposal.Candidates are unstable in identity but deprecation-cycled: a renamed,
reshaped or rejected candidate is@Deprecated, pointing at its
replacement, for a release before it is removed — the same cycle the
vendor/RUM enums completed. When one is accepted upstream it reappears in
generatedsemconv/output and the candidate is deprecated in its favor.Staged:
app.start.type(cold/warm/hot),app.launch.id,
app.screen.previous_id,app.screen.previous_name,
app.gesture.direction,app.gesture.delta.x,app.gesture.delta.y,
device.battery.level,device.battery.state,device.battery.save_mode,
device.emulator, andbrowser.languages. -
doc/SEMCONV_CANDIDATES.md— the disposition of all 116 identifiers
removed in rc.1. Most should return as registry conventions rather than
candidates: the registry has since gainedapp.crash,app.jank,
app.screen.click,app.widget.click,device.app.lifecycle,
session.start/session.endandbrowser.web_vital.*, which cover the
bulk of the removed RUM surface. The document maps each removal to its
registry replacement, to a candidate, or to a recorded reason for dropping
it.