-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
fix: NOOP spans when context is missing #32987
Conversation
WalkthroughWalkthroughThe recent updates in the Appsmith server project focus on enhancing the robustness of span creation within the Changes
Assessment against linked issues
The current changes focus solely on the tracing and logging aspects of the server's functionality and do not intersect with the git import or commit processes described in the linked issue. Recent Review DetailsConfiguration used: CodeRabbit UI Files selected for processing (1)
Files skipped from review as they are similar to previous changes (1)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Out of diff range and nitpick comments (1)
app/server/appsmith-server/src/main/java/com/appsmith/server/helpers/ObservationHelperImpl.java (1)
30-42
: The modifications to handle missing MDC context keys before span creation are well-implemented.Consider adding a comment before line 41 explaining why
Span.NOOP
is returned when the context keys are missing. This can improve code readability and maintainability.
.spanId(MDC.get(SPAN_ID)) | ||
.build(); | ||
Map<String, String> contextMap = MDC.getCopyOfContextMap(); | ||
if (contextMap != null && contextMap.containsKey(TRACE_ID) && contextMap.containsKey(SPAN_ID)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit pick: let's flip the conditional?
Description
When auto-commits are triggered, the execution starts with no MDC context established. The observation helper assumed that this context would always be present and would hence error out during such events. This PR handles scenarios when context is absent by skipping the span entirely.
If we wish to log auto-commit related spans, we will need to take that up separately by figuring out which trace we'd like to attach the span to.
Fixes #30721
Automation
/ok-to-test tags="@tag.Git"
🔍 Cypress test results
Tip
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/8846591111
Commit: 50ad334
Cypress dashboard url: Click here!
Communication
Should the DevRel and Marketing teams inform users about this change?
Summary by CodeRabbit