DEV Community

Vigilmon
Vigilmon

Posted on

Vigilmon for E-Commerce Teams: Complete Guide to Cart and Checkout Monitoring

Vigilmon for E-Commerce Teams: Complete Guide to Cart and Checkout Monitoring

For e-commerce businesses, downtime isn't just an inconvenience — it's direct revenue loss. A 1-hour checkout outage during peak hours can cost thousands of dollars and damage customer trust that takes months to rebuild.

This guide covers a complete monitoring strategy for e-commerce platforms using Vigilmon, from storefront availability to payment processing.

The Cost of E-Commerce Downtime

According to industry data:

  • $5,600/minute: The average cost of downtime for mid-size e-commerce sites during peak traffic
  • 67% of customers: Won't return after a bad experience during checkout
  • 2-second delays: Can reduce conversions by 7%
  • Checkout pages: Generate 4x the revenue of any other page — and receive 4x the scrutiny when down

Critical Endpoints to Monitor

Tier 1 — Revenue-Critical (1 min intervals)

https://yourstore.com/              — Homepage
https://yourstore.com/products/     — Product catalog  
https://yourstore.com/cart/         — Shopping cart
https://yourstore.com/checkout/     — Checkout
https://yourstore.com/health/       — App health
https://yourstore.com/api/products  — Product API
https://yourstore.com/api/cart      — Cart API
Enter fullscreen mode Exit fullscreen mode

Tier 2 — Important (2 min intervals)

https://yourstore.com/account/      — Customer account
https://yourstore.com/orders/       — Order history
https://yourstore.com/search/       — Search functionality
Enter fullscreen mode Exit fullscreen mode

Tier 3 — Support (5 min intervals)

https://yourstore.com/blog/         — Content
https://yourstore.com/sitemap.xml   — SEO
Enter fullscreen mode Exit fullscreen mode

Building E-Commerce Health Endpoints

Comprehensive Health Check

// /api/health endpoint for your e-commerce backend
app.get('/api/health', async (req, res) => {
  const checks = {};
  const start = Date.now();

  // Check database
  try {
    await db.query('SELECT COUNT(*) FROM products WHERE active = true');
    checks.database = 'ok';
  } catch (e) {
    checks.database = 'error';
  }

  // Check payment provider (Stripe ping)
  try {
    const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
    await stripe.paymentIntents.list({ limit: 1 });
    checks.payment_provider = 'ok';
  } catch (e) {
    checks.payment_provider = e.statusCode === 401 ? 'auth_error' : 'error';
  }

  // Check inventory service
  try {
    await fetch(`${process.env.INVENTORY_API}/health`, { signal: AbortSignal.timeout(3000) });
    checks.inventory = 'ok';
  } catch (e) {
    checks.inventory = 'error';
  }

  // Check search service (Algolia, Elasticsearch)
  try {
    await searchClient.ping();
    checks.search = 'ok';
  } catch (e) {
    checks.search = 'degraded'; // Search down = bad UX but still sellable
  }

  // Check image CDN
  try {
    const cdnCheck = await fetch(`${process.env.CDN_URL}/health.txt`, { 
      signal: AbortSignal.timeout(2000) 
    });
    checks.cdn = cdnCheck.ok ? 'ok' : 'degraded';
  } catch (e) {
    checks.cdn = 'degraded'; // Products will show but slowly
  }

  // Critical = database + payments
  const critical = ['database', 'payment_provider'];
  const criticalOk = critical.every(k => checks[k] === 'ok');

  const status = criticalOk ? 'ok' : 'error';

  return res.status(criticalOk ? 200 : 503).json({
    status,
    latency_ms: Date.now() - start,
    checks
  });
});
Enter fullscreen mode Exit fullscreen mode

Checkout Flow Health Check

// Test the full checkout pipeline
app.get('/api/health/checkout', async (req, res) => {
  try {
    // Verify Stripe connection
    const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
    const pi = await stripe.paymentIntents.create({
      amount: 100, // $1.00 test
      currency: 'usd',
      confirm: false  // Don't charge — just create
    });
    await stripe.paymentIntents.cancel(pi.id);

    // Verify cart storage (Redis)
    await redis.set('_health_cart_test', JSON.stringify({ items: 1 }), 'EX', 10);
    const cart = await redis.get('_health_cart_test');

    if (!cart) throw new Error('Cart storage unavailable');

    res.json({
      status: 'ok',
      payment: 'ok',
      cart_storage: 'ok'
    });
  } catch (err) {
    res.status(503).json({ status: 'error', message: err.message });
  }
});
Enter fullscreen mode Exit fullscreen mode

Setting Up Vigilmon for E-Commerce

Step 1: Add Core Monitors

  1. Go to vigilmon.online and sign up free
  2. Add MonitorHTTP(S)
  3. Add your checkout URL: https://yourstore.com/checkout
  4. Interval: 1 minute
  5. Expected status: 200
  6. Alert: Immediate on failure

Step 2: Configure Response Validation

For API health endpoints:

  • Status code: 200
  • Response body contains: "status":"ok"
  • Response time: alert if >3000ms

For the checkout page:

  • Status code: 200
  • Response body contains your checkout form identifier (e.g., checkout-form or stripe-elements)

Step 3: Set Up Alert Escalation

Time Down Action
1 minute Email to on-call developer
5 minutes Slack alert to #incidents channel
15 minutes Page on-call via PagerDuty/webhook

Seasonal Traffic Monitoring

During peak periods (Black Friday, holiday sales), add extra monitors:

  • Performance checks: Lower the response time threshold (200ms → 100ms warning)
  • Inventory API: Monitor more frequently during flash sales
  • Payment processing: Extra health check during checkout

Summary

E-commerce downtime is directly measurable in lost revenue. A proper monitoring setup with Vigilmon gives you:

  • Sub-minute detection when checkout goes down
  • Layered health checks covering database, payments, cart, and CDN
  • Automatic alerting before customers start complaining
  • Historical uptime data for SLA reporting and post-mortems

Protect your checkout revenue with Vigilmon — free to start at vigilmon.online.

Top comments (0)