@@ -8,7 +8,7 @@ import type { Filter, SimpleQueryConfig } from "../types";
88 * - site_id: Website identifier
99 * - url: Monitored URL
1010 * - timestamp: Check timestamp
11- * - status: 1 = up, 0 = down
11+ * - status: 1 = up, 0 = down, 2 = pending
1212 * - http_code: HTTP response code
1313 * - ttfb_ms: Time to first byte (ms)
1414 * - total_ms: Total response time (ms)
@@ -25,9 +25,9 @@ export const UptimeBuilders: Record<string, SimpleQueryConfig> = {
2525 sql : `
2626 SELECT
2727 COUNT(*) as total_checks,
28- sum (status) as successful_checks,
29- COUNT(*) - sum(status ) as failed_checks,
30- round((sum (status) / COUNT(*)) * 100, 2) as uptime_percentage,
28+ countIf (status = 1 ) as successful_checks,
29+ countIf(status = 0 ) as failed_checks,
30+ if((countIf(status = 1) + countIf(status = 0)) = 0, 0, round((countIf (status = 1 ) / (countIf(status = 1) + countIf(status = 0))) * 100, 2) ) as uptime_percentage,
3131 avg(total_ms) as avg_response_time,
3232 quantile(0.50)(total_ms) as p50_response_time,
3333 quantile(0.75)(total_ms) as p75_response_time,
@@ -73,9 +73,9 @@ export const UptimeBuilders: Record<string, SimpleQueryConfig> = {
7373 SELECT
7474 ${ timeGroup } as date,
7575 COUNT(*) as total_checks,
76- sum (status) as successful_checks,
77- COUNT(*) - sum(status ) as failed_checks,
78- round((sum (status) / COUNT(*)) * 100, 2) as uptime_percentage,
76+ countIf (status = 1 ) as successful_checks,
77+ countIf(status = 0 ) as failed_checks,
78+ if((countIf(status = 1) + countIf(status = 0)) = 0, 0, round((countIf (status = 1 ) / (countIf(status = 1) + countIf(status = 0))) * 100, 2) ) as uptime_percentage,
7979 avg(total_ms) as avg_response_time,
8080 quantile(0.50)(total_ms) as p50_response_time,
8181 quantile(0.95)(total_ms) as p95_response_time,
@@ -230,9 +230,9 @@ export const UptimeBuilders: Record<string, SimpleQueryConfig> = {
230230 SELECT
231231 probe_region as region,
232232 COUNT(*) as total_checks,
233- sum (status) as successful_checks,
234- COUNT(*) - sum(status ) as failed_checks,
235- round((sum (status) / COUNT(*)) * 100, 2) as uptime_percentage,
233+ countIf (status = 1 ) as successful_checks,
234+ countIf(status = 0 ) as failed_checks,
235+ if((countIf(status = 1) + countIf(status = 0)) = 0, 0, round((countIf (status = 1 ) / (countIf(status = 1) + countIf(status = 0))) * 100, 2) ) as uptime_percentage,
236236 avg(total_ms) as avg_response_time,
237237 quantile(0.95)(total_ms) as p95_response_time
238238 FROM ${ UPTIME_TABLE }
0 commit comments