Add Prometheus metrics.

This commit is contained in:
Paul Makles
2021-01-29 21:56:37 +00:00
parent 687b300bfc
commit a76ec207b3
4 changed files with 47 additions and 10 deletions

26
Cargo.lock generated
View File

@@ -1971,6 +1971,20 @@ dependencies = [
"yansi",
]
[[package]]
name = "prometheus"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8425533e7122f0c3cc7a37e6244b16ad3a2cc32ae7ac6276e2a75da0d9c200d"
dependencies = [
"cfg-if 1.0.0",
"fnv",
"lazy_static",
"parking_lot 0.11.1",
"regex",
"thiserror",
]
[[package]]
name = "quick-error"
version = "1.2.3"
@@ -2351,7 +2365,7 @@ dependencies = [
[[package]]
name = "revolt"
version = "0.3.2"
version = "0.3.3"
dependencies = [
"async-std",
"async-tungstenite",
@@ -2377,6 +2391,7 @@ dependencies = [
"rocket",
"rocket_contrib",
"rocket_cors",
"rocket_prometheus",
"serde",
"serde_json",
"snafu",
@@ -2493,6 +2508,15 @@ dependencies = [
"version_check",
]
[[package]]
name = "rocket_prometheus"
version = "0.7.0"
source = "git+https://github.com/insertish/rocket_prometheus?rev=3d825aedb42793246c306a81fe67c5b187948983#3d825aedb42793246c306a81fe67c5b187948983"
dependencies = [
"prometheus",
"rocket",
]
[[package]]
name = "rust-argon2"
version = "0.8.3"

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt"
version = "0.3.2"
version = "0.3.3"
authors = ["Paul Makles <paulmakles@gmail.com>"]
edition = "2018"
@@ -8,15 +8,16 @@ edition = "2018"
[dependencies]
futures = "0.3.8"
many-to-many = "0.1.2"
impl_ops = "0.1.1"
many-to-many = "0.1.2"
ctrlc = { version = "3.0", features = ["termination"] }
async-std = { version = "1.8.0", features = ["tokio02", "attributes"] }
async-tungstenite = { version = "0.10.0", features = ["async-std-runtime"] }
rauth = { git = "https://gitlab.insrt.uk/insert/rauth", rev = "d48b0087cc546d2c9ef53f27d0693c8378172dfe" }
async-std = { version = "1.8.0", features = ["tokio02", "attributes"] }
hive_pubsub = { version = "0.4.3", features = ["mongo"] }
rocket_cors = { git = "https://github.com/insertish/rocket_cors", branch = "master" }
rocket_prometheus = { git = "https://github.com/insertish/rocket_prometheus", rev = "3d825aedb42793246c306a81fe67c5b187948983" }
rocket_contrib = { git = "https://github.com/SergioBenitez/Rocket", rev = "031948c1daaa146128d8a435be116476f2adde00" }
rocket = { git = "https://github.com/SergioBenitez/Rocket", rev = "031948c1daaa146128d8a435be116476f2adde00", default-features = false }
mongodb = { version = "1.1.1", features = ["tokio-runtime"], default-features = false }

View File

@@ -18,13 +18,14 @@ pub mod notifications;
pub mod routes;
pub mod util;
use chrono::Duration;
use futures::join;
use log::info;
use futures::join;
use chrono::Duration;
use rauth::auth::Auth;
use rauth::options::{EmailVerification, Options, SMTP};
use rocket_cors::AllowedOrigins;
use util::variables::{PUBLIC_URL, SMTP_FROM, SMTP_HOST, SMTP_PASSWORD, SMTP_USERNAME, USE_EMAIL};
use rocket_prometheus::PrometheusMetrics;
use rauth::options::{EmailVerification, Options, SMTP};
use util::variables::{PUBLIC_URL, SMTP_FROM, SMTP_HOST, SMTP_PASSWORD, SMTP_USERNAME, USE_EMAIL, USE_PROMETHEUS};
#[async_std::main]
async fn main() {
@@ -80,7 +81,17 @@ async fn launch_web() {
}),
);
routes::mount(rocket::ignite())
let mut rocket = rocket::ignite();
if *USE_PROMETHEUS {
info!("Enabled Prometheus metrics!");
let prometheus = PrometheusMetrics::new();
rocket = rocket
.attach(prometheus.clone())
.mount("/metrics", prometheus);
}
routes::mount(rocket)
.mount("/", rocket_cors::catch_all_options_routes())
.mount("/auth", rauth::routes::routes())
.manage(auth)

View File

@@ -19,7 +19,7 @@ lazy_static! {
env::var("REVOLT_WS_HOST").unwrap_or_else(|_| "0.0.0.0:9000".to_string());
// Application Flags
pub static ref DISABLE_REGISTRATION: bool = env::var("REVOLT_DISABLE_REGISTRATION").map_or(false, |v| v == "*1");
pub static ref DISABLE_REGISTRATION: bool = env::var("REVOLT_DISABLE_REGISTRATION").map_or(false, |v| v == "1");
pub static ref USE_EMAIL: bool = env::var("REVOLT_USE_EMAIL_VERIFICATION").map_or(
env::var("REVOLT_SMTP_HOST").is_ok()
&& env::var("REVOLT_SMTP_USERNAME").is_ok()
@@ -28,6 +28,7 @@ lazy_static! {
|v| v == *"1"
);
pub static ref USE_HCAPTCHA: bool = env::var("REVOLT_HCAPTCHA_KEY").is_ok();
pub static ref USE_PROMETHEUS: bool = env::var("REVOLT_ENABLE_PROMETHEUS").map_or(false, |v| v == "1");
// SMTP Settings
pub static ref SMTP_HOST: String =