Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Message bodies not shown in Saga View #987

Closed
mikeminutillo opened this issue Dec 24, 2020 · 0 comments
Closed

Message bodies not shown in Saga View #987

mikeminutillo opened this issue Dec 24, 2020 · 0 comments
Assignees
Labels
Milestone

Comments

@mikeminutillo
Copy link
Member

Who's affected

Customers using the Saga View to inspect message bodies when using a seperate audit instance.

Symptoms

When looking at a Saga in the Saga View, clicking "Show Messages" shows all messages as empty.

image

Analysis

Audited message bodies are stored in a separate audit instance. When ServiceInsight queries for a list of messages, the query is sent to the primary ServiceControl instance, which forwards the query to all attached Audit instances. When it gets back the results, it changes the BodyUrl value returned from the Audit instance to include an InstanceId query string parameter. When ServiceInsight then needs to load the body, it uses this address. The primary instance extracts the InstanceId query string parameter and forwards the request to the right Audit instance.

When ServiceInsight queries for Saga Audit data, ServiceControl knows which messages are correlated with the saga instance. It knows some additional details such as Message Id, Message Type, and whether the message was a command or an event. It does not know which Audit instance contains the message body, so it cannot update the BodyUrl property to contain an InstanceId value.

When ServiceInsight gets data back from the query, the InstanceId query string parameter is missing from the BodyUrl property. When ServiceInsight requests the details of the message body, ServiceControl does not know which Audit instance to forward the query to and it returns a 404 NOT FOUND.

To resolve this, ServiceInsight now issues a second query immediately after the Saga Audit query. This second query asks for a list of messages that contain the value of the Saga Id. It then matches the results up to each message replacing the BodyUrl property with one containing an InstanceId query string parameter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant