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

GraalVM Native Image Compatibility. #1329

Merged
merged 10 commits into from
Mar 23, 2021
Merged

GraalVM Native Image Compatibility. #1329

merged 10 commits into from
Mar 23, 2021

Conversation

maciejwalkowiak
Copy link
Contributor

@maciejwalkowiak maciejwalkowiak commented Mar 16, 2021

📜 Description

GraalVM Native Image Compatibility.

  • adds all necessary configuration files for running Sentry SDK in GraalVM native image
  • fixes Spring configuration files to be compatible with Spring Native 0.10

💡 Motivation and Context

Fixes #1323.

Partially fixes #1324 - error reporting works with performance there is one gotcha - it does not work with @SentrySpan and @SentryTransaction annotations. Since Spring Native is evolving project potentially it may handle this use case in the future without our custom code. I'll sync with Spring team about it but this can be anyway solved in separate PR.

💚 How did you test it?

Building native image with Spring Native and Quarkus and checked if no exceptions are thrown in runtime and if errors sent to Sentry have complete information.

📝 Checklist

  • I reviewed the submitted code
  • I added tests to verify the changes
  • I updated the docs if needed
  • No breaking changes

🔮 Next steps

On the side in meantime work on Spring Native integration to handle properly @SentrySpan and @SentryTransaction annotations.

@codecov-io
Copy link

codecov-io commented Mar 17, 2021

Codecov Report

Merging #1329 (7ef1390) into main (fa1b8b7) will not change coverage.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff            @@
##               main    #1329   +/-   ##
=========================================
  Coverage     75.64%   75.64%           
  Complexity     1842     1842           
=========================================
  Files           185      185           
  Lines          6319     6319           
  Branches        626      626           
=========================================
  Hits           4780     4780           
  Misses         1254     1254           
  Partials        285      285           
Impacted Files Coverage Δ Complexity Δ
...io/sentry/spring/boot/SentryAutoConfiguration.java 97.77% <ø> (ø) 1.00 <0.00> (ø)
...g/boot/SentryLogbackAppenderAutoConfiguration.java 100.00% <ø> (ø) 2.00 <0.00> (ø)
.../java/io/sentry/spring/SentryWebConfiguration.java 100.00% <ø> (ø) 2.00 <0.00> (ø)
...pring/tracing/SentrySpanPointcutConfiguration.java 100.00% <ø> (ø) 2.00 <0.00> (ø)
...racing/SentryTransactionPointcutConfiguration.java 100.00% <ø> (ø) 2.00 <0.00> (ø)
...ntry/spring/tracing/SentryAdviceConfiguration.java 100.00% <100.00%> (ø) 5.00 <2.00> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fa1b8b7...7ef1390. Read the comment docs.

@maciejwalkowiak maciejwalkowiak changed the title Spring Native compatibility. GraalVM Native Image Compatibility. Mar 18, 2021
@maciejwalkowiak maciejwalkowiak marked this pull request as ready for review March 18, 2021 12:52
Copy link
Contributor

@marandaneto marandaneto left a comment

Choose a reason for hiding this comment

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

approving blindly as I know nothing about GraalVM compatibility :D

@maciejwalkowiak
Copy link
Contributor Author

To be fair I am also not an expert in this subject. I think it is a step forward and definitely it makes it work with GraalVM but I am not sure if it covers it all. I hope we will get feedback once its there.

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