Know when your APIs go down
before your users do

URL-first API monitoring with a published Express package for wiring monitored services into your setup. Add endpoints by pasting a full URL and track health from the same dashboard.

Install the Express package, sign in, then create API groups, endpoints (paste the full URL), and API keys.

index.ts
import express from "express";
import { createMonitorMiddleware } from "sysmonitoringexpress";

const app = express();
app.use(createMonitorMiddleware({ apiKey: process.env.SYS_MONITOR_API_KEY }));

app.get("/api/hello", (req, res) => res.send("ok"));
app.listen(3000);
Built around the workflow this app already supports
Google AuthPrismaPostgreSQLRedissysmonitoringexpressCloudflare Cron

Built for the monitoring flow in this repo

Current frontend, Prisma schema, scheduled workers, and dashboard work together: register APIs by URL and collect responses.

5m
Probe interval
p90/99
Latency tracked
90d
History retained
POST /api/v1/payments - last 30 days99.3% uptime
30 days agotoday

The pieces already wired into your product

URL Ownership (legacy)
Previously supported DNS/meta verification
Domain verification has been removed. You can now monitor any full URL by pasting the endpoint directly into the dashboard.
Scheduled Monitoring
timer-based API probes
The serverless API checker reads registered endpoints, sends HTTP probes, stores response data, and tags results with the configured region.
Latency Percentiles
p90 and p99 tracked
Raw response rows, daily stats, API metrics, and digest data feed the dashboard cards and table views without recalculating every request.
Auto Incidents
threshold-based detection
Redis-backed failure windows open ongoing incidents and mark them resolved when healthy checks recover below the configured threshold.
90-Day Metrics
dashboard-friendly history
Uptime, response history, incidents, and daily aggregates are stored in PostgreSQL so the dashboard can query them through Prisma with confidence.
API Keys
dashboard-managed access
Users can create and manage API keys from the dashboard alongside API groups and monitored endpoints.

From setup to insight in minutes

A practical lifecycle connects endpoint setup, scheduled checks, and dashboard reporting without changing screens or systems.

1
Set up monitoring
Create a group, add an API endpoint, and configure the method, path, headers, params, query values, and optional body data.
2
Add APIs to monitor
Create API groups, then add endpoints with method, path, headers, params, query values, and optional body data.
3
Monitor continuously
The Azure timer function checks saved APIs, writes response rows, and updates Redis-backed incident state.
4
View results
Review uptime bars, p90 and p99 latency, API status rows, and the most recent incidents from the dashboard.
MONITORING LIFECYCLE
Phase 1: Domain
PENDING -> VERIFIED
Verification check
Phase 2: API
CREATE -> READY
Scheduled probe
Phase 3: Monitor
RUN -> CONTINUOUS
The setup matches the app flow: authenticate, onboard a domain, add APIs then let scheduled jobs collect data.
OK Verify DNS or meta ownership
OK Create API groups and endpoints
OK Run timed HTTP probes
OK Detect and resolve incidents

Fast queries across all your monitoring data

Raw events, daily aggregates, and latency percentiles are stored separately so dashboards stay fast even across 90 days of history.

QueryTime
Last 24h incidents14ms
30d latency p998ms
Daily uptime %32ms
Raw events (1h window)21ms
DATA PIPELINE & QUERIES
Raw Events
Per probe basis
Aggregation
Daily Stats
Count + Uptime %
PostgreSQL
API Metrics
p90 and p99
Prisma queries, Redis caching, daily stats, and TDigest summaries keep overview screens responsive.
OK 14ms - Last 24h incidents
OK 8ms - 30d p99 latency
OK 32ms - Daily uptime %
OK 21ms - 1h raw events

Automatic incident tracking, start to finish

No manual triage. Threshold-based failure windows open incidents. Successful probe windows can resolve them. Recent activity appears directly in the dashboard.

ONGOING
Multiple failures within threshold open an incident automatically. Alerts are triggered. No manual intervention required.
SUMMARY
Each incident stores the API, affected regions, status, start time, and optional end time for the dashboard timeline.
RECOVERY
Consecutive successful checks can auto-resolve incidents. All-clear signal is logged.
AUDIT
Incident rows stay linked to monitored APIs so reliability patterns can be reviewed alongside uptime and latency.
INC-0042RESOLVED
POST /api/v1/payments - IN
13:45:22ONGOING - 3 failures in the lookback window
13:46:01Updated - threshold crossed again, duration extended
13:47:15RESOLVED - recovery confirmed (5 consecutive UP)

Monitor from where your users are

Region values are part of the schema and probe results. Use them to separate India, US, EU, Singapore, and South America performance.

India
IN
87ms
p99 latency
United States
US
142ms
p99 latency
Singapore
SG
156ms
p99 latency
Europe
EU
189ms
p99 latency

Built from the pieces in this monorepo

The monitoring stack in this workspace uses web routes, Prisma, scheduled functions, Redis, PostgreSQL, and shared packages.

Next.js Web App
App Router frontend with NextAuth, dashboard APIs, Prisma access, and reusable UI components.
apps/web
Azure Timer
Scheduled function that reads saved APIs, performs HTTP checks, stores responses, and manages incident transitions.
apps/serverless/hitApi
Cloudflare Cron
Scheduled worker for API metrics and daily stat aggregation through Hyperdrive/PostgreSQL.
apps/serverless/dailyworker
Express Package
Published npm package for Express projects that want to connect monitored services to the platform.
npm i sysmonitoringexpress

What the product supports now

NowGoogle sign-inAuthentication is wired through NextAuth with the Prisma adapter and Google as the active provider.
NowDomain managementThe dashboard no longer blocks access behind a setup gate; API monitoring and grouping are available immediately after sign-in.
NowAPI groups and endpointsDashboard forms support grouped APIs with method, path, headers, params, query values, and optional request bodies.
NowScheduled checksThe serverless checker stores response status, response time, status code, and region for every monitored endpoint.
NowDashboard metricsOverview cards show API groups, APIs, incidents, and aggregated p90 and p99 response times.
NowPublished Express packageThe `sysmonitoringexpress` package is available on npm for Express app integrations.

Install the package, then connect the dashboard

Add the Express package to your service, then use Google sign-in to verify a domain, create API groups, and manage endpoints.

npm i sysmonitoringexpressnpm
Add domain, API group, and endpointdashboard