summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-07-17 16:06:18 +0300
committerKyren223 <Kyren223@proton.me>2025-07-19 18:32:12 +0300
commitaaea258a21226a893025a65222e244c6b3f4454c (patch)
tree235209d385a5b49f9e790970f343eddf9929e44a /internal/server
parent52eb471e8901cc75525c3b5b7640fd4703ab699b (diff)
Added metrics for sus/malicious connections
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/metrics/metrics.go6
-rw-r--r--internal/server/server.go2
2 files changed, 8 insertions, 0 deletions
diff --git a/internal/server/metrics/metrics.go b/internal/server/metrics/metrics.go
index 4937787..1ce907c 100644
--- a/internal/server/metrics/metrics.go
+++ b/internal/server/metrics/metrics.go
@@ -26,6 +26,12 @@ var RequestProcessingDuration = promauto.NewHistogramVec(prometheus.HistogramOpt
NativeHistogramBucketFactor: 1.00271,
}, []string{"request_type", "dropped"})
+var ConnectionsRateLimited = promauto.NewCounterVec(prometheus.CounterOpts{
+ Namespace: namespace,
+ Name: "connections_rate_limited_total",
+ Help: "The total number of rate limited connections",
+}, []string{"category"})
+
var ConnectionsEstablished = promauto.NewCounter(prometheus.CounterOpts{
Namespace: namespace,
Name: "connections_established_total",
diff --git a/internal/server/server.go b/internal/server/server.go
index 90d24a3..ecb5234 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -636,6 +636,7 @@ func (s *server) isRateLimited(ip uint32) bool {
s.ipConns[ip] = entry
return false
} else if entry.count < RateLimitCountThresholdMalicious {
+ metrics.ConnectionsRateLimited.WithLabelValues("suspicious").Inc()
if entry.count == RateLimitCountThresholdSus {
slog.Warn("suspicious connection activity", "ip", ipStr, "count", entry.count)
// Only log the first one
@@ -644,6 +645,7 @@ func (s *server) isRateLimited(ip uint32) bool {
s.ipConns[ip] = entry
return true
} else {
+ metrics.ConnectionsRateLimited.WithLabelValues("malicious").Inc()
if entry.count == RateLimitCountThresholdMalicious {
slog.Warn("potential malicious connection behavior", "ip", ipStr, "count", entry.count)
// Only log the first one