About synthetic-monitoring
A skill for designing synthetic monitoring that simulates user journeys, API flows, and business transactions to check behavior and performance. It includes Playwright examples and guides for API tests and scheduled checks.
Key features
- 01Simulate browser-based user journeys
- 02Test API workflows
- 03Monitor business transactions
- 04Schedule synthetic checks
- 05Track response times and failures
Use cases
- 01Validate end-to-end user flows
- 02Check API paths before release
- 03Monitor critical transactions
- 04Catch failures in scheduled checks
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill synthetic-monitoringAfter installing, type/synthetic-monitoringin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/api-synthetic-tests.mdscheduled-synthetic-monitoring.mdsynthetic-tests-with-playwright.mdscripts/scaffold-tests.shtemplates/test-template.jsDetails
From the project READMESynthetic Monitoring
Table of Contents
Overview
Set up synthetic monitoring to automatically simulate real user journeys, API workflows, and critical business transactions to detect issues and validate performance.
When to Use
- End-to-end workflow validation
- API flow testing
- User journey simulation
- Transaction monitoring
- Critical path validation
Quick Start
Minimal working example:
// synthetic-tests.js
const { chromium } = require("playwright");
class SyntheticMonitor {
constructor(config = {}) {
this.baseUrl = config.baseUrl || "https://app.example.com";
this.timeout = config.timeout || 30000;
}
async testUserFlow() {
const browser = await chromium.launch();
const page = await browser.newPage();
const metrics = { steps: {} };
const startTime = Date.now();
try {
// Step 1: Navigate to login
let stepStart = Date.now();
await page.goto(`${this.baseUrl}/login`, { waitUntil: "networkidle" });
metrics.steps.navigation = Date.now() - stepStart;
// Step 2: Perform login
stepStart = Date.now();
await page.fill('input[name="email"]', "[email protected]");
await page.fill('input[name="password"]', "password123");
// ... (see reference guides for full implementation)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Synthetic Tests with Playwright | Synthetic Tests with Playwright |
| API Synthetic Tests | API Synthetic Tests |
| Scheduled Synthetic Monitoring | Scheduled Synthetic Monitoring |
Best Practices
✅ DO
- Test critical user journeys
- Simulate real browser conditions
- Monitor from multiple locations
- Track response times
- Alert on test failures
- Rotate test data
- Test mobile and desktop
- Include error scenarios
❌ DON'T
- Test with production data
- Reuse test accounts
- Skip timeout configurations
- Ignore test maintenance
- Test too frequently
- Hard-code credentials
- Ignore geographic variations
- Test only happy paths
Comments
Markdown supported