5.20.0 — 2026-10-21¶
← 5.20.1 | 5.19.1 → | ↑ 5.x series
Added¶
Adapters - Temporal¶
- Messaging Attributes on Workflow Spans -
MessagingOpenTelemetryInterceptormarks the worker-side workflow spans as messagingprocessoperations on the workflow task queue.- Covers
RunWorkflow,HandleSignal,HandleQuery,ValidateUpdateandHandleUpdate, so Elastic APM showstransaction.type = messaginginstead ofunknown - Overrides temporalio's private
_workflow_maybe_spanand forwards any arguments to it;workflow_interceptor_classraisesConfigurationErrorat startup when temporalio no longer provides it - Replay is unaffected because the replay-safe tracer produces non-recording spans
- Covers
- Messaging Attributes on Start-Side Spans -
StartWorkflow,StartActivity,StartChildWorkflow,StartUpdateWithStartWorkflowand the client-sideStartActivityspans carry messagingsendattributes 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,QueryWorkflowandStartWorkflowUpdatecarrysendattributes without a destination.- The destination is left out on purpose: Elastic APM turns
messaging.destination.nameinto a service-map node and workflow ids are unbounded
- The destination is left out on purpose: Elastic APM turns
Changed¶
Adapters - Temporal¶
- Attributes Skipped Without Temporal Spans - With
add_temporal_spans=Falseno 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 = messagingin Elastic APM instead ofunknown, and the start-side client spans reportmessagingspan types.
Tests¶
Tests - Adapters¶
- Order Saga Scenarios - Added
OrderSagaWorkflowandNotificationWorkflowwith reserve, charge, ship and notify activities and their compensations.- Payment succeeds on a chosen attempt, so retries produce one
RunActivityper attempt - Shipping failure or the
cancelsignal reverts the completed steps in reverse order - The
approveandcancelsignals, theget_statequery, theadd_noteupdate with a validator, a child workflow, update-with-start and a standalone activity are covered
- Payment succeeds on a chosen attempt, so retries produce one
- 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_paymenttransactions for three attempts.- Added steps for a named APM span and for a count of named transactions