tutorial

How to Monitor Biome with Vigilmon

Biome is a blazing-fast Rust-based JS/TS toolchain — but CI pipelines and pre-commit hooks still need uptime. Here's how to monitor your Biome-powered pipelines, webhook integrations, and artifact servers with Vigilmon.

Biome is a single-binary, Rust-powered toolchain that replaces ESLint, Prettier, and import sorters — running 35–50× faster than the tools it replaces. But when Biome sits inside CI pipelines, pre-commit hook servers, or artifact stores, those surrounding services need monitoring that Biome itself cannot provide. Vigilmon watches every HTTP endpoint, heartbeat, and SSL certificate that keeps your Biome-powered workflow healthy.

What You'll Set Up

  • HTTP monitors for any web dashboard or API surface exposed by your Biome CI pipeline
  • Cron heartbeat monitors to confirm scheduled lint/format jobs complete on time
  • SSL certificate alerts for internal tooling domains
  • Webhook endpoint monitors so downstream consumers know when Biome results are published

Prerequisites

  • Biome 1.x installed globally or via a biome.json-configured project
  • CI/CD pipeline (GitHub Actions, GitLab CI, or similar) that runs Biome checks
  • A free Vigilmon account

Step 1: Monitor Your CI Pipeline Health Endpoint

Many CI platforms expose a health or status API. If your self-hosted CI runner (e.g., GitHub Actions self-hosted, Gitea Act Runner) has a web interface, add a Vigilmon monitor for it:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter the runner's URL: https://ci.yourdomain.com or your runner API health endpoint.
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

A dead runner means Biome checks never run, which means broken code can merge undetected. Vigilmon catches runner outages before your team notices.


Step 2: Add a Health Endpoint to Your Biome Wrapper Service

If you expose Biome results through a custom webhook relay or lint server, add a /health route:

Node.js / Express wrapper

import { execa } from 'execa';

app.get('/health', async (req, res) => {
  try {
    await execa('biome', ['--version']);
    res.json({ status: 'ok', tool: 'biome' });
  } catch {
    res.status(503).json({ status: 'error', tool: 'biome' });
  }
});

GitHub Actions — expose lint status via a simple API

# .github/workflows/biome.yml
name: Biome Check
on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: biomejs/setup-biome@v2
        with:
          version: latest
      - name: Run Biome
        run: biome ci .

Point Vigilmon at your CI status API to track whether the last biome ci run succeeded.


Step 3: Heartbeat Monitoring for Scheduled Biome Jobs

If Biome runs on a schedule (nightly format check, weekly security scan), use Vigilmon's cron heartbeat to confirm the job completes:

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Set the expected ping interval to match your schedule (e.g. 1440 minutes for a daily job).
  3. Copy the heartbeat URL: https://vigilmon.online/heartbeat/abc123.
  4. Append the curl call to your scheduled script:
#!/bin/bash
# Nightly Biome format and lint check
cd /srv/my-project
npx @biomejs/biome ci . --reporter=json > /var/log/biome-nightly.json 2>&1
EXIT_CODE=$?

if [ $EXIT_CODE -eq 0 ]; then
  curl -s https://vigilmon.online/heartbeat/abc123
fi

exit $EXIT_CODE

If the job crashes, times out, or finds errors and exits non-zero, it never pings Vigilmon. You get alerted after the expected interval passes — before anyone has a chance to merge code that skipped the check.


Step 4: Monitor Biome Configuration Artifact Storage

Shared teams often store a canonical biome.json on an internal file server or CDN so all projects pull the same config. Monitor that storage endpoint:

  1. In Vigilmon, click Add MonitorHTTP / HTTPS.
  2. Enter the URL of your shared config: https://config.yourdomain.com/biome.json.
  3. Set Expected HTTP status to 200.
  4. Optionally enable Expected response body contains and enter "linter" to confirm the file is not empty.
  5. Click Save.

If the config server goes down, projects that fetch the remote config on install will silently fall back to defaults or fail CI builds.


Step 5: SSL Certificate Alerts for Tooling Domains

Biome tooling dashboards, config servers, and webhook relays all need valid TLS. Add SSL monitoring for each domain:

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

Repeat for each internal tooling subdomain. A 21-day window gives your team time to renew before Biome-related CI jobs start failing on certificate errors.


Step 6: Webhook Endpoint Monitoring

If Biome check results are pushed to downstream services (Slack, GitHub PR annotations, custom dashboards) via webhooks, monitor those consumer endpoints:

  1. In Vigilmon, click Add MonitorHTTP / HTTPS.
  2. Enter the webhook consumer URL.
  3. Set Expected HTTP status to 200 or 204.
  4. Set Check interval to 5 minutes.
  5. Click Save.

A dead webhook consumer means Biome results go nowhere — no PR annotations, no Slack notifications. Teams stop trusting the toolchain when feedback loops break silently.


Step 7: 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 each monitor — transient network blips should not page your on-call.
  3. For scheduled heartbeats, set Consecutive failures before alert to 1 — a missed heartbeat is always significant.

Automate maintenance windows during Biome upgrades so you don't get paged while updating the toolchain binary:

# Before upgrading Biome
curl -X POST https://vigilmon.online/api/maintenance \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"monitor_id": "abc123", "duration_minutes": 10}'

npm install --save-dev @biomejs/biome@latest

Summary

| Monitor | Target | What It Catches | |---|---|---| | CI runner health | https://ci.yourdomain.com | Runner outage, Biome never runs | | Cron heartbeat | Heartbeat URL | Scheduled job crash or timeout | | Config artifact | https://config.yourdomain.com/biome.json | Shared config server down | | SSL certificate | Each tooling domain | Certificate expiry | | Webhook consumer | Downstream endpoint | Silent result delivery failure |

Biome makes linting and formatting fast — but speed only matters if the pipeline running Biome stays up. With Vigilmon watching your CI runners, heartbeats, config servers, and SSL certificates, your Biome-powered workflow has the same reliability guarantees as the code it checks.

Monitor your app with Vigilmon

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

Start free →