build(deps): upgrade opentelemetry crates to 0.32 (#35563)
Supersedes #35548, which bumped only `opentelemetry_sdk` and left the
rest of the `opentelemetry-*` family at 0.27. Because 0.32 is a breaking,
semver-major release, that single-crate bump broke every debug build. This PR bumps
the whole family together and migrates the code to the reworked APIs.
Bumps `opentelemetry`, `opentelemetry-http`, `opentelemetry-otlp`,
`opentelemetry-proto`, `opentelemetry-semantic-conventions` and
`opentelemetry_sdk` to 0.32, along with `tracing-opentelemetry` to 0.33.
The exporter traits are now native-async, take `&self`, and return
`OTelSdkResult`, so the `#[async_trait]` and `BoxFuture` plumbing is
gone. The `opentelemetry_sdk::export` submodule was removed, `LogRecord` became
`SdkLogRecord`, and the separate `LogError`/`MetricError`/`TraceError`
types collapsed into a single `OTelSdkError`.
The runtime-generic batch processors moved behind the experimental
async-runtime modules, so the span and log processors now come from
`span_processor_with_async_runtime` and
`log_processor_with_async_runtime`
(enabled via the matching features) to keep Deno's shared-runtime model.
The `Runtime` trait lost its `Interval`/`Delay` associated types, so
`OtelSharedRuntime` was updated accordingly.
The custom metric reader relies on the
`experimental_metrics_custom_reader`
feature for `ManualReader`/`Pipeline`/`MetricReader`, and the console
metric formatter was rewritten for the new accessor-based data model
(`AggregatedMetrics`/`MetricData` enums instead of `as_any()`
downcasts).
Smaller adjustments: `Resource` is built through its builder
(`new`/`merge`/ `default` were removed), `SdkLogRecord` is minted through a factory
logger since it no longer has a public constructor, `HttpClient::send_bytes`
replaces `send`, the now tonic-gated `Protocol::Grpc` variant is replaced with a
local flag, and the LSP tracing path uses `SdkTracerProvider` plus
`provider.shutdown()` (the global `shutdown_tracer_provider` was
removed).