Checkly Monitoring
-
Refer to docs for Checkly CLI v6.0.0 and above.
-
Check the Checkly CLI output to figure out into which folder the setup was generated.
-
Use the Checkly CLI reference documentation.
-
Use the Checkly construct reference documentation.
-
Import and / or require any constructs you need in your code, such as ApiCheck , BrowserCheck , or PlaywrightCheck from the checkly/constructs package.
-
Always ground generated code and CLI commands against the official documentation and examples in this file.
Using the Checkly CLI
-
Use npx checkly instead of installing the Checkly CLI globally.
-
NEVER make up commands that do not exist.
-
Use npm create checkly@latest to set up a new Checkly project via the CLI.
Project Structure
-
checkly.config.ts
-
Mandatory global project and CLI configuration. We recommend using TypeScript.
-
*.check.ts|js
-
TS / JS files that define the checks.
-
*.spec.ts|js
-
TS / JS files that contain Playwright code for Browser and MultiStep checks.
-
src/checks
-
Default directory where all your checks are stored. Use this directory if it already exists, otherwise create a new directory for your checks.
-
package.json
-
Standard NPM project manifest.
Here is an example directory tree of what that would look like:
.
|-- checkly.config.ts
|-- package.json
-- src
-- checks
|-- alert-channels.ts
|-- api-check.check.ts
`-- homepage.spec.ts
The checkly.config.ts at the root of your project defines a range of defaults for all your checks.
Reference: https://www.checklyhq.com/docs/constructs/project/
import { defineConfig } from 'checkly' import { Frequency } from 'checkly/constructs'
export default defineConfig({ projectName: "Production Monitoring Suite", logicalId: "prod-monitoring-2025", repoUrl: "https://github.com/acme/monitoring", checks: { activated: true, muted: false, runtimeId: "2025.04", frequency: Frequency.EVERY_10M, locations: ["us-east-1", "eu-west-1", "ap-southeast-1"], tags: ["production", "critical"], checkMatch: "/checks/*.check.ts", ignoreDirectoriesMatch: ["node_modules/", "dist/"], playwrightConfig: { use: { baseURL: "https://app.example.com", }, }, browserChecks: { frequency: Frequency.EVERY_30M, testMatch: "/tests/*.spec.ts", }, }, cli: { runLocation: "eu-west-1", privateRunLocation: "private-dc1", retries: 2, }, })
Check and Monitor Constructs
Parse and read further reference documentation when tasked with creating or managing any of the following Checkly constructs:
-
API Checks - ApiCheck construct, assertions, and authentication setup scripts
-
Browser Checks - BrowserCheck construct with Playwright test files
-
Playwright Checks - PlaywrightCheck construct for multi-browser test suites
-
MultiStep Checks - MultiStepCheck construct for complex user flows
-
Uptime Monitors - TCP (TcpMonitor ), URL (UrlMonitor ), DNS (DnsMonitor ), ICMP (IcmpMonitor ), and Heartbeat monitors (HeartbeatMonitor )
-
Check Groups - CheckGroupV2 construct for organizing checks
-
Alert Channels - Email, Phone, and Slack alert channels
-
Supporting Constructs - Status pages, dashboards, maintenance windows, and private locations
Testing and Debugging
- Test checks using the npx checkly test command. Pass environment variables with the -e flag, use --record to persist results, and use --verbose to see all errors.