## System Metrics Collection
- Add SystemMetrics module with CPU, memory, disk, and system info collection
- Integrate Erlang :os_mon application (cpu_sup, memsup, disksup)
- Collect and format active system alarms with structured JSON output
- Replace simple "Hello" messages with rich system data in MQTT payloads
## MQTT Integration
- Update MqttClient to publish comprehensive metrics every 30 seconds
- Add :os_mon to application dependencies for system monitoring
- Maintain backward compatibility with existing dashboard consumption
## Documentation Updates
- Update CLAUDE.md with Phase 1 completion status and implementation details
- Completely rewrite README.md to reflect current project capabilities
- Document alarm format, architecture, and development workflow
## Technical Improvements
- Graceful error handling for metrics collection failures
- Clean alarm formatting: {severity, path/details, id}
- Dashboard automatically receives and displays real-time system data and alerts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
46 lines
912 B
Elixir
46 lines
912 B
Elixir
defmodule SystemStatsDaemon.MixProject do
|
|
use Mix.Project
|
|
|
|
def project do
|
|
[
|
|
app: :systant,
|
|
version: "0.1.0",
|
|
elixir: "~> 1.18",
|
|
start_permanent: Mix.env() == :prod,
|
|
deps: deps(),
|
|
releases: releases()
|
|
]
|
|
end
|
|
|
|
# Run "mix help compile.app" to learn about applications.
|
|
def application do
|
|
[
|
|
extra_applications: [:logger, :os_mon],
|
|
mod: {Systant.Application, []}
|
|
]
|
|
end
|
|
|
|
# Run "mix help deps" to learn about dependencies.
|
|
defp deps do
|
|
[
|
|
{:tortoise, "~> 0.9.5"},
|
|
{:jason, "~> 1.4"}
|
|
]
|
|
end
|
|
|
|
defp releases do
|
|
[
|
|
systant: [
|
|
include_executables_for: [:unix],
|
|
applications: [runtime_tools: :permanent],
|
|
include_erts: true,
|
|
strip_beams: false,
|
|
env: %{
|
|
"RELEASE_DISTRIBUTION" => "none",
|
|
"RELEASE_NODE" => "nonode@nohost"
|
|
}
|
|
]
|
|
]
|
|
end
|
|
end
|