about summary refs log tree commit diff
path: root/users/grfn/xanthous/server/src/metrics.rs
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2021-11-07T21·15-0500
committergrfn <grfn@gws.fyi>2021-11-07T21·18+0000
commit5327d238e3f292e8c5d9b161df1ee3b56665aa96 (patch)
treea440adcf72f863b1046c1707c456d4f62395e8bb /users/grfn/xanthous/server/src/metrics.rs
parent77f0d62a2cc87e2a927e2389531b4aa16000139a (diff)
feat(xanthous/server): Add simple prometheus metrics r/3020
Add a prometheus exporter and some simple prometheus metrics, so that I
can look at dashboards and get alerts for things like lots of
connections

Change-Id: Ic1e0568200299dc852b74da647a6354267ee7576
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3811
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Diffstat (limited to 'users/grfn/xanthous/server/src/metrics.rs')
-rw-r--r--users/grfn/xanthous/server/src/metrics.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/users/grfn/xanthous/server/src/metrics.rs b/users/grfn/xanthous/server/src/metrics.rs
new file mode 100644
index 000000000000..6912cdd9c9ee
--- /dev/null
+++ b/users/grfn/xanthous/server/src/metrics.rs
@@ -0,0 +1,24 @@
+pub use ::metrics::*;
+
+pub mod reported {
+    /// Counter: Connections accepted on the TCP listener
+    pub const CONNECTIONS_ACCEPTED: &str = "ssh.connections.accepted";
+
+    /// Histogram: Connection duration
+    pub const CONNECTION_DURATION: &str = "ssh.connections.duration";
+
+    /// Gauge: Currently active connections
+    pub const ACTIVE_CONNECTIONS: &str = "ssh.connections.active";
+
+    /// Gauge: Currently running xanthous processes
+    pub const RUNNING_PROCESSES: &str = "ssh.child.processes";
+}
+
+pub fn register() {
+    use reported::*;
+
+    register_counter!(CONNECTIONS_ACCEPTED);
+    register_histogram!(CONNECTION_DURATION);
+    register_gauge!(ACTIVE_CONNECTIONS);
+    register_gauge!(RUNNING_PROCESSES);
+}