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

feat: Set log level for Fetch/XHR breadcrumbs based on status code #13711

Merged
merged 9 commits into from
Sep 23, 2024

Conversation

Zen-cronic
Copy link
Contributor

@Zen-cronic Zen-cronic commented Sep 18, 2024

Fixes #13359

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).

Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
* @param breadcrumb
*/
export function assignBreadcrumbLogLevel(breadcrumb: Breadcrumb): Breadcrumb {
const statusCode = breadcrumb.data?.status_code;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FetchBreadcrumbData and XhrBreadcrumbData are sent as the data property, which optionally contains status_code.

Copy link
Member

@Lms24 Lms24 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, thanks for (once again) contributing! :)

On first glance, this looks great to me! Would be amazing if you could add some tests for this. I think we should be able to test this in our Node integration-tests fairly well. (as well as maybe a couple of unit tests for the assignBreadcrumbLogLevel if you feel like doing extra credit work 😅)

I'm also gonna tag @lforst for a review since he has more context on this issue.

@Lms24 Lms24 requested a review from lforst September 18, 2024 07:12
Copy link
Member

@lforst lforst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would set the level in the place where we actually create the breadcrumbs, not in a central place downstream.

Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…Breadcrumb` is called

Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
} else if (statusCode >= 500) {
return 'error';
} else {
return 'info';
Copy link
Contributor Author

@Zen-cronic Zen-cronic Sep 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the undefined and other cases, the fallback level is info. So, all the test cases for breadcrumbs in browser-integration-tests must be updated, which is quite a lot.

Is this behaviour needed? E.g., non-error request breadcrumb will have an additional property level: 'info'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently many tests are failing b/c of the default property. Maybe we shouldn't set it if the response has a non-error status code. Otherwise, it's a handful to fix those tests (though it's simply just adding the property).

Any thoughts?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now, i've left out the default value (info) to not break the many other tests. But other sdks use a default value: getsentry/sentry-php@d12482a. So we should consider it.

Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Modify `getBreadcrumbLogLevel` to account only for 4xx or 5xx status.
Tests updated to reflect the changes to `getBreadcrumbLogLevel` function.

Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@lforst lforst self-assigned this Sep 23, 2024
@lforst lforst changed the title fix(core): Set log level for Fetch/XHR breadcrumbs based on status code feat: Set log level for Fetch/XHR breadcrumbs based on status code Sep 23, 2024
Copy link
Member

@lforst lforst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! :)

@lforst lforst merged commit 1f898b6 into getsentry:develop Sep 23, 2024
125 checks passed
mydea pushed a commit that referenced this pull request Sep 24, 2024
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #13711

Co-authored-by: lforst <8118419+lforst@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Give Fetch/XHR breadcrumbs a log level based on status code
3 participants