split out log-ingest modules to their own crate

This commit is contained in:
Chris Beck
2025-12-13 21:40:30 -07:00
parent 2ecc614bb5
commit 2682ee8ee6
10 changed files with 49 additions and 13 deletions
Generated
+15 -2
View File
@@ -1764,7 +1764,6 @@ name = "signal-gateway-bin"
version = "0.1.0"
dependencies = [
"async-trait",
"chrono",
"conf",
"conf-extra",
"dotenvy",
@@ -1775,7 +1774,7 @@ dependencies = [
"serde_json",
"signal-gateway",
"signal-gateway-app-code",
"syslog_rfc5424",
"signal-gateway-log-ingest",
"tokio",
"tokio-util",
"toml",
@@ -1784,6 +1783,20 @@ dependencies = [
"url",
]
[[package]]
name = "signal-gateway-log-ingest"
version = "0.1.0"
dependencies = [
"chrono",
"conf",
"serde",
"serde_json",
"signal-gateway",
"syslog_rfc5424",
"tokio",
"tracing",
]
[[package]]
name = "signal-hook-registry"
version = "1.4.7"
+1
View File
@@ -5,6 +5,7 @@ members = [
"signal-gateway",
"signal-gateway-app-code",
"signal-gateway-bin",
"signal-gateway-log-ingest",
]
[workspace.package]
+1 -2
View File
@@ -18,9 +18,9 @@ rustls-tls = ["signal-gateway/rustls-tls"]
[dependencies]
signal-gateway = { path = "../signal-gateway" }
signal-gateway-app-code = { path = "../signal-gateway-app-code" }
signal-gateway-log-ingest = { path = "../signal-gateway-log-ingest" }
async-trait = { workspace = true }
chrono = { workspace = true }
conf = { workspace = true }
conf-extra = { workspace = true }
dotenvy = { workspace = true }
@@ -30,7 +30,6 @@ reqwest = { workspace = true }
url = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
syslog_rfc5424 = { workspace = true }
toml = { workspace = true }
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
tokio-util = { workspace = true }
+2 -6
View File
@@ -19,11 +19,7 @@ use admin_http::AdminHttpConfig;
mod app_code;
use app_code::AppCodeConfigExt;
mod syslog;
use syslog::SyslogConfig;
pub mod json;
use json::JsonConfig;
use signal_gateway_log_ingest::{JsonConfig, SyslogConfig};
/// Top-level configuration for signal-gateway.
#[derive(Conf, Debug)]
@@ -48,7 +44,7 @@ pub struct Config {
#[conf(flatten, prefix)]
admin_http: Option<AdminHttpConfig>,
/// Application source code configurations for Claude tools.
#[conf(long, env, value_parser = serde_json::from_str)]
#[conf(long, env, value_parser = serde_json::from_str, default, default_help_str = "[]")]
app_code: Vec<AppCodeConfigExt>,
#[conf(flatten, serde(flatten))]
gateway: GatewayConfig,
+18
View File
@@ -0,0 +1,18 @@
[package]
name = "signal-gateway-log-ingest"
version = "0.1.0"
edition.workspace = true
[lints]
workspace = true
[dependencies]
signal-gateway = { path = "../signal-gateway" }
chrono = { workspace = true }
conf = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
syslog_rfc5424 = { workspace = true }
tokio = { workspace = true }
tracing = { workspace = true }
+11
View File
@@ -0,0 +1,11 @@
//! Log ingestion modules for signal-gateway.
//!
//! This crate provides listeners for receiving log messages in various formats:
//! - JSON (logstash-compatible) over UDP and TCP
//! - Syslog (RFC 5424) over UDP and TCP
pub mod json;
pub mod syslog;
pub use json::JsonConfig;
pub use syslog::SyslogConfig;
+1 -3
View File
@@ -247,9 +247,7 @@ impl ClaudeWorker {
let after_chars = self.message_buffer_chars();
warn!(
"Compaction rate-limited: dropped {} oldest messages ({} -> {} chars)",
dropped,
before_chars,
after_chars
dropped, before_chars, after_chars
);
}