Skip to content

v1.1.0-beta.8

Pre-release
Pre-release

Choose a tag to compare

@michaelbushe michaelbushe released this 18 Jul 13:54
· 54 commits to main since this release

Added

  • OTEL_PROPAGATORS support and global propagator wiring.
    OTel.initialize() now installs the API's global TextMapPropagator
    per the spec ("Global Propagators"): the default is the W3C
    tracecontext,baggage composite; none (or no supported values)
    leaves the API's spec-mandated no-op in place; unsupported names emit
    an OTelLog.warn and are ignored. Supported values: tracecontext,
    baggage, none. Instrumentation libraries can now obtain "the"
    propagator via OTelAPI.textMapPropagator instead of being handed one
    explicitly.
  • OTEL_BSP_* environment variables for configuring BatchSpanProcessor
    (OTEL_BSP_SCHEDULE_DELAY, OTEL_BSP_EXPORT_TIMEOUT, OTEL_BSP_MAX_QUEUE_SIZE,
    OTEL_BSP_MAX_EXPORT_BATCH_SIZE). Values are read by
    BatchSpanProcessorConfig.fromEnvironment() which OTel.initialize() uses
    by default. Invalid or out-of-range values now emit OTelLog.warn diagnostics.
    OTEL_BSP_EXPORT_TIMEOUT=0 is honored as "no limit" per spec.
  • Comma-separated OTEL_*_EXPORTER lists. The spec's "implementation
    MAY accept a comma-separated list to enable setting multiple exporters"
    is now supported for all three signals: OTEL_TRACES_EXPORTER=otlp,console
    installs a CompositeExporter, metrics use a CompositeMetricExporter,
    and logs install one processor per exporter. none in a list wins;
    unsupported values (zipkin, the deprecated logging) emit an
    OTelLog.warn and are ignored; a list with no usable values falls back
    to the spec default otlp. Previously a list value silently installed
    no exporter at all.
  • Unknown OTEL_METRICS_EXPORTER values now warn and are ignored
    instead of silently becoming otlp; prometheus gets a dedicated
    warning pointing at programmatic PrometheusExporter use and the
    planned scrape server (#82) — auto-wiring it today would be a silent
    no-op since the env-created exporter is unreachable by the app.

Removed

  • Breaking: OTel.initialize no longer accepts dartasticApiKey or
    tenantId, and the OTel.dartasticApiKey static is gone.
    Both were
    non-standard, vendor-specific parameters that predate the platform
    layering: API keys belong in OTLP exporter headers
    (OTEL_EXPORTER_OTLP_HEADERS) and tenant identity is platform-layer
    context, not an SDK concern. The tenant_id resource-attribute
    stamping and its debug-log special-casing are removed with them.
  • Breaking: the non-standard OTEL_*-namespace extensions are renamed
    or removed.
    The per-signal diagnostic vars squatted the spec's core
    namespace and are renamed to the spec's language-specific convention
    (OTEL_{LANGUAGE}_{FEATURE}): OTEL_LOG_SPANSOTEL_DART_LOG_SPANS,
    OTEL_LOG_METRICSOTEL_DART_LOG_METRICS, OTEL_LOG_EXPORT
    OTEL_DART_LOG_EXPORT (same semantics: enable the OTelLog per-signal
    diagnostic sinks; programmatic setters unchanged). The
    OTEL_CONSOLE_EXPORTER dart-define is removed — console output of the
    telemetry itself uses the standard OTEL_*_EXPORTER=console (or the
    comma-list form, e.g. otlp,console).

Changed

  • Depends on dartastic_opentelemetry_api 1.0.0-beta.10 and re-exports
    its surface: the Weaver-generated semantic-convention enums (90 registry
    namespaces incl. entities/metrics/events), NonRecordingSpan, and the
    global TextMapPropagator. SDK consumers referencing renamed semconv
    enums through this package inherit the API's breaking renames — the
    complete old→new tables are in the API package's 1.0.0-beta.10
    CHANGELOG. SDK span creation is unaffected (the API's no-SDK span
    behavior only applies without an SDK factory installed).
  • Examples and tests migrated to the new names (Db, Server, Code,
    Http.httpRequestMethod/httpResponseStatusCode/httpResponseBodySize)
    and off registry-deprecated keys: the database examples now emit
    db.system.name, db.namespace, db.operation.name, and
    db.query.text instead of the deprecated db.system/db.name/
    db.operation/db.statement, and drop the deprecated db.user.
  • CompositePropagator is constructed via OTelAPI.compositePropagator
    (its constructor is factory-only as of the API's beta.10).
  • Default span batch schedule delay changed from 1 s to 5 s (spec default).
    The previous hard-coded BatchSpanProcessorConfig(scheduleDelay: Duration(seconds: 1))
    in OTel.initialize() has been replaced by BatchSpanProcessorConfig.fromEnvironment(),
    whose fallback is the spec-mandated 5000 ms. To restore the old behavior, set
    OTEL_BSP_SCHEDULE_DELAY=1000.