Skip to main content
This guide covers best practices for effectively managing your Checkly monitoring infrastructure using the Pulumi provider, ensuring maintainable, secure, and scalable monitoring as code.

Resource Management

Naming Conventions

Resource Names

Consistent Naming
  • Use descriptive, lowercase names with hyphens
  • Include environment prefixes (dev, staging, prod)
  • Follow team-established conventions
  • Avoid generic names like “check1” or “test”

Tagging Strategy

Organized Tagging
  • Use consistent tag patterns across resources
  • Include environment, team, and purpose tags
  • Enable easy filtering and reporting
  • Document your tagging strategy
Good Examples:
Avoid:

Resource Organization

Organize your Pulumi code into logical modules and use check groups to maintain clear relationships between related resources.

Security Best Practices

Secret Management

Never commit API keys, passwords, or other sensitive information directly in your Pulumi code or version control.
Use Environment Variables:
Use Pulumi Configuration:
Access in Code:

Access Control

API Key Security

Secure API Keys
  • Use dedicated API keys for Pulumi
  • Rotate keys regularly
  • Limit key permissions when possible
  • Monitor key usage

Team Access

Team Permissions
  • Use Pulumi organizations for team collaboration
  • Implement role-based access control
  • Review access permissions regularly
  • Use separate stacks for different environments

Environment Management

Stack Strategy

Use separate Pulumi stacks for different environments to maintain isolation and enable environment-specific configurations.
Environment-Specific Configuration:

Configuration Management

Use Pulumi’s configuration system to manage environment-specific settings and avoid hardcoding values.

Monitoring Strategy

Check Frequency Optimization

Critical Services

High Frequency
  • 1-5 minute intervals for critical APIs
  • Multiple locations for redundancy
  • Immediate alerting on failures
  • Comprehensive assertions

Non-Critical Services

Lower Frequency
  • 10-30 minute intervals for non-critical services
  • Single location monitoring
  • Delayed alerting
  • Basic health checks

Location Strategy

Assertion Best Practices

Comprehensive API Checks:

Code Organization

Modular Structure

Organize your Pulumi code into logical modules to improve maintainability and reusability.
Recommended Project Structure:
Module Example:

Reusable Functions

CI/CD Integration

Automated Deployments

GitHub Actions

GitHub Workflow
  • Deploy on push to main branch
  • Preview changes on pull requests
  • Use Pulumi GitHub Actions
  • Secure secret management

Other CI/CD

Other Platforms
  • GitLab CI/CD integration
  • Jenkins pipeline support
  • Azure DevOps integration
  • CircleCI configuration
GitHub Actions Example:

Testing and Validation

Preview Changes

Always use pulumi preview before deploying to understand what changes will be made to your infrastructure.

Validation Strategies

  • Validate environment variables are set
  • Check API key permissions
  • Verify account ID format
  • Test connectivity to Checkly API
  • Verify check configurations
  • Test alert channel connectivity
  • Validate check group assignments
  • Confirm location availability
  • Monitor initial check runs
  • Verify alert channel notifications
  • Check resource relationships
  • Validate performance metrics

Performance Considerations

Resource Limits

Be mindful of Checkly’s resource limits and pricing when creating large numbers of checks or high-frequency monitoring.
Optimization Strategies:
  • Use appropriate check frequencies
  • Group related checks to reduce overhead
  • Monitor resource usage and costs
  • Implement check deactivation for non-critical services

Scalability

Maintenance and Updates

Regular Reviews

Schedule regular reviews of your monitoring infrastructure to ensure it remains effective and up-to-date.
Review Checklist:
  • Check for unused or obsolete resources
  • Review and update check frequencies
  • Validate alert channel configurations
  • Update check assertions and thresholds
  • Review performance and cost metrics
  • Update documentation and runbooks

Documentation

Maintain comprehensive documentation of your monitoring infrastructure, including runbooks, troubleshooting guides, and configuration details.
Documentation Requirements:
  • Resource naming conventions
  • Environment configurations
  • Alert escalation procedures
  • Troubleshooting guides
  • Change management procedures

Common Pitfalls to Avoid

Problem: Manual changes in Checkly UI create drift with Pulumi state Solution: Always manage resources through Pulumi or document manual changes
Problem: Committing secrets to version control Solution: Use environment variables and Pulumi’s secret management
Problem: Too many checks or too frequent monitoring Solution: Focus on critical paths and optimize check frequencies
Problem: Unclear or inconsistent resource names Solution: Establish and follow naming conventions
Remember that monitoring infrastructure is critical to your application’s reliability. Always test changes in development environments before deploying to production.