add avg timing phases to details response

This commit is contained in:
Alex Holliday committed 2026-07-28 11:13:35 -07:00
1 parent 4182a964a6
commit 0cf8cfa5dc
2 files changed
+30 -2

No files matched your search

@@ -445,11 +445,30 @@ class MongoChecksRepository implements IChecksRepository {
$dateToString: { format: dateString, date: "$createdAt" },
},
avgResponseTime: { $avg: "$responseTime" },
avgDns: { $avg: "$timings.phases.dns" },
avgTcp: { $avg: "$timings.phases.tcp" },
avgTls: { $avg: "$timings.phases.tls" },
avgRequest: { $avg: "$timings.phases.request" },
avgFirstByte: { $avg: "$timings.phases.firstByte" },
avgDownload: { $avg: "$timings.phases.download" },
totalChecks: { $sum: 1 },
},
},
{ $sort: { _id: 1 } },
{ $project: { bucketDate: "$_id", avgResponseTime: 1, totalChecks: 1, _id: 0 } },
{
$project: {
bucketDate: "$_id",
avgResponseTime: 1,
totalChecks: 1,
avgDns: { $ifNull: ["$avgDns", 0] },
avgTcp: { $ifNull: ["$avgTcp", 0] },
avgTls: { $ifNull: ["$avgTls", 0] },
avgRequest: { $ifNull: ["$avgRequest", 0] },
avgFirstByte: { $ifNull: ["$avgFirstByte", 0] },
avgDownload: { $ifNull: ["$avgDownload", 0] },
_id: 0,
},
},
],
groupedUpChecks: [
{ $match: { status: true } },
+10 -1
View File
@@ -132,6 +132,15 @@ export interface GroupedCheck {
totalChecks: number;
}
export interface GroupedUptimeCheck extends GroupedCheck {
avgDns: number;
avgTcp: number;
avgTls: number;
avgRequest: number;
avgFirstByte: number;
avgDownload: number;
}
export interface PageSpeedGroupedCheck {
bucketDate: string;
performance: number;
@@ -143,7 +152,7 @@ export interface PageSpeedGroupedCheck {
export interface UptimeChecksResult {
monitorType: Exclude<MonitorType, "hardware" | "pagespeed">;
groupedChecks: GroupedCheck[];
groupedChecks: GroupedUptimeCheck[];
groupedUpChecks: GroupedCheck[];
groupedDownChecks: GroupedCheck[];
uptimePercentage: number;