Skip to content

5.20.0 — 2026-10-21

← 5.20.1 | 5.19.1 → | ↑ 5.x series

Added

Adapters - Temporal

  • Messaging Attributes on Workflow Spans - MessagingOpenTelemetryInterceptor marks the worker-side workflow spans as messaging process operations on the workflow task queue.
    • Covers RunWorkflow, HandleSignal, HandleQuery, ValidateUpdate and HandleUpdate, so Elastic APM shows transaction.type = messaging instead of unknown
    • Overrides temporalio's private _workflow_maybe_span and forwards any arguments to it; workflow_interceptor_class raises ConfigurationError at startup when temporalio no longer provides it
    • Replay is unaffected because the replay-safe tracer produces non-recording spans
  • Messaging Attributes on Start-Side Spans - StartWorkflow, StartActivity, StartChildWorkflow, StartUpdateWithStartWorkflow and the client-side StartActivity spans carry messaging send attributes with the target task queue as destination.
    • Activities and child workflows started without a task queue use the workflow's own queue
  • Messaging Attributes on Client Signal, Query and Update Spans - SignalWorkflow, QueryWorkflow and StartWorkflowUpdate carry send attributes without a destination.
    • The destination is left out on purpose: Elastic APM turns messaging.destination.name into a service-map node and workflow ids are unbounded

Changed

Adapters - Temporal

  • Attributes Skipped Without Temporal Spans - With add_temporal_spans=False no messaging attributes are set, so the caller's span (for example an HTTP request) is never marked.
  • Behavior - Temporal workflow, signal, query and update transactions report transaction.type = messaging in Elastic APM instead of unknown, and the start-side client spans report messaging span types.

Tests

Tests - Adapters

  • Order Saga Scenarios - Added OrderSagaWorkflow and NotificationWorkflow with reserve, charge, ship and notify activities and their compensations.
    • Payment succeeds on a chosen attempt, so retries produce one RunActivity per attempt
    • Shipping failure or the cancel signal reverts the completed steps in reverse order
    • The approve and cancel signals, the get_state query, the add_note update with a validator, a child workflow, update-with-start and a standalone activity are covered
  • Trace and Elastic APM Assertions - Collector scenarios check span names, one shared trace id and the messaging attributes; Elastic APM scenarios check transaction and span types, parent links and three RunActivity:charge_payment transactions for three attempts.
    • Added steps for a named APM span and for a count of named transactions