split out log-ingest modules to their own crate
This commit is contained in:
Generated
+15
-2
@@ -1764,7 +1764,6 @@ name = "signal-gateway-bin"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"chrono",
|
|
||||||
"conf",
|
"conf",
|
||||||
"conf-extra",
|
"conf-extra",
|
||||||
"dotenvy",
|
"dotenvy",
|
||||||
@@ -1775,7 +1774,7 @@ dependencies = [
|
|||||||
"serde_json",
|
"serde_json",
|
||||||
"signal-gateway",
|
"signal-gateway",
|
||||||
"signal-gateway-app-code",
|
"signal-gateway-app-code",
|
||||||
"syslog_rfc5424",
|
"signal-gateway-log-ingest",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-util",
|
"tokio-util",
|
||||||
"toml",
|
"toml",
|
||||||
@@ -1784,6 +1783,20 @@ dependencies = [
|
|||||||
"url",
|
"url",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "signal-gateway-log-ingest"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"chrono",
|
||||||
|
"conf",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
"signal-gateway",
|
||||||
|
"syslog_rfc5424",
|
||||||
|
"tokio",
|
||||||
|
"tracing",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "signal-hook-registry"
|
name = "signal-hook-registry"
|
||||||
version = "1.4.7"
|
version = "1.4.7"
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ members = [
|
|||||||
"signal-gateway",
|
"signal-gateway",
|
||||||
"signal-gateway-app-code",
|
"signal-gateway-app-code",
|
||||||
"signal-gateway-bin",
|
"signal-gateway-bin",
|
||||||
|
"signal-gateway-log-ingest",
|
||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ rustls-tls = ["signal-gateway/rustls-tls"]
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
signal-gateway = { path = "../signal-gateway" }
|
signal-gateway = { path = "../signal-gateway" }
|
||||||
signal-gateway-app-code = { path = "../signal-gateway-app-code" }
|
signal-gateway-app-code = { path = "../signal-gateway-app-code" }
|
||||||
|
signal-gateway-log-ingest = { path = "../signal-gateway-log-ingest" }
|
||||||
|
|
||||||
async-trait = { workspace = true }
|
async-trait = { workspace = true }
|
||||||
chrono = { workspace = true }
|
|
||||||
conf = { workspace = true }
|
conf = { workspace = true }
|
||||||
conf-extra = { workspace = true }
|
conf-extra = { workspace = true }
|
||||||
dotenvy = { workspace = true }
|
dotenvy = { workspace = true }
|
||||||
@@ -30,7 +30,6 @@ reqwest = { workspace = true }
|
|||||||
url = { workspace = true }
|
url = { workspace = true }
|
||||||
serde = { workspace = true }
|
serde = { workspace = true }
|
||||||
serde_json = { workspace = true }
|
serde_json = { workspace = true }
|
||||||
syslog_rfc5424 = { workspace = true }
|
|
||||||
toml = { workspace = true }
|
toml = { workspace = true }
|
||||||
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
|
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
|
||||||
tokio-util = { workspace = true }
|
tokio-util = { workspace = true }
|
||||||
|
|||||||
@@ -19,11 +19,7 @@ use admin_http::AdminHttpConfig;
|
|||||||
mod app_code;
|
mod app_code;
|
||||||
use app_code::AppCodeConfigExt;
|
use app_code::AppCodeConfigExt;
|
||||||
|
|
||||||
mod syslog;
|
use signal_gateway_log_ingest::{JsonConfig, SyslogConfig};
|
||||||
use syslog::SyslogConfig;
|
|
||||||
|
|
||||||
pub mod json;
|
|
||||||
use json::JsonConfig;
|
|
||||||
|
|
||||||
/// Top-level configuration for signal-gateway.
|
/// Top-level configuration for signal-gateway.
|
||||||
#[derive(Conf, Debug)]
|
#[derive(Conf, Debug)]
|
||||||
@@ -48,7 +44,7 @@ pub struct Config {
|
|||||||
#[conf(flatten, prefix)]
|
#[conf(flatten, prefix)]
|
||||||
admin_http: Option<AdminHttpConfig>,
|
admin_http: Option<AdminHttpConfig>,
|
||||||
/// Application source code configurations for Claude tools.
|
/// 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>,
|
app_code: Vec<AppCodeConfigExt>,
|
||||||
#[conf(flatten, serde(flatten))]
|
#[conf(flatten, serde(flatten))]
|
||||||
gateway: GatewayConfig,
|
gateway: GatewayConfig,
|
||||||
|
|||||||
@@ -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 }
|
||||||
@@ -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;
|
||||||
@@ -247,9 +247,7 @@ impl ClaudeWorker {
|
|||||||
let after_chars = self.message_buffer_chars();
|
let after_chars = self.message_buffer_chars();
|
||||||
warn!(
|
warn!(
|
||||||
"Compaction rate-limited: dropped {} oldest messages ({} -> {} chars)",
|
"Compaction rate-limited: dropped {} oldest messages ({} -> {} chars)",
|
||||||
dropped,
|
dropped, before_chars, after_chars
|
||||||
before_chars,
|
|
||||||
after_chars
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user