Monitoring as Code
Agents run on code. So does your monitoring
Every Checkly check, alert, and status page is a TypeScript construct in your repo. That makes your entire reliability setup something an AI agent can write, test on real global infrastructure, and deploy to production. You review the pull request.
Trusted by teams that review everything before it ships
From commit to production monitor in three commands
The check you write is the check you test, and the check you test is the monitor that runs in production. One artifact, one pipeline, and it works exactly the same whether the author is an engineer or an agent.
Write
Checks are TypeScript constructs that live next to the code they cover. Your editor autocompletes them, your linter checks them, your teammates review them.
Test
One command runs every check on Checkly’s global infrastructure, from your terminal or your CI pipeline. Failing checks fail the build, before anything reaches production.
Deploy
The code that passed in CI becomes your production monitoring. No copy-pasting into a dashboard, no drift between what you tested and what runs.
npx checkly init scaffolds the project; test and deploy take it from there.
“The ease of integration in our pipeline was remarkable. We have everything defined in a CI/CD pipeline using GitHub Actions using the CLI. Everything scaffolds out based on a configuration, so we just update a configuration file which specifies the environments, what services are there, what the URLs are, and from that, we just generate all the groups and their checks.”
Tobias Deekens
Principal Frontend Engineer · commercetools
Scale with a for loop
Constructs are plain TypeScript. Map over your API routes, read an OpenAPI spec, or share defaults through a check group. Hundreds of monitors from one file, updated in one commit.
Your Playwright tests are already monitors
Point PlaywrightCheck at your existing Playwright config and promote tagged specs to scheduled production monitors. No rewrite, no second test suite to maintain.
CI is the only deploy path you need
Run checkly test on every pull request and checkly deploy on merge. GitHub Actions, GitLab CI, Jenkins: if it runs your pipeline, it runs your monitoring.
If you can click it, you can code it
Your entire reliability setup is constructs: checks and uptime monitors, but also the alert channels, status pages, and maintenance windows around them. One repo describes all of it.
ApiCheck
HTTP calls with assertions on status, latency, headers, and body.
View docsBrowserCheck
Playwright scripts that click through real user flows.
View docsPlaywrightCheck
Your existing Playwright project, run on a schedule.
View docsMultiStepCheck
Chained API calls with shared state, in one check.
View docsUrlMonitor
Lightweight uptime pings against any URL.
View docsTcpMonitor
Port-level reachability and connect latency.
View docsDnsMonitor
Resolution checks with record-level assertions.
View docsHeartbeatMonitor
Cron jobs and pipelines that must phone home.
View docsCheckGroupV2
Shared locations, frequency, and alerting for a set of checks.
View docsSlackAlertChannel
Where alerts land. One of 18+ channel constructs.
View docsStatusPage
A public status page, deployed from the same repo.
View docsMaintenanceWindow
Planned downtime without the alert noise.
View docsPlus dashboards, private locations, ICMP monitors, retry strategies, and escalation policies. The full construct reference covers everything. The browser and API constructs are how teams run synthetic monitoring as code, with the same review and deploy path as the application they watch.
Bring your own toolchain
The CLI is the fast path, but it is not the only one. Every Checkly resource is also available through Terraform, Pulumi, and a fully documented REST API.
Checkly CLI
NativeThe native workflow. TypeScript constructs, local test runs, CI deploys.
Learn moreTerraform
Manage checks alongside the rest of your infrastructure.
Learn morePulumi
Define monitors inside the Pulumi stacks you already run.
Learn moreREST API
Full CRUD on every resource, for anything you build yourself.
Learn moreKey facts
Monitoring as code, in facts
How monitors are defined, tested, and deployed when they live in your repository, and what the approach does not solve on its own.
- What it is
Monitors defined in source control, not a console
Checks, alert channels, groups, and status pages are declared in files, reviewed in pull requests, and applied by a deploy command.
- Languages
TypeScript and JavaScript
Constructs are typed, so an invalid frequency or a missing assertion fails in your editor rather than at runtime.
- Infrastructure as code
Terraform and Pulumi providers
Teams that already manage infrastructure in Terraform or Pulumi can declare monitors in the same stack instead of adopting a second workflow.
- Local feedback
Run checks before they are deployed
The CLI runs a check against any environment from your machine or from CI, so a monitor is tested the way application code is.
- Agents
No agent to install on your hosts
Checks run from Checkly infrastructure. An agent is only needed for private locations that reach services inside your network.
- What it does not remove
The need to review checks like code
Monitoring as code moves monitors into the pull-request workflow. It does not by itself keep coverage current if nobody reviews it.
Facts checked . Vendor pricing and feature pages change without notice, so verify anything decision-critical against the linked source.
Fit check
Is monitoring as code right for your team?
Checkly is a strong fit when
- Monitoring coverage keeps drifting behind the product because checks live somewhere the shipping team does not look.
- You want a check tested locally and in CI before it ever pages anyone.
- Your infrastructure is already declared in Terraform or Pulumi and monitoring is the exception.
Checkly may not be the best fit when
- Your monitors are configured and owned by a team that does not work in Git, and moving them there is not the goal.
- You want a monitoring setup finished in an afternoon with no repository, pipeline, or review step.
- You need infrastructure metrics or log pipelines as code. That is a different tool from monitoring as code.
Your first monitor is one commit away
Scaffold a project, write a check, and deploy it before your coffee gets cold. Everything after that is a pull request.