Skip to content

Commit c3fe163

Browse files
authored
chore: improve debugging/observability (#232)
* reduce log level for stale bundles * add further metrics * lower error log level to warn * include build info startup log line * improve startup output and provide help command line arg * update to match changes in bin-base * remove patch section from manifest
1 parent 3bda995 commit c3fe163

11 files changed

Lines changed: 275 additions & 111 deletions

File tree

‎Cargo.lock‎

Lines changed: 51 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ name = "zenith-builder-example"
1818
path = "bin/builder.rs"
1919

2020
[dependencies]
21-
init4-bin-base = { version = "0.18.0-rc.10", features = ["perms", "aws", "pylon"] }
21+
init4-bin-base = { version = "0.18.0-rc.12", features = ["perms", "aws", "pylon"] }
2222

2323
signet-constants = { version = "0.16.0-rc.13" }
2424
signet-sim = { version = "0.16.0-rc.13" }
@@ -50,6 +50,8 @@ axum = "0.7.5"
5050
backon = { version = "1.6.0", features = ["tokio-sleep"] }
5151
eyre = "0.6.12"
5252
futures-util = "0.3.31"
53+
git-version = "0.3.9"
54+
itertools = "0.14.0"
5355
openssl = { version = "0.10", features = ["vendored"] }
5456
reqwest = { version = "0.12.22", features = ["blocking", "json"] }
5557
thiserror = "2.0.17"

‎bin/builder.rs‎

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,66 @@
11
#![recursion_limit = "256"]
22

33
use builder::{
4+
config::{BuilderConfig, env_var_info},
45
service::serve_builder,
56
tasks::{
67
block::sim::SimulatorTask, cache::CacheTasks, env::EnvTask, metrics::MetricsTask,
78
submit::FlashbotsTask,
89
},
910
};
10-
use init4_bin_base::deps::tracing::{info, info_span};
11+
use eyre::bail;
12+
use git_version::git_version;
13+
use init4_bin_base::{
14+
deps::tracing::{info, info_span},
15+
utils::from_env::FromEnv,
16+
};
1117
use tokio::select;
1218

19+
const GIT_COMMIT: &str =
20+
git_version!(args = ["--always", "--match=", "--abbrev=7"], fallback = "unknown");
21+
const PKG_VERSION: &str = env!("CARGO_PKG_VERSION");
22+
23+
fn should_print_help() -> bool {
24+
std::env::args().any(|arg| {
25+
let lowercase_arg = arg.to_ascii_lowercase();
26+
lowercase_arg == "-h" || lowercase_arg == "--help"
27+
})
28+
}
29+
30+
fn print_help() {
31+
let version = env!("CARGO_PKG_VERSION");
32+
let env_vars = env_var_info();
33+
println!(
34+
r#"Signet block builder v{version}
35+
36+
Run with no args. Configuration is via the following environment variables:
37+
{env_vars}
38+
"#
39+
)
40+
}
41+
1342
// Note: Must be set to `multi_thread` to support async tasks.
1443
// See: https://docs.rs/tokio/latest/tokio/attr.main.html
1544
#[tokio::main(flavor = "multi_thread")]
1645
async fn main() -> eyre::Result<()> {
17-
let _guard = init4_bin_base::init4();
46+
if should_print_help() {
47+
print_help();
48+
return Ok(());
49+
}
50+
51+
if let Err(e) = BuilderConfig::check_inventory() {
52+
for item in e {
53+
eprintln!("missing environment variable: {}: {}", item.var, item.description);
54+
}
55+
bail!(
56+
"missing at least one required environment variable; run with '--help' to see the list"
57+
);
58+
}
59+
60+
let config = builder::config_from_env();
1861
let init_span_guard = info_span!("builder initialization").entered();
1962

20-
builder::config_from_env();
63+
info!(pkg_version = PKG_VERSION, git_commit = GIT_COMMIT, "starting builder");
2164

2265
// Pre-load the KZG settings in a separate thread.
2366
//
@@ -45,7 +88,7 @@ async fn main() -> eyre::Result<()> {
4588
let build_jh = simulator_task.spawn_simulator_task(cache_system.sim_cache, submit_channel);
4689

4790
// Start the healthcheck server
48-
let server = serve_builder(([0, 0, 0, 0], builder::config().builder_port));
91+
let server = serve_builder(([0, 0, 0, 0], config.builder_port));
4992

5093
// We have finished initializing the builder, so we can drop the init span
5194
// guard.

0 commit comments

Comments
 (0)