Add YAML-configured ACLs with Basic and IP authorization
This commit is contained in:
@@ -15,6 +15,7 @@ pub(crate) struct Metrics {
|
||||
active_tunnels: UpDownCounter<i64>,
|
||||
tunnel_duration: Histogram<f64>,
|
||||
tunnel_bytes: Counter<u64>,
|
||||
acl_decisions: Counter<u64>,
|
||||
}
|
||||
|
||||
impl Metrics {
|
||||
@@ -60,6 +61,11 @@ impl Metrics {
|
||||
.with_description("Bytes relayed through completed CONNECT tunnels")
|
||||
.with_unit("By")
|
||||
.build(),
|
||||
acl_decisions: meter
|
||||
.u64_counter("hermes.proxy.acl.decisions")
|
||||
.with_description("Number of ACL decisions by outcome and reason")
|
||||
.with_unit("{decision}")
|
||||
.build(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,6 +128,16 @@ impl Metrics {
|
||||
);
|
||||
}
|
||||
|
||||
pub fn acl_decision(&self, decision: &str, reason: &str) {
|
||||
self.acl_decisions.add(
|
||||
1,
|
||||
&[
|
||||
KeyValue::new("acl.decision", decision.to_owned()),
|
||||
KeyValue::new("acl.reason", reason.to_owned()),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
pub fn tunnel_started(&self) -> ActiveTunnel {
|
||||
self.active_tunnels.add(1, &[]);
|
||||
ActiveTunnel {
|
||||
|
||||
Reference in New Issue
Block a user