InsightRule
The InsightRule resource lets you manage AWS CloudWatch InsightRules for monitoring and analyzing log data in real-time.
Minimal Example
Section titled “Minimal Example”Create a basic InsightRule with required properties and a common optional tag.
import AWS from "alchemy/aws/control";
const basicInsightRule = await AWS.CloudWatch.InsightRule("basic-insight-rule", { RuleState: "ACTIVE", RuleBody: "fields @timestamp, @message | sort @timestamp desc | limit 20", RuleName: "BasicLogRule", Tags: { Environment: "Development" }});
Advanced Configuration
Section titled “Advanced Configuration”Configure an InsightRule with additional properties and multiple tags for better resource management.
const advancedInsightRule = await AWS.CloudWatch.InsightRule("advanced-insight-rule", { RuleState: "ACTIVE", RuleBody: "fields @timestamp, @message | filter @message like /ERROR/ | sort @timestamp desc | limit 50", RuleName: "ErrorLogRule", Tags: { Environment: "Production", Team: "DevOps" }, adopt: true // Adopt an existing resource if it already exists});
Resource Adoption
Section titled “Resource Adoption”Create an InsightRule that adopts an existing resource instead of failing if the resource already exists.
const adoptedInsightRule = await AWS.CloudWatch.InsightRule("adopted-insight-rule", { RuleState: "ACTIVE", RuleBody: "fields @timestamp, @message | filter @message like /WARNING/ | sort @timestamp desc | limit 30", RuleName: "WarningLogRule", Tags: { Environment: "Staging" }, adopt: true // This ensures it adopts the existing InsightRule});
Updating an Existing InsightRule
Section titled “Updating an Existing InsightRule”Demonstrate how to update an existing InsightRule with a new rule body and state.
const updatedInsightRule = await AWS.CloudWatch.InsightRule("existing-insight-rule", { RuleState: "INACTIVE", // Change the state to INACTIVE RuleBody: "fields @timestamp, @message | filter @message like /CRITICAL/ | sort @timestamp desc | limit 10", RuleName: "CriticalLogRuleUpdated", Tags: { Environment: "Testing" }});