chore: add prometheus metrics

This commit is contained in:
Paul Makles
2023-07-04 17:52:40 +01:00
parent 815c3fe99e
commit 76150db293
10 changed files with 52 additions and 21 deletions

41
Cargo.lock generated
View File

@@ -2496,6 +2496,20 @@ dependencies = [
"yansi",
]
[[package]]
name = "prometheus"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c"
dependencies = [
"cfg-if 1.0.0",
"fnv",
"lazy_static",
"memchr",
"parking_lot",
"thiserror",
]
[[package]]
name = "querystring"
version = "1.1.0"
@@ -2843,7 +2857,7 @@ dependencies = [
[[package]]
name = "revolt-bonfire"
version = "0.6.4"
version = "0.6.5"
dependencies = [
"async-std",
"async-tungstenite",
@@ -2860,7 +2874,7 @@ dependencies = [
[[package]]
name = "revolt-database"
version = "0.6.4"
version = "0.6.5"
dependencies = [
"async-recursion",
"async-std",
@@ -2891,7 +2905,7 @@ dependencies = [
[[package]]
name = "revolt-delta"
version = "0.6.4"
version = "0.6.5"
dependencies = [
"async-channel",
"async-std",
@@ -2920,6 +2934,7 @@ dependencies = [
"rocket",
"rocket_authifier",
"rocket_empty",
"rocket_prometheus",
"schemars",
"serde",
"serde_json",
@@ -2931,7 +2946,7 @@ dependencies = [
[[package]]
name = "revolt-models"
version = "0.6.4"
version = "0.6.5"
dependencies = [
"revolt-permissions",
"revolt_optional_struct",
@@ -2942,7 +2957,7 @@ dependencies = [
[[package]]
name = "revolt-permissions"
version = "0.6.4"
version = "0.6.5"
dependencies = [
"async-std",
"async-trait",
@@ -2956,7 +2971,7 @@ dependencies = [
[[package]]
name = "revolt-presence"
version = "0.6.4"
version = "0.6.5"
dependencies = [
"async-std",
"log",
@@ -2967,7 +2982,7 @@ dependencies = [
[[package]]
name = "revolt-quark"
version = "0.6.4"
version = "0.6.5"
dependencies = [
"async-lock",
"async-recursion",
@@ -3020,7 +3035,7 @@ dependencies = [
[[package]]
name = "revolt-result"
version = "0.6.4"
version = "0.6.5"
dependencies = [
"revolt_okapi",
"revolt_rocket_okapi",
@@ -3243,6 +3258,16 @@ dependencies = [
"uncased",
]
[[package]]
name = "rocket_prometheus"
version = "0.10.0-rc.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3e70efcf6b0234723d0d295b95d64283ed02bb98a8a3f0c8c7ebb5b8da69165"
dependencies = [
"prometheus",
"rocket",
]
[[package]]
name = "rust-argon2"
version = "1.0.0"

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-bonfire"
version = "0.6.4"
version = "0.6.5"
license = "AGPL-3.0-or-later"
edition = "2021"

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-database"
version = "0.6.4"
version = "0.6.5"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = [ "Paul Makles <me@insrt.uk>" ]
@@ -22,10 +22,10 @@ default = [ "mongodb", "async-std-runtime" ]
[dependencies]
# Core
revolt-result = { version = "0.6.4", path = "../result" }
revolt-models = { version = "0.6.4", path = "../models" }
revolt-presence = { version = "0.6.4", path = "../presence" }
revolt-permissions = { version = "0.6.4", path = "../permissions", features = [ "serde", "bson" ] }
revolt-result = { version = "0.6.5", path = "../result" }
revolt-models = { version = "0.6.5", path = "../models" }
revolt-presence = { version = "0.6.5", path = "../presence" }
revolt-permissions = { version = "0.6.5", path = "../permissions", features = [ "serde", "bson" ] }
# Utility
log = "0.4"

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-models"
version = "0.6.4"
version = "0.6.5"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = [ "Paul Makles <me@insrt.uk>" ]
@@ -18,7 +18,7 @@ default = [ "serde", "partials" ]
[dependencies]
# Core
revolt-permissions = { version = "0.6.4", path = "../permissions" }
revolt-permissions = { version = "0.6.5", path = "../permissions" }
# Serialisation
revolt_optional_struct = { version = "0.2.0", optional = true }

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-permissions"
version = "0.6.4"
version = "0.6.5"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = [ "Paul Makles <me@insrt.uk>" ]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-presence"
version = "0.6.4"
version = "0.6.5"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = [ "Paul Makles <me@insrt.uk>" ]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-result"
version = "0.6.4"
version = "0.6.5"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = [ "Paul Makles <me@insrt.uk>" ]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-delta"
version = "0.6.4"
version = "0.6.5"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <paulmakles@gmail.com>"]
edition = "2018"
@@ -47,6 +47,7 @@ lettre = "0.10.0-alpha.4"
rocket = { version = "0.5.0-rc.2", default-features = false, features = ["json"] }
rocket_empty = { version = "0.1.1", features = ["schema"] }
rocket_authifier = { version = "1.0.7" }
rocket_prometheus = "0.10.0-rc.3"
# spec generation
schemars = "0.8.8"

View File

@@ -8,6 +8,7 @@ extern crate serde_json;
pub mod routes;
pub mod util;
use rocket_prometheus::PrometheusMetrics;
use std::net::Ipv4Addr;
use async_std::channel::unbounded;
@@ -65,7 +66,11 @@ async fn rocket() -> _ {
// Configure Rocket
let rocket = rocket::build();
let prometheus = PrometheusMetrics::new();
routes::mount(rocket)
.attach(prometheus.clone())
.mount("/metrics", prometheus)
.mount("/", revolt_quark::web::cors::catch_all_options_routes())
.mount("/", revolt_quark::web::ratelimiter::routes())
.mount("/swagger/", revolt_quark::web::swagger::routes())

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-quark"
version = "0.6.4"
version = "0.6.5"
edition = "2021"
license = "AGPL-3.0-or-later"