arcus.messaging
arcus.messaging copied to clipboard
feat(correlation): add open-telemetry as msg correlation scope
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
MessageCorrelationResultto minimize the PR changes. This can later be either removed, or its content be moved to a newArcus.Messaging.ServiceBus.Telemetry.Serilogpackage, if we want users to keep using the Serilog setup.
Relates to #464
Deploy Preview for arcus-messaging failed.
| Name | Link |
|---|---|
| Latest commit | fe3ecda907a7a1f21a1b9a7c9fbdabe47e27e7c6 |
| Latest deploy log | https://app.netlify.com/projects/arcus-messaging/deploys/69314d59f758ff000832ca34 |
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.
Note
Currently, the message pump still uses the deprecated
MessageCorrelationResultto minimize the PR changes. This can later be either removed, or its content be moved to a newArcus.Messaging.ServiceBus.Telemetry.Serilogpackage, 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.
Note Currently, the message pump still uses the deprecated
MessageCorrelationResultto minimize the PR changes. This can later be either removed, or its content be moved to a newArcus.Messaging.ServiceBus.Telemetry.Serilogpackage, if we want users to keep using the Serilog setup. Relates to #464I would be in favor of creating the
Arcus.Messaging.ServiceBus.Telemetry.Serilogpackage. 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.