diff --git a/agent/Cargo.toml b/agent/Cargo.toml new file mode 100644 index 0000000..2427d63 --- /dev/null +++ b/agent/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "nanometrics-agent" +version = "0.1.0" +edition = "2021" + +[lib] +name = "nanometrics_agent" +path = "src/lib.rs" + +[[bin]] +name = "nanometrics-agent" +path = "src/main.rs" + +[profile.release] +strip = true +opt-level = "z" +lto = true +codegen-units = 1 + +[dependencies] +sysinfo = { version = "0.30", default-features = false, features = ["system", "networks", "disk"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +toml = "0.8" +rumqttc = { version = "0.24", default-features = false, features = ["use-native-tls"] } + +[dev-dependencies] +tempfile = "3" diff --git a/agent/config.toml.example b/agent/config.toml.example new file mode 100644 index 0000000..cd78688 --- /dev/null +++ b/agent/config.toml.example @@ -0,0 +1,43 @@ +[server] +ip = "10.0.0.50" +port = 9999 + +[protocols.udp] +enabled = true + +[protocols.mqtt] +enabled = false +host = "10.0.0.3" +port = 1883 +topic_base = "nanometrics/agents" +auto_discovery = true +birth_message = true +last_will = true + +[metrics.cpu] +udp = true +mqtt = true + +[metrics.memory] +udp = true +mqtt = true + +[metrics.disk] +udp = true +mqtt = false + +[metrics.network] +udp = false +mqtt = false + +[metrics.uptime] +udp = true +mqtt = false + +[metrics.temperature] +udp = false +mqtt = false + +[metrics.smart] +udp = true +mqtt = false diff --git a/agent/src/lib.rs b/agent/src/lib.rs new file mode 100644 index 0000000..622c39f --- /dev/null +++ b/agent/src/lib.rs @@ -0,0 +1,4 @@ +pub mod config; +pub mod metrics; +pub mod payload; +pub mod transport;