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"  }});