47 lines
1.7 KiB
Rust
47 lines
1.7 KiB
Rust
use discord_client::DiscordNotifier;
|
|
use dotenvy::dotenv;
|
|
use system_monitor::SystemMonitor;
|
|
|
|
use crate::{actors, adapters, app};
|
|
|
|
pub fn get_run_service() -> app::service::Service {
|
|
dotenv().ok();
|
|
let notifier = DiscordNotifier::new(
|
|
std::env::var("DISCORD_WEBHOOK").expect("DISCORD_WEBHOOK environment variable not set"),
|
|
"System Monitor".to_string(),
|
|
"https://cdn.shopify.com/s/files/1/0262/1423/6212/files/Lord_of_the_Rings_eye_of_Sauron_-_Ghtic.com_-_Blog.png?v=1579680018".to_string(),
|
|
);
|
|
let discord_adapter =
|
|
adapters::driven::for_sending_notification::discord_client::DiscordAdapter::new(notifier);
|
|
|
|
let monitor =
|
|
SystemMonitor::new(system_monitor::resource_threshold::get_default_resource_thresholds());
|
|
let system_monitor_adapter =
|
|
adapters::driven::for_monitoring_system::system_monitor::SystemMonitorAdapter::new(monitor);
|
|
|
|
let formatter = actors::driven::for_formatting_message::alert_formatter::AlertFormatter;
|
|
|
|
app::service::new(
|
|
Box::new(discord_adapter),
|
|
Box::new(system_monitor_adapter),
|
|
Box::new(formatter),
|
|
)
|
|
}
|
|
|
|
pub fn get_get_service() -> app::service::Service {
|
|
let notifier = actors::driven::for_sending_notification::print::StdoutNotificationActor::new();
|
|
|
|
let monitor =
|
|
SystemMonitor::new(system_monitor::resource_threshold::get_default_resource_thresholds());
|
|
let system_monitor_adapter =
|
|
adapters::driven::for_monitoring_system::system_monitor::SystemMonitorAdapter::new(monitor);
|
|
|
|
let formatter = actors::driven::for_formatting_message::alert_formatter::AlertFormatter;
|
|
|
|
app::service::new(
|
|
Box::new(notifier),
|
|
Box::new(system_monitor_adapter),
|
|
Box::new(formatter),
|
|
)
|
|
}
|