Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm

slingshot: add configurable port and host to slingshot, configurable port to metrics

Changed files
+17 -5
slingshot
+10 -4
slingshot/src/main.rs
···
/// disk cache size in GB
#[arg(long, default_value_t = 1)]
cache_disk_gb: usize,
/// the domain pointing to this server
///
/// if present:
···
let args = Args::parse();
-
if let Err(e) = install_metrics_server() {
log::error!("failed to install metrics server: {e:?}");
} else {
-
log::info!("metrics listening at http://0.0.0.0:8765");
}
std::fs::create_dir_all(&args.cache_dir).map_err(|e| {
···
args.domain,
args.acme_contact,
args.certs,
server_shutdown,
)
.await?;
···
Ok(())
}
-
fn install_metrics_server() -> Result<(), metrics_exporter_prometheus::BuildError> {
log::info!("installing metrics server...");
let host = [0, 0, 0, 0];
-
let port = 8765;
PrometheusBuilder::new()
.set_quantiles(&[0.5, 0.9, 0.99, 1.0])?
.set_bucket_duration(std::time::Duration::from_secs(300))?
···
/// disk cache size in GB
#[arg(long, default_value_t = 1)]
cache_disk_gb: usize,
+
/// port for HTTP server (when not using --domain)
+
#[arg(long, default_value_t = 3000)]
+
port: u16,
+
/// port for metrics/prometheus server
+
#[arg(long, default_value_t = 8765)]
+
metrics_port: u16,
/// the domain pointing to this server
///
/// if present:
···
let args = Args::parse();
+
if let Err(e) = install_metrics_server(args.metrics_port) {
log::error!("failed to install metrics server: {e:?}");
} else {
+
log::info!("metrics listening at http://0.0.0.0:{}", args.metrics_port);
}
std::fs::create_dir_all(&args.cache_dir).map_err(|e| {
···
args.domain,
args.acme_contact,
args.certs,
+
args.port,
server_shutdown,
)
.await?;
···
Ok(())
}
+
fn install_metrics_server(port: u16) -> Result<(), metrics_exporter_prometheus::BuildError> {
log::info!("installing metrics server...");
let host = [0, 0, 0, 0];
PrometheusBuilder::new()
.set_quantiles(&[0.5, 0.9, 0.99, 1.0])?
.set_bucket_duration(std::time::Duration::from_secs(300))?
+7 -1
slingshot/src/server.rs
···
domain: Option<String>,
acme_contact: Option<String>,
certs: Option<PathBuf>,
shutdown: CancellationToken,
) -> Result<(), ServerError> {
let repo = Arc::new(repo);
···
)
.await
} else {
-
run(TcpListener::bind("127.0.0.1:3000"), app, shutdown).await
}
}
···
domain: Option<String>,
acme_contact: Option<String>,
certs: Option<PathBuf>,
+
port: u16,
shutdown: CancellationToken,
) -> Result<(), ServerError> {
let repo = Arc::new(repo);
···
)
.await
} else {
+
run(
+
TcpListener::bind(format!("127.0.0.1:{port}")),
+
app,
+
shutdown,
+
)
+
.await
}
}