feat: add periodic server stats reporting and logging

- Introduced ServerStatsReport and ServerStatsCollector for tracking server activity.
- Implemented ServerStatsReportService to generate and persist stats reports periodically.
- Added configuration options for stats reporting in appsettings and .env.example.
- Enhanced logging in ChannelsController and ModerationController to include stats-related actions.
- Updated database context and migrations to support new ServerStatsReport entity.
- Adjusted logging levels in IrcGatewayService and ChatService for better performance.
This commit is contained in:
HueByte
2026-07-17 22:14:55 +02:00
parent 0c2e8eae87
commit 7525f8b1d8
15 changed files with 964 additions and 11 deletions
+16
View File
@@ -75,3 +75,19 @@ Irc__Enabled=false
# ── Logging ──────────────────────────────────────────────────────────
# Serilog__MinimumLevel__Default=Information
# ── Server logs room ─────────────────────────────────────────────────
# Read-only system channel that live-streams Serilog events to Mod+ users.
# ServerLogs__Enabled=true
# ServerLogs__RoomName=server-logs
# ServerLogs__MinRole=Mod
# ServerLogs__MinLevel=Information
# ServerLogs__BacklogLines=100
# ServerLogs__LogDirectory=logs
# ServerLogs__LogFilePattern=echohub-server-*.log
# ── Periodic stats report ────────────────────────────────────────────
# Aggregate activity snapshot logged as JSON and persisted to the DB.
# Stats__Enabled=true
# Stats__IntervalHours=6
# Stats__RetentionDays=90