DEV Community

Vigilmon
Vigilmon

Posted on

How to Monitor Your Strapi CMS API with Vigilmon

How to Monitor Your Strapi CMS API with Vigilmon

Strapi is the leading open-source headless CMS. If your frontend depends on Strapi's REST or GraphQL API, any downtime means your website stops rendering content. This guide shows how to monitor your Strapi deployment with Vigilmon.

Strapi Endpoints to Monitor

Endpoint Purpose
https://your-strapi.com/_health Built-in health check
https://your-strapi.com/api/ REST API root
https://your-strapi.com/graphql GraphQL endpoint
https://your-strapi.com/admin/ Admin panel

Step 1: Use Strapi's Built-in Health Check

Strapi includes a /_health endpoint that returns 204 when the server is healthy:

GET https://your-strapi.com/_health
Expected response: 204 No Content
Enter fullscreen mode Exit fullscreen mode

This is the best endpoint to monitor — it's designed for this purpose.

Step 2: Set Up Vigilmon

  1. Sign up at vigilmon.online (free, no credit card)
  2. Add Monitor → enter https://your-strapi.com/_health
  3. Expected status: 204
  4. Check interval: 5 minutes (free) or 1 minute (paid)
  5. Enable multi-region consensus: 2+ regions must confirm failure
  6. Add email alerts

Step 3: Monitor the REST API Separately

The health endpoint confirms Strapi is running, but your REST API could have content-level issues. Add a second monitor for a public collection endpoint:

URL: https://your-strapi.com/api/articles?pagination[limit]=1
Expected: 200
Enter fullscreen mode Exit fullscreen mode

This checks that the database connection is working and content is queryable.

Step 4: Strapi on Cloud Platforms

Render

If hosted on Render, also monitor your service URL. Render auto-deploys can occasionally leave a service in a bad state.

Railway

Railway deployments can occasionally fail silently. Monitor both /_health and a content endpoint.

DigitalOcean App Platform

App Platform scales to zero on free tiers — add a keep-warm monitor or upgrade to a paid plan.

Self-hosted (Ubuntu VPS)

Monitor /_health and set up a process monitor via a systemd watchdog or PM2:

# Ensure Strapi restarts on crash
pm2 start ecosystem.config.js
pm2 save
pm2 startup
Enter fullscreen mode Exit fullscreen mode

Vigilmon will catch the downtime; PM2 will auto-restart.

Add a Custom Health Check for Database Connectivity

Strapi's /_health only checks if the Node.js process is running, not if the database is connected. Add a custom route:

// src/extensions/users-permissions/strapi-server.js
// OR create a custom route in src/api/health/routes/health.js

module.exports = {
  routes: [
    {
      method: 'GET',
      path: '/health/deep',
      handler: async (ctx) => {
        try {
          await strapi.db.query('api::article.article').findMany({ limit: 1 })
          ctx.body = { status: 'ok', db: 'connected' }
        } catch (err) {
          ctx.status = 503
          ctx.body = { status: 'error' }
        }
      },
      config: { auth: false }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Point Vigilmon at https://your-strapi.com/api/health/deep.

Failure Scenarios Vigilmon Catches

Scenario Caught?
Node.js process crash ✅ Yes
Database connection failure ✅ Yes (with deep check)
Strapi memory OOM ✅ Yes
Port binding failure ✅ Yes
SSL certificate expired ✅ Yes

Public Status Page

Share your Vigilmon status page with your content team:

https://vigilmon.online/status/your-strapi-app
Enter fullscreen mode Exit fullscreen mode

Conclusion

Strapi's /_health endpoint makes monitoring straightforward. With Vigilmon:

  • ✅ Monitors Strapi's built-in health endpoint
  • ✅ Multi-region consensus prevents false alerts
  • ✅ Free tier covers most projects
  • ✅ Public status page for your team

Start monitoring at vigilmon.online.

Top comments (0)