Monitoring as Code.
Or just ask your agent.
Write your API monitors, alerts and status pages as YAML or JavaScript, keep them in Git, and deploy them from CI. Don't want to write config? Connect an MCP client and set them up in plain English.
# define once, deploy everywhere $ npx @loadfocus/monitoring deploy Plan: 4 to create, 1 to update, 0 to delete ✓ check checkout-api created us-east-1, eu-west-1 ✓ check login-flow created browser · 3 steps ✓ alertRule api-p95-slow created → Slack #ops ✓ statusPage acme-status created acme.loadfoc.us ✓ group web updated Deployed 5 resources in 2.3s. Monitoring is now live.
Your monitors live next to your code
No clicking through dashboards. Declare checks, assertions and alerts in plain YAML or typed JavaScript. Review them in pull requests. Deploy them on merge.
Git is the source of truth
Every monitor is versioned, reviewable and reproducible across environments.
Safe plan & apply
A server-computed plan shows exactly what will be created, updated or deleted, with guarded orphan-deletes.
YAML or JavaScript
Pick declarative configs or typed constructs. Same engine, same result.
kind: check type: api logicalId: checkout-api name: Checkout API schedule: "60" # seconds locations: [us-east-1, eu-west-1] request: url: https://api.acme.com/checkout method: POST headers: - { key: Authorization, value: "Bearer {{secrets.TOKEN}}" } assertions: - { type: statusCode, comparison: equals, value: 200 } - { type: responseTime, comparison: below, value: 800 }
One CLI for the whole lifecycle
The same six commands work on your machine and in CI. @loadfocus/monitoring is on npm under Apache-2.0.
Scaffold a project with config and a sample monitor.
Compile locally + server dry-run before anything ships.
Run checks ad-hoc with no persistence, exit code drives CI.
Reconcile state: create, update, delete. --dry-run to preview.
Run already-deployed checks on demand, e.g. after a release.
Tear down resources cleanly. Guarded behind --yes in CI.
Already running monitors in the LoadFocus app? import generates YAML from your live setup, so you can adopt code without rebuilding anything.
Built for CI. Destructive changes exit with a confirmation-required code instead of hanging on a prompt, so you don't get accidental deletes or stuck pipelines.
Or skip the config, just ask your agent
LoadFocus runs a Model Context Protocol server at mcp.loadfocus.com. Point Claude, Cursor or any MCP client at it and create, run and check monitors by asking. Nothing to install beyond the connection.
Monitoring in your deploy pipeline
Test checks against staging on every PR, then deploy them to production when you merge. Monitoring changes ship with the code that needs them.
GitHub Actions & GitLab CI
Copy-paste workflows ship in the repo. Set two secrets and go.
Test → deploy → trigger
Validate on PR, apply on merge, smoke-test the new release, all from CI.
name: monitoring-as-code on: [push, pull_request] jobs: reconcile: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: npx @loadfocus/monitoring test # dry-run on every PR - if: github.ref == 'refs/heads/main' run: npx @loadfocus/monitoring deploy --yes env: LOADFOCUS_API_KEY: ${{ secrets.LF_KEY }} LOADFOCUS_TEAM_ID: ${{ secrets.LF_TEAM }}
Eight resource kinds, one workflow
Checks are only the start. Groups, alerts, dashboards and status pages are declarative too.
API, browser, multistep, TCP and heartbeat monitors.
Shared locations, channels and mute or activate.
Threshold alerts on time, status and duration.
Suppress alerts on a recurring schedule.
Uptime, p95 and sparkline status tiles.
Public, branded, on your own domain.
Email, Slack, Teams, webhook, Discord, PagerDuty, Opsgenie.
Secrets and runtime vars, referenced inline.
LoadFocus vs Checkly
The same code-first workflow, plus a live MCP server and an open-source CLI.
| LoadFocus | Checkly | |
|---|---|---|
| Monitors as code (YAML / JS) | ✓ Both | ✓ TS |
| Native MCP server for AI agents | ✓ 40 tools, live | × Skills only |
| Open-source CLI | ✓ Apache-2.0 | Partial |
| Load testing (k6 / JMeter) | ✓ | × |
| Status pages as code | ✓ | ✓ |
| CI/CD workflows included | ✓ GH + GitLab | ✓ |
Monitoring as Code, answered
Q.What is monitoring as code?
Defining your monitors, alerts and status pages in version-controlled files instead of clicking through a UI, so they are reviewable, reproducible and deployable through CI/CD.
Q.Do I need to know TypeScript?
No. Use declarative YAML for the simplest path, or typed JavaScript constructs if you prefer code. Both compile to the same resources.
Q.How is this different from Checkly?
Same code-first paradigm, plus a live MCP server so AI agents create monitors conversationally, an Apache-2.0 CLI, and load testing on the same platform.
Q.How do AI agents connect?
Point any MCP client at mcp.loadfocus.com, authenticate via OAuth, and 40 tools become available instantly.
Q.Is it safe to run in CI?
Yes. Deploys compute a plan first, guard orphan-deletes, and exit with a confirmation code instead of hanging on prompts.
Q.What can I manage as code?
Checks (API, browser, multistep, TCP, heartbeat), groups, alert rules, maintenance windows, dashboards, status pages, alert channels and variables.
Set up your monitoring in an afternoon
Install the CLI or connect an MCP client. Your first monitor can be running in minutes.