tutorial

Monitoring Rill with Vigilmon

Rill is an operational BI framework for fast, SQL-based dashboards — but when the dev server or scheduled report deployment goes down, you need to know immediately. Here's how to monitor Rill endpoints, dashboard availability, and deployment heartbeats with Vigilmon.

Rill is an operational BI framework that lets you build fast, SQL-powered dashboards and data apps directly from your data sources. Whether you're running rill start in development or deploying scheduled reports via the Rill Cloud or a self-hosted pipeline, uptime matters — a broken dashboard is a blind analyst. Vigilmon gives you HTTP uptime checks, endpoint health monitoring, and scheduled deployment heartbeat alerts for your Rill environment.

What You'll Set Up

  • HTTP uptime monitor for the Rill dev server (default port 9009)
  • /health endpoint check to confirm the Rill runtime is responsive
  • Dashboard load endpoint monitoring for critical dashboards
  • Cron heartbeat for scheduled Rill report deployments
  • SSL certificate expiry alerts for production Rill deployments

Prerequisites

  • Rill 0.40+ running via rill start or a production Rill deployment
  • At least one dashboard accessible over HTTP
  • A free Vigilmon account

Step 1: Monitor the Rill Dev Server

The Rill dev server runs on port 9009 by default and serves both the UI and the API. Start by adding a basic HTTP monitor to confirm the server is reachable:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter the Rill server URL: http://localhost:9009 (or your remote host, e.g. https://rill.yourdomain.com).
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

For remote deployments, replace localhost with the server's hostname or IP and ensure port 9009 is accessible (or that a reverse proxy routes it to a standard port).


Step 2: Monitor the /health Endpoint

Rill exposes a /health endpoint that confirms the runtime service is operational. This is a richer check than just probing the root URL — it verifies that Rill's internal services have started successfully:

  1. Click Add MonitorHTTP / HTTPS.
  2. Set the URL to http://localhost:9009/health (or your production equivalent).
  3. Set Expected HTTP status to 200.
  4. Optionally, set Expected response body to contain "ok" to validate the response payload.
  5. Set Check interval to 1 minute.
  6. Click Save.

If Rill returns a non-200 response on /health, it typically indicates a configuration error or a source connection failure that prevents dashboards from loading.


Step 3: Monitor a Dashboard Load Endpoint

Individual dashboards are served under the /api/v1/instances/{instanceId}/queries/ path. To verify that a critical dashboard is actually loading data (not just that the server is up), monitor a lightweight dashboard endpoint:

  1. Identify your Rill instance ID — it appears in the URL when you open any dashboard in the Rill UI (e.g. http://localhost:9009/default).
  2. Add an HTTP monitor for the dashboard listing endpoint:
    http://localhost:9009/v1/instances/default/resources
    
  3. Set Expected HTTP status to 200.
  4. Set Check interval to 5 minutes — dashboard data queries can be heavier than health checks.
  5. Click Save.

This catches cases where the Rill server is running but the model or source data pipeline has failed and dashboards can't render.


Step 4: Heartbeat Monitoring for Scheduled Report Deployments

Rill projects can be deployed and refreshed on a schedule — either via rill deploy in CI/CD or via custom scripts that push updated source data. Use Vigilmon's cron heartbeat to confirm these deployments complete successfully:

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Set the Expected ping interval to match your deployment schedule (e.g. 60 minutes for hourly refreshes, 1440 minutes for daily).
  3. Copy the heartbeat URL (e.g. https://vigilmon.online/heartbeat/abc123).
  4. Add a curl call at the end of your deployment script:
#!/bin/bash
set -e

# Pull latest data
./scripts/refresh_sources.sh

# Deploy Rill project
rill deploy --project ./my-rill-project

# Signal success to Vigilmon
curl -s https://vigilmon.online/heartbeat/abc123

For GitHub Actions or other CI pipelines:

- name: Deploy Rill
  run: |
    rill deploy --project ./my-rill-project
    curl -s https://vigilmon.online/heartbeat/abc123

If the deploy script fails before reaching the curl command, Vigilmon will alert after the expected interval passes — signaling a missed deployment without any additional instrumentation.


Step 5: SSL Certificate Alerts

For production Rill deployments served over HTTPS via a reverse proxy (nginx, Caddy, or Rill Cloud), add SSL certificate expiry monitoring:

  1. Open the HTTP monitor you created for your Rill endpoint.
  2. Enable Monitor SSL certificate under the SSL section.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

For Caddy or nginx-managed certificates that auto-renew via Let's Encrypt, a 21-day alert window gives you time to investigate renewal failures before users see certificate warnings.

If you're hosting Rill on a custom domain behind Caddy:

rill.yourdomain.com {
    reverse_proxy localhost:9009
}

Caddy handles TLS automatically — but Vigilmon's SSL check ensures auto-renewal is actually working.


Step 6: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and add Slack, email, or a webhook.
  2. Set Consecutive failures before alert to 2 on HTTP monitors — a single probe failure can be a transient network blip.
  3. For heartbeat monitors, set the alert to trigger as soon as the heartbeat is missed — there's no benefit to waiting for a second miss on a scheduled deployment.

Summary

| Monitor | Target | What It Catches | |---|---|---| | Dev server | http://rill-host:9009 | Server crash, port blocked | | Health endpoint | /health | Runtime startup failures, source errors | | Dashboard endpoint | /v1/instances/default/resources | Data pipeline failures | | Cron heartbeat | Heartbeat URL | Failed or missed deployments | | SSL certificate | Production domain | Let's Encrypt renewal failure |

Rill makes building SQL-powered dashboards fast — Vigilmon makes sure they stay available. With uptime checks on the server, health endpoint, and dashboard APIs, plus heartbeat monitoring for your deployment pipeline, you'll know the moment your Rill environment needs attention.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →