Skip to content

v1.1.0-beta.10

Pre-release
Pre-release

Choose a tag to compare

@michaelbushe michaelbushe released this 20 Jul 07:12
· 44 commits to main since this release

Fixed

  • W3CBaggagePropagator.extract no longer discards the incoming
    context when the baggage header is absent
    (#87). It returned a
    fresh context instead of the passed one, so in the spec-default
    composite (tracecontext, then baggage) any request carrying
    traceparent but no baggage header lost its just-extracted span
    context — breaking traces at every service boundary unless callers
    hand-ordered extraction. Per the Propagators API spec, extract now
    returns the passed context unchanged when there is nothing to extract.
  • OTLP endpoint schemes now determine TLS per the OTLP spec (#88).
    http:// endpoints connect insecure and https:// secure;
    OTEL_EXPORTER_OTLP_INSECURE (and per-signal variants) applies only
    to scheme-less endpoints, and an explicit programmatic secure still
    wins. Previously OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4317
    attempted TLS and failed with a HandshakeException unless the
    insecure flag was also set. Resolution is shared across all three
    signals via OTelEnv.resolveOtlpSecure; metrics additionally now
    honor OTEL_EXPORTER_OTLP_METRICS_INSECURE, which was parsed but
    ignored.

Fixed

  • OTLP/JSON enum fields are now encoded as integers per the OTLP spec,
    not proto3-JSON's default enum names: span kind, status code, log
    severityNumber, metric aggregationTemporality. Same origin story as
    the 1.1.0-beta.7 hex-id fix — toProto3Json()'s defaults deviate from
    the OTLP spec, lenient receivers masked it, and a strict
    cross-implementation check (the Dartastic engine wire-parity harness)
    caught it. Conversion is field-keyed and prefix-guarded, so attribute
    string values that merely resemble enum names are never touched.

Added

  • Public MetricTransformer.transformMetrics one-shot — the metrics
    analogue of OtlpLogRecordTransformer.transformLogRecords: converts a
    whole MetricData batch to a ready-to-serialize OTLP
    ExportMetricsServiceRequest (transformMetrics(data).writeToBuffer()),
    so alternative exporters and sinks can reuse the transform instead of
    re-implementing the per-metric mapping. Both bundled OTLP metric
    exporters (HTTP and gRPC) now build their requests through it, removing
    two hand-rolled copies of the same assembly; wire output is unchanged
    (same instrumentation-scope constant, same OTel.resource(null)
    fallback, resolved by the caller so the transformer stays a pure leaf).