DEV Community

Vigilmon
Vigilmon

Posted on

How to Monitor Your SolidStart Application with Vigilmon

SolidStart is the official meta-framework for SolidJS — bringing server-side rendering, file-based routing, and full-stack capabilities to one of the fastest UI frameworks in the JavaScript ecosystem. As SolidStart apps move into production, the same monitoring challenges that apply to any web application apply here: you need to know when your app goes down, slows down, or starts returning errors.

This guide walks through monitoring your SolidStart application with Vigilmon.

Why SolidStart Applications Need External Monitoring

SolidStart apps can be deployed to Node.js servers, Cloudflare Workers, Netlify, Vercel, AWS Lambda, and more. Each deployment target has its own failure modes:

  • Node.js: Server crashes, OOM errors, port conflicts
  • Edge/Cloudflare Workers: Cold starts, CPU time limits, KV or D1 unavailability
  • Vercel/Netlify: Build failures, function timeouts, region-specific issues
  • Lambda: Cold starts, concurrency limits, IAM permission errors

External monitoring from Vigilmon checks your app from the outside — the same perspective your users have — regardless of where it's deployed.

Setting Up SolidStart Monitoring with Vigilmon

Step 1: Add a Health Check API Route

SolidStart supports API routes (server functions and route handlers). Add a dedicated health check:

SolidStart API route (src/routes/api/health.ts):

import { APIEvent } from '@solidjs/start/server';

export async function GET(event: APIEvent) {
  try {
    // Add any dependency checks here (DB, external APIs, etc.)
    // For example, if using a database:
    // await db.query('SELECT 1');

    return new Response(
      JSON.stringify({
        status: 'healthy',
        framework: 'solidstart',
        timestamp: new Date().toISOString()
      }),
      {
        status: 200,
        headers: { 'Content-Type': 'application/json' }
      }
    );
  } catch (error) {
    return new Response(
      JSON.stringify({
        status: 'unhealthy',
        error: error instanceof Error ? error.message : 'Unknown error'
      }),
      {
        status: 503,
        headers: { 'Content-Type': 'application/json' }
      }
    );
  }
}
Enter fullscreen mode Exit fullscreen mode

This creates a health endpoint at https://yourapp.com/api/health.

Step 2: Add Dependency Checks (Optional but Recommended)

If your SolidStart app uses a database (e.g., Drizzle ORM, Prisma, or direct SQL), extend the health check:

import { db } from '~/lib/db';

export async function GET() {
  const checks = {
    database: 'unknown' as 'healthy' | 'unhealthy',
  };

  try {
    await db.execute('SELECT 1');
    checks.database = 'healthy';
  } catch {
    checks.database = 'unhealthy';
  }

  const allHealthy = Object.values(checks).every(v => v === 'healthy');

  return new Response(JSON.stringify({ status: allHealthy ? 'healthy' : 'degraded', checks }), {
    status: allHealthy ? 200 : 503,
    headers: { 'Content-Type': 'application/json' }
  });
}
Enter fullscreen mode Exit fullscreen mode

Step 3: Sign Up for Vigilmon

Head to vigilmon.online. The free tier gives you 10 monitors with 3-minute check intervals — no credit card required.

Step 4: Add an HTTP Monitor

  1. Click Add Monitor in the dashboard
  2. Select HTTP monitor type
  3. Enter your health check URL: https://yourapp.com/api/health
  4. Set expected status code: 200
  5. Enable multi-region checks (Vigilmon checks from US, EU, and AP simultaneously)
  6. Set check interval (3 min on free, lower on paid plans from $6/month)

Step 5: Also Monitor Your Main Application Route

Add a second monitor targeting your app's homepage or main entry point. This catches:

  • SSR rendering failures
  • Static asset serving issues
  • CDN or edge network problems

Step 6: Configure Alerts

Set up alert channels in Alert Settings:

Channel When to Use
Email Personal / small team notification
Slack Team #alerts channel
Discord Developer community server
PagerDuty On-call escalation for critical apps
Webhooks Automated remediation (restart workers, clear caches)

Key Metrics to Track for SolidStart Apps

Response time: SolidStart with SSR can be sensitive to server load and database query times. Vigilmon tracks response time over time — sudden spikes are early warning signs.

Multi-region availability: Vigilmon's checks from US, EU, and AP reveal if an issue is localized (e.g., a specific Cloudflare region) or global.

Uptime percentage: Track your actual availability over time. Even a 99.5% uptime means ~3.6 hours of downtime per month.

Alert Configuration Tips

Require multi-region confirmation: Configure Vigilmon to only alert after 2+ regions confirm an outage. This prevents false alarms from transient network blips, especially for edge-deployed SolidStart apps.

Response time alerts: For SSR apps, a response time > 3-5 seconds often signals a problem worth investigating even before full failure. Configure a response-time alert threshold.

Separate staging and production monitors: Deploy staging and production to different URLs and add separate Vigilmon monitors for each environment.

Heartbeat Monitors for SolidStart Cron Jobs

If your SolidStart app runs scheduled tasks (via cron job services like Trigger.dev, Inngest, or a simple server cron), use Vigilmon's heartbeat monitor to verify they execute on schedule. Your task pings a unique Vigilmon URL on completion; if pings stop, you're alerted.

The SolidJS Ecosystem Is Growing Fast — Don't Skip Monitoring

SolidStart is production-ready and teams are deploying real applications with it. As the ecosystem matures, having solid monitoring infrastructure in place from day one is table stakes.

Set up your first monitor at vigilmon.online — it takes less than 5 minutes and it's completely free to start. Paid plans start at $6/month when you need more monitors or faster check intervals.

Top comments (0)