Skip to content

Commit 6b54437

Browse files
author
Jonathan Woollett-Light
committed
fix: tracing
Replaces custom logger with `tracing_subscriber`. Signed-off-by: Jonathan Woollett-Light <jcawl@amazon.co.uk>
1 parent 5313a97 commit 6b54437

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+192
-95
lines changed

src/api_server/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ mmds = { path = "../mmds" }
2121
seccompiler = { path = "../seccompiler" }
2222
utils = { path = "../utils" }
2323
vmm = { path = "../vmm" }
24+
tracing = { version = "0.1.37", features = ["attributes"] }
2425

2526
[dev-dependencies]
2627
libc = "0.2.117"

src/api_server/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ pub use micro_http::{
2323
};
2424
use seccompiler::BpfProgramRef;
2525
use serde_json::json;
26+
use tracing::{debug, error, info, warn};
2627
use utils::eventfd::EventFd;
2728
use vmm::rpc_interface::{VmmAction, VmmActionError, VmmData};
2829
use vmm::vmm_config::snapshot::SnapshotType;

src/api_server/src/parsed_request.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use logger::{error, info};
77
use micro_http::{Body, Method, Request, Response, StatusCode, Version};
88
use serde::ser::Serialize;
99
use serde_json::Value;
10+
use tracing::{error, info};
1011
use vmm::rpc_interface::{VmmAction, VmmActionError};
1112

1213
use super::VmmData;

src/api_server/src/request/logger.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
use logger::{IncMetric, METRICS};
5-
use vmm::vmm_config::logger::LoggerConfig;
5+
use vmm::vmm_config::LoggerConfig;
66

77
use super::super::VmmAction;
88
use crate::parsed_request::{Error, ParsedRequest};
@@ -22,25 +22,24 @@ pub(crate) fn parse_put_logger(body: &Body) -> Result<ParsedRequest, Error> {
2222
mod tests {
2323
use std::path::PathBuf;
2424

25-
use vmm::vmm_config::logger::LoggerLevel;
26-
2725
use super::*;
2826
use crate::parsed_request::tests::vmm_action_from_request;
2927

3028
#[test]
3129
fn test_parse_put_logger_request() {
3230
let mut body = r#"{
3331
"log_path": "log",
34-
"level": "Warning",
32+
"level": "Warn",
3533
"show_level": false,
3634
"show_log_origin": false
3735
}"#;
3836

3937
let mut expected_cfg = LoggerConfig {
40-
log_path: PathBuf::from("log"),
41-
level: LoggerLevel::Warning,
42-
show_level: false,
43-
show_log_origin: false,
38+
log_path: Some(PathBuf::from("log")),
39+
level: Some(log::Level::Warn),
40+
show_level: Some(false),
41+
show_log_origin: Some(false),
42+
profile_file: None,
4443
};
4544
match vmm_action_from_request(parse_put_logger(&Body::new(body)).unwrap()) {
4645
VmmAction::ConfigureLogger(cfg) => assert_eq!(cfg, expected_cfg),
@@ -49,16 +48,17 @@ mod tests {
4948

5049
body = r#"{
5150
"log_path": "log",
52-
"level": "DEBUG",
51+
"level": "Debug",
5352
"show_level": false,
5453
"show_log_origin": false
5554
}"#;
5655

5756
expected_cfg = LoggerConfig {
58-
log_path: PathBuf::from("log"),
59-
level: LoggerLevel::Debug,
60-
show_level: false,
61-
show_log_origin: false,
57+
log_path: Some(PathBuf::from("log")),
58+
level: Some(log::Level::Debug),
59+
show_level: Some(false),
60+
show_log_origin: Some(false),
61+
profile_file: None,
6262
};
6363
match vmm_action_from_request(parse_put_logger(&Body::new(body)).unwrap()) {
6464
VmmAction::ConfigureLogger(cfg) => assert_eq!(cfg, expected_cfg),
@@ -67,7 +67,7 @@ mod tests {
6767

6868
let invalid_body = r#"{
6969
"invalid_field": "log",
70-
"level": "Warning",
70+
"level": "Warn",
7171
"show_level": false,
7272
"show_log_origin": false
7373
}"#;

src/cpu-template-helper/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ libc = "0.2.117"
1717
serde = { version = "1.0.136", features = ["derive"] }
1818
serde_json = "1.0.78"
1919
thiserror = "1.0.32"
20+
tracing = { version = "0.1.37", features = ["attributes"] }
2021

2122
vmm = { path = "../vmm" }
2223

src/dumbo/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ bench = false
1111
[dependencies]
1212
bitflags = "1.3.2"
1313
derive_more = { version = "0.99.17", default-features = false, features = ["from"] }
14+
tracing = { version = "0.1.37", features = ["attributes"] }
1415

1516
logger = { path = "../logger" }
1617
micro_http = { git = "https://github.com/firecracker-microvm/micro-http", rev = "4b18a04" }

src/firecracker/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ event-manager = "0.3.0"
1717
libc = "0.2.117"
1818
serde_json = "1.0.78"
1919
timerfd = "1.3.0"
20+
tracing = { version = "0.1.37", features = ["attributes"] }
21+
tracing-subscriber = "0.3.17"
2022

2123
api_server = { path = "../api_server" }
2224
logger = { path = "../logger" }

src/firecracker/src/api_server_adapter.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use api_server::{ApiRequest, ApiResponse, ApiServer, ServerError};
1313
use event_manager::{EventOps, Events, MutEventSubscriber, SubscriberOps};
1414
use logger::{error, warn, ProcessTimeReporter};
1515
use seccompiler::BpfThreadMap;
16+
use tracing::{error, warn};
1617
use utils::epoll::EventSet;
1718
use utils::eventfd::EventFd;
1819
use vmm::resources::VmResources;

src/firecracker/src/main.rs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ mod metrics;
66

77
use std::fs::{self, File};
88
use std::path::PathBuf;
9+
use std::str::FromStr;
910
use std::sync::{Arc, Mutex};
1011
use std::{io, panic, process};
1112

1213
use event_manager::SubscriberOps;
1314
use logger::{error, info, ProcessTimeReporter, StoreMetric, LOGGER, METRICS};
1415
use seccompiler::BpfThreadMap;
1516
use snapshot::Snapshot;
17+
use tracing::{error, info};
1618
use utils::arg_parser::{ArgParser, Argument};
1719
use utils::terminal::Terminal;
1820
use utils::validators::validate_instance_id;
@@ -21,7 +23,6 @@ use vmm::seccomp_filters::{get_filters, SeccompConfig};
2123
use vmm::signal_handler::register_signal_handlers;
2224
use vmm::version_map::{FC_VERSION_TO_SNAP_VERSION, VERSION_MAP};
2325
use vmm::vmm_config::instance_info::{InstanceInfo, VmState};
24-
use vmm::vmm_config::logger::{init_logger, LoggerConfig, LoggerLevel};
2526
use vmm::vmm_config::metrics::{init_metrics, MetricsConfig};
2627
use vmm::{EventManager, FcExitCode, HTTP_MAX_PAYLOAD_SIZE};
2728

@@ -279,29 +280,30 @@ fn main_exitable() -> FcExitCode {
279280

280281
if let Some(log) = arguments.single_value("log-path") {
281282
// It's safe to unwrap here because the field's been provided with a default value.
282-
let level = arguments.single_value("level").unwrap().to_owned();
283-
let logger_level = match LoggerLevel::from_string(level) {
284-
Ok(level) => level,
285-
Err(err) => {
286-
return generic_error_exit(&format!(
287-
"Invalid value for logger level: {}.Possible values: [Error, Warning, Info, \
288-
Debug]",
289-
err
290-
));
291-
}
283+
let logger_level = match arguments.single_value("level") {
284+
None => None,
285+
Some(s) => match log::Level::from_str(s) {
286+
Ok(level) => Some(level),
287+
Err(err) => {
288+
return generic_error_exit(&format!(
289+
"Invalid value for logger level: {}.Possible values: [Error, Warning, \
290+
Info, Debug]",
291+
err
292+
));
293+
}
294+
},
292295
};
293-
let show_level = arguments.flag_present("show-level");
294-
let show_log_origin = arguments.flag_present("show-log-origin");
296+
let show_level = Some(arguments.flag_present("show-level"));
297+
let show_log_origin = Some(arguments.flag_present("show-log-origin"));
295298

296-
let logger_config = LoggerConfig {
297-
log_path: PathBuf::from(log),
299+
let logger_config = vmm::vmm_config::LoggerConfig {
300+
log_path: Some(PathBuf::from(log)),
298301
level: logger_level,
299302
show_level,
300303
show_log_origin,
304+
profile_file: None,
301305
};
302-
if let Err(err) = init_logger(logger_config, &instance_info) {
303-
return generic_error_exit(&format!("Could not initialize logger: {}", err));
304-
};
306+
logger_config.init();
305307
}
306308

307309
if let Some(metrics_path) = arguments.single_value("metrics-path") {

src/firecracker/src/metrics.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use std::time::Duration;
77
use event_manager::{EventOps, Events, MutEventSubscriber};
88
use logger::{error, warn, IncMetric, METRICS};
99
use timerfd::{ClockId, SetTimeFlags, TimerFd, TimerState};
10+
use tracing::{error, warn};
1011
use utils::epoll::EventSet;
1112

1213
/// Metrics reporting period.

0 commit comments

Comments
 (0)