From 24c0224dd90533bc962d5e1a198cdc464018176c Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sat, 19 Jul 2025 11:31:07 +0300 Subject: Changed session durations metric to classic histogram, added last_activity to calculate monthly active users --- internal/server/api/api.go | 15 +++++++++++++++ .../api/migrations/20250718210459_users_last_activity.sql | 5 +++++ 2 files changed, 20 insertions(+) create mode 100644 internal/server/api/migrations/20250718210459_users_last_activity.sql (limited to 'internal/server/api') diff --git a/internal/server/api/api.go b/internal/server/api/api.go index 5159186..6c602ea 100644 --- a/internal/server/api/api.go +++ b/internal/server/api/api.go @@ -11,6 +11,7 @@ import ( "strconv" "strings" "sync" + "time" "github.com/kyren223/eko/internal/data" "github.com/kyren223/eko/internal/packet" @@ -1703,3 +1704,17 @@ func DeviceAnalytics(ctx context.Context, sess *session.Session, request *packet return nil } + +func SetLastUserActivity(ctx context.Context, sess *session.Session) { + queries := data.New(db) + now := time.Now().UnixMilli() + err := queries.UpdateUserLastActivity(ctx, data.UpdateUserLastActivityParams{ + LastActivity: &now, + ID: sess.ID(), + }) + if err != nil { + slog.ErrorContext(ctx, "database error", "error", err) + } else { + slog.DebugContext(ctx, "set user activity", "now", now) + } +} diff --git a/internal/server/api/migrations/20250718210459_users_last_activity.sql b/internal/server/api/migrations/20250718210459_users_last_activity.sql new file mode 100644 index 0000000..2fbc2c8 --- /dev/null +++ b/internal/server/api/migrations/20250718210459_users_last_activity.sql @@ -0,0 +1,5 @@ +-- +goose Up +ALTER TABLE users ADD COLUMN last_activity INTEGER; + +-- +goose Down +ALTER TABLE users DROP COLUMN last_activity; -- cgit v1.3.1