···
/// where to keep disk caches
28
+
/// memory cache size in MB
29
+
#[arg(long, default_value_t = 64)]
30
+
cache_memory_mb: usize,
31
+
/// disk cache size in GB
32
+
#[arg(long, default_value_t = 1)]
33
+
cache_disk_gb: usize,
34
+
/// port for HTTP server (when not using --domain)
35
+
#[arg(long, default_value_t = 3000)]
37
+
/// port for metrics/prometheus server
38
+
#[arg(long, default_value_t = 8765)]
/// the domain pointing to this server
···
let args = Args::parse();
65
-
if let Err(e) = install_metrics_server() {
77
+
if let Err(e) = install_metrics_server(args.metrics_port) {
log::error!("failed to install metrics server: {e:?}");
68
-
log::info!("metrics listening at http://0.0.0.0:8765");
80
+
log::info!("metrics listening at http://0.0.0.0:{}", args.metrics_port);
std::fs::create_dir_all(&args.cache_dir).map_err(|e| {
···
log::info!("cache dir ready at at {cache_dir:?}.");
log::info!("setting up firehose cache...");
86
-
let cache = firehose_cache(cache_dir.join("./firehose")).await?;
98
+
let cache = firehose_cache(
99
+
cache_dir.join("./firehose"),
100
+
args.cache_memory_mb,
101
+
args.cache_disk_gb,
log::info!("firehose cache ready.");
let mut tasks: tokio::task::JoinSet<Result<(), MainTaskError>> = tokio::task::JoinSet::new();
···
···
175
-
fn install_metrics_server() -> Result<(), metrics_exporter_prometheus::BuildError> {
193
+
fn install_metrics_server(port: u16) -> Result<(), metrics_exporter_prometheus::BuildError> {
log::info!("installing metrics server...");
.set_quantiles(&[0.5, 0.9, 0.99, 1.0])?
.set_bucket_duration(std::time::Duration::from_secs(300))?