-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Logger instrumentation #4063
Logger instrumentation #4063
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #4063 +/- ##
==========================================
+ Coverage 82.84% 82.96% +0.11%
==========================================
Files 222 230 +8
Lines 28330 28710 +380
==========================================
+ Hits 23471 23820 +349
- Misses 4859 4890 +31
Flags with carried forward coverage won't be shown. Click here to find out more.
☔ View full report in Codecov by Sentry. |
7e7c50e
to
59527f5
Compare
735bff2
to
a7aee59
Compare
Blocked on #4047 |
7c22318
to
d6a279f
Compare
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.
- It would nice to have a Firecracker-level integration test that verifies that instrumentation works for Firecracker specifically, not only on its own.
- I can see some uncovered lines in the codecov report. Specifically
action
andexclude
inCommandLineArgs
. Are there reasons for them and others not to be covered?
36e35ac
to
a3ea9b1
Compare
cf49312
to
bf33800
Compare
There are tests covering all the I've added a test to cover |
5e392e9
to
db16dcb
Compare
45174ef
to
d68fd5a
Compare
I think all comments are addressed but before merge, could you please confirm and resolve all comments from Nikita. |
`log_path` is no longer required by the `/logger` API. Removes `log_path` from `required:` in the `firecracker.yaml` swagger specification for the API. Signed-off-by: Jonathan Woollett-LIght <[email protected]>
Adds a module filter to the logger. This allows a user at runtime to filter log messages by the Rust source code crate and module from which they originate. Signed-off-by: Jonathan Woollett-Light <[email protected]>
Adds a crate (`log-instrument`) with an instrumentation macro. Adds a binary (`clippy-tracing`) to add, remove and check for instrumentation. Signed-off-by: Jonathan Woollett-Light <[email protected]>
Add `tracing.md` to document how to use the instrumentation to trace the Firecracker process. Signed-off-by: Jonathan Woollett-Light <[email protected]>
Added an entry in the change log on adding tracing. Signed-off-by: Jonathan Woollett-Light <[email protected]>
d68fd5a
to
3ed64be
Compare
f15f840
into
firecracker-microvm:main
Changes
Adds support for tracing the Firecracker process with logs.
See https://github.com/JonathanWoollett-Light/firecracker/blob/logger-instrumentation/docs/tracing.md
ls -l ./build/cargo_target/release/firecracker
The change in binary size from 9,941kb to 9,949kb of 8kb is a result of
feat: Add module filter
.Follow-up issues to add CI test: #4215
Reason
It is a valuable feature when debugging, especially in restricted environments where it may be difficult to run another process like
strace
.License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following
Developer Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md
.PR Checklist
CHANGELOG.md
.TODO
s link to an issue.rust-vmm
.