skills-ws
Version:
87 agent skills for AI coding assistants — marketing, growth, web3, dev, design & operations. Built for OpenClaw, Claude Code, Cursor, and Codex.
65 lines (57 loc) • 2 kB
Markdown
## 6. Monitoring & Cost Alerts
```hcl
resource "aws_sns_topic" "alerts" {
name = "${var.project}-${var.environment}-alerts"
}
resource "aws_cloudwatch_metric_alarm" "alb_5xx" {
alarm_name = "${var.project}-high-5xx"
namespace = "AWS/ApplicationELB"
metric_name = "HTTPCode_Target_5XX_Count"
statistic = "Sum"
period = 300
evaluation_periods = 2
threshold = 50
comparison_operator = "GreaterThanThreshold"
alarm_actions = [aws_sns_topic.alerts.arn]
dimensions = { LoadBalancer = var.alb_arn_suffix }
}
resource "aws_cloudwatch_metric_alarm" "latency_p99" {
alarm_name = "${var.project}-high-latency"
namespace = "AWS/ApplicationELB"
metric_name = "TargetResponseTime"
extended_statistic = "p99"
period = 300
evaluation_periods = 3
threshold = 2
comparison_operator = "GreaterThanThreshold"
alarm_actions = [aws_sns_topic.alerts.arn]
dimensions = { LoadBalancer = var.alb_arn_suffix }
}
resource "aws_cloudwatch_metric_alarm" "ecs_cpu" {
alarm_name = "${var.project}-ecs-cpu"
namespace = "AWS/ECS"
metric_name = "CPUUtilization"
statistic = "Average"
period = 300
evaluation_periods = 3
threshold = 80
comparison_operator = "GreaterThanThreshold"
alarm_actions = [aws_sns_topic.alerts.arn]
dimensions = { ClusterName = var.ecs_cluster_name, ServiceName = var.ecs_service_name }
}
resource "aws_budgets_budget" "monthly" {
name = "${var.project}-monthly"
budget_type = "COST"
limit_amount = "500"
limit_unit = "USD"
time_unit = "MONTHLY"
notification {
comparison_operator = "GREATER_THAN"
threshold = 80
threshold_type = "PERCENTAGE"
notification_type = "ACTUAL"
subscriber_email_addresses = [var.alert_email]
}
}
```
---