summaryrefslogtreecommitdiff
path: root/internal/server/metrics/metrics.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-07-19 11:31:07 +0300
committerKyren223 <Kyren223@proton.me>2025-07-19 18:32:12 +0300
commit24c0224dd90533bc962d5e1a198cdc464018176c (patch)
tree89f2c400f8158e0ef83918f67d4aeb3867e2f799 /internal/server/metrics/metrics.go
parentf793203e043aaa2db38823c84500e82756348ac0 (diff)
Changed session durations metric to classic histogram, added
last_activity to calculate monthly active users
Diffstat (limited to 'internal/server/metrics/metrics.go')
-rw-r--r--internal/server/metrics/metrics.go24
1 files changed, 20 insertions, 4 deletions
diff --git a/internal/server/metrics/metrics.go b/internal/server/metrics/metrics.go
index d465b6c..e317be6 100644
--- a/internal/server/metrics/metrics.go
+++ b/internal/server/metrics/metrics.go
@@ -56,9 +56,25 @@ var UsersActive = promauto.NewGauge(prometheus.GaugeOpts{
Help: "The total number of active users",
})
+const (
+ Minute = 60
+ Hour = 60 * Minute
+ Day = 24 * Hour
+)
+
var SessionDuration = promauto.NewHistogramVec(prometheus.HistogramOpts{
- Namespace: namespace,
- Name: "session_duration_seconds",
- Help: "The duration in seconds of an authenticated session",
- NativeHistogramBucketFactor: 1.00271,
+ Namespace: namespace,
+ Name: "session_duration_seconds",
+ Help: "The duration in seconds of an authenticated session",
+ Buckets: []float64{
+ 1, 30, 5 * Minute, 10 * Minute, 30 * Minute,
+ Hour, 2 * Hour, 3 * Hour, 4 * Hour,
+ 5 * Hour, 6 * Hour, 7 * Hour, 8 * Hour,
+ 10 * Hour, 12 * Hour, 14 * Hour, 16 * Hour,
+ 18 * Hour, 20 * Hour, 22 * Hour, Day,
+ 2 * Day, 7 * Day, 14 * Day, 28 * Day,
+ },
+ // NativeHistogramBucketFactor: 1.00271,
+ // NativeHistogramMaxBucketNumber: 100,
+ // NativeHistogramMinResetDuration: time.Hour,
}, []string{"os", "arch", "term", "colorterm"})