arcus.messaging icon indicating copy to clipboard operation
arcus.messaging copied to clipboard

feat(correlation): add open-telemetry as msg correlation scope

Open stijnmoreels opened this issue 5 months ago • 4 comments

Introduce OpenTelemetry as a concrete implementation of an Azure Service Bus message correlation scope for the message pump, by introducing a new package called Arcus.Messaging.ServiceBus.Telemetry.OpenTelemetry that provides an extension on a message pump registration setup.

This PR provides concrete implementations with a new interface called IServiceBusMessageCorrelationScope and also updates the feature documentation to accompany this correlation option.

[!Note] Currently, the message pump still uses the deprecated MessageCorrelationResult to minimize the PR changes. This can later be either removed, or its content be moved to a new Arcus.Messaging.ServiceBus.Telemetry.Serilog package, if we want users to keep using the Serilog setup.

Relates to #464

stijnmoreels avatar Jul 03 '25 04:07 stijnmoreels

Deploy Preview for arcus-messaging failed.

Name Link
Latest commit fe3ecda907a7a1f21a1b9a7c9fbdabe47e27e7c6
Latest deploy log https://app.netlify.com/projects/arcus-messaging/deploys/69314d59f758ff000832ca34

netlify[bot] avatar Jul 03 '25 04:07 netlify[bot]

Messaging is currently only 'Experimental' within OpenTelemetry. Once that is 'stable', we can again remove this one.

Best that we also check this in an existing project, how the transaction-link looks like as it might miss some additional tags... These tests only verify the producer-consumer parent/child relationship.

stijnmoreels avatar Jul 03 '25 07:07 stijnmoreels

Note

Currently, the message pump still uses the deprecated MessageCorrelationResult to minimize the PR changes. This can later be either removed, or its content be moved to a new Arcus.Messaging.ServiceBus.Telemetry.Serilog package, if we want users to keep using the Serilog setup.

Relates to #464

I would be in favor of creating the Arcus.Messaging.ServiceBus.Telemetry.Serilog package. But, would that imply that, in order to have observability, a user of Arcus has to explicitly install / use one of these 2 packages. Seems like this is something that must be (very) clearly documented.

fgheysels avatar Jul 24 '25 09:07 fgheysels

Note Currently, the message pump still uses the deprecated MessageCorrelationResult to minimize the PR changes. This can later be either removed, or its content be moved to a new Arcus.Messaging.ServiceBus.Telemetry.Serilog package, if we want users to keep using the Serilog setup. Relates to #464

I would be in favor of creating the Arcus.Messaging.ServiceBus.Telemetry.Serilog package. But, would that imply that, in order to have observability, a user of Arcus has to explicitly install / use one of these 2 packages. Seems like this is something that must be (very) clearly documented.

Yes, it is part if the migration guide already and will update further as soon as that Serilog package is there.

stijnmoreels avatar Jul 27 '25 19:07 stijnmoreels