Skip to main content

System Health Monitoring

Track system issues, service statuses, and metric trends with MongoDB aggregation.

Source: src/system-health/
Permission: MANAGE_SYSTEM (mutations), VIEW_SYSTEM_HEALTH (reads)

API Endpoints

MethodEndpointDescription
GET/system-health/overviewSystem health summary
GET/system-health/issuesList system issues
POST/system-health/issuesCreate issue record
PATCH/system-health/issues/:id/statusUpdate issue status
POST/system-health/metricsRecord metric sample
GET/system-health/metrics/trendMetric trend (aggregation)
GET/system-health/servicesList service statuses
POST/system-health/servicesSave service status

Service Methods

SystemHealthService

MethodDescription
getOverview()Aggregated health summary
listIssues()Query SystemIssue records
createIssue(data)Create new issue
updateIssueStatus(id, status)Update issue status
recordMetric(data)Store SystemMetricSample
getMetricTrend(metric, range)MongoDB aggregation pipeline for trends
listServices()Query SystemServiceStatus records
saveServiceStatus(data)Upsert service status

Metric Trend Aggregation

Uses MongoDB $match$group$sort pipeline to compute time-bucketed averages:

await this.prisma.systemMetricSample.aggregateRaw({
pipeline: [
{ $match: { metricName, createdAt: { $gte: startDate } } },
{ $group: { _id: { $dateToString: { format, date: "$createdAt" } }, avg: { $avg: "$value" } } },
{ $sort: { _id: 1 } },
],
});
  • SystemIssue — Issue tracking records
  • SystemMetricSample — Time-series metric data points
  • SystemServiceStatus — Service health status records
  • MaintenanceModule — Scheduled maintenance checks
  • DashboardModule — Consumes health data for display