Skip to content

Commit

Permalink
First pass of script probes done
Browse files Browse the repository at this point in the history
Signed-off-by: Valerian Saliou <valerian@valeriansaliou.name>
  • Loading branch information
valeriansaliou committed Jun 29, 2020
1 parent 9f474f6 commit b9a8396
Show file tree
Hide file tree
Showing 10 changed files with 252 additions and 37 deletions.
29 changes: 29 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Expand Up @@ -40,6 +40,7 @@ native-tls = { version = "0.2", features = ["vendored"] }
openssl-probe = "0.1"
reqwest = { version = "0.10", features = ["native-tls-vendored", "gzip", "blocking", "json"], default-features = false }
ping = "0.2"
run_script = "0.6"
lettre = { version = "0.9", features = ["smtp-transport"], optional = true }
lettre_email = { version = "0.9", optional = true }
libstrophe = { version = "0.13", default-features = false, optional = true }
Expand Down
27 changes: 27 additions & 0 deletions config.cfg
Expand Up @@ -44,6 +44,8 @@ push_delay_dead = 20
push_system_cpu_sick_above = 0.90
push_system_ram_sick_above = 0.90

script_interval = 300

[plugins]

[plugins.rabbitmq]
Expand Down Expand Up @@ -177,3 +179,28 @@ id = "socket-client"
label = "Visitor realtime sockets"
mode = "push"
rabbitmq_queue = "client"

[[probe.service]]

id = "feature"
label = "Feature checks"

[[probe.service.node]]

id = "mysql-replication"
label = "MySQL replication status"
mode = "script"

scripts = [
'''
exit 0
''',

'''
exit 1
''',

'''
exit 2
'''
]
4 changes: 4 additions & 0 deletions src/config/config.rs
Expand Up @@ -88,6 +88,9 @@ pub struct ConfigMetrics {

#[serde(default = "defaults::metrics_push_system_ram_sick_above")]
pub push_system_ram_sick_above: f32,

#[serde(default = "defaults::metrics_script_interval")]
pub script_interval: u64,
}

#[derive(Deserialize)]
Expand Down Expand Up @@ -217,6 +220,7 @@ pub struct ConfigProbeServiceNode {
pub label: String,
pub mode: Mode,
pub replicas: Option<Vec<String>>,
pub scripts: Option<Vec<String>>,
pub http_body_healthy_match: Option<Regex>,
pub rabbitmq_queue: Option<String>,
}
4 changes: 4 additions & 0 deletions src/config/defaults.rs
Expand Up @@ -63,6 +63,10 @@ pub fn metrics_push_system_ram_sick_above() -> f32 {
0.99
}

pub fn metrics_script_interval() -> u64 {
300
}

pub fn notify_startup_notification() -> bool {
true
}
Expand Down
25 changes: 21 additions & 4 deletions src/main.rs
Expand Up @@ -24,6 +24,7 @@ extern crate ping;
extern crate regex;
extern crate reqwest;
extern crate rocket_contrib;
extern crate run_script;
extern crate serde;
extern crate time;
extern crate toml;
Expand Down Expand Up @@ -56,14 +57,18 @@ use crate::aggregator::manager::run as run_aggregator;
use crate::config::config::Config;
use crate::config::logger::ConfigLogger;
use crate::config::reader::ConfigReader;
use crate::prober::manager::{initialize_store as initialize_store_prober, run as run_prober};
use crate::prober::manager::{
initialize_store as initialize_store_prober, run_poll as run_poll_prober,
run_script as run_script_prober,
};
use crate::responder::manager::run as run_responder;

struct AppArgs {
config: String,
}

pub static THREAD_NAME_PROBER: &'static str = "vigil-prober";
pub static THREAD_NAME_PROBER_POLL: &'static str = "vigil-prober-poll";
pub static THREAD_NAME_PROBER_SCRIPT: &'static str = "vigil-prober-script";
pub static THREAD_NAME_AGGREGATOR: &'static str = "vigil-aggregator";
pub static THREAD_NAME_RESPONDER: &'static str = "vigil-responder";

Expand Down Expand Up @@ -101,7 +106,18 @@ lazy_static! {
static ref APP_CONF: Config = ConfigReader::make();
}

gen_spawn_managed!("prober", spawn_prober, THREAD_NAME_PROBER, run_prober);
gen_spawn_managed!(
"prober-poll",
spawn_poll_prober,
THREAD_NAME_PROBER_POLL,
run_poll_prober
);
gen_spawn_managed!(
"prober-script",
spawn_script_prober,
THREAD_NAME_PROBER_SCRIPT,
run_script_prober
);
gen_spawn_managed!(
"aggregator",
spawn_aggregator,
Expand Down Expand Up @@ -167,7 +183,8 @@ fn main() {
initialize_store_prober();

// Spawn probes (background thread)
thread::spawn(spawn_prober);
thread::spawn(spawn_poll_prober);
thread::spawn(spawn_script_prober);

// Spawn aggregator (background thread)
thread::spawn(spawn_aggregator);
Expand Down

0 comments on commit b9a8396

Please sign in to comment.