Helping us know you better so we can serve you best.
- Full Name: _____________________________________________________________
| resource "awscc_applicationsignals_service_level_objective" "custom_app_latency" { | |
| name = "custom-app-latency-slo" | |
| description = "Track app-reported latency (e.g., /health or critical path)" | |
| sli = { | |
| comparison_operator = "LessThan" | |
| metric_threshold = 200 # 200ms | |
| sli_metric = { | |
| metric_data_queries = [{ | 
| resource "awscc_applicationsignals_service_level_objective" "task_restart_slo" { | |
| name = "ecs-task-restart-slo" | |
| description = "Monitor ECS task restart frequency" | |
| sli = { | |
| comparison_operator = "LessThan" | |
| metric_threshold = 1.0 # 1 or fewer per 5 min | |
| sli_metric = { | |
| metric_data_queries = [{ | 
| resource "awscc_applicationsignals_service_level_objective" "cpu_utilization_slo" { | |
| name = "ecs-cpu-slo" | |
| description = "Keep ECS CPU Utilization below 80%" | |
| sli = { | |
| comparison_operator = "LessThan" | |
| metric_threshold = 80.0 | |
| sli_metric = { | |
| metric_data_queries = [{ | 
| resource "awscc_applicationsignals_service_level_objective" "app_error_rate" { | |
| name = "app-error-rate-slo" | |
| description = "Application error rate derived from X-Ray segments" | |
| sli = { | |
| comparison_operator = "LessThan" | |
| metric_threshold = 1.0 # <1% errors | |
| sli_metric = { | |
| metric_data_queries = [{ | 
| resource "awscc_applicationsignals_service_level_objective" "alb_latency_slo" { | |
| name = "alb-latency-slo" | |
| description = "Target response time for ALB in front of ECS Fargate service" | |
| sli = { | |
| comparison_operator = "LessThan" | |
| metric_threshold = 500 | |
| sli_metric = { | |
| metric_data_queries = [{ | 
| resource "awscc_applicationsignals_service_level_objective" "fargate_latency_slo" { | |
| name = "ecs-fargate-latency-slo" | |
| description = "Latency SLO for ECS Fargate service behind ALB" | |
| sli = { | |
| comparison_operator = "LessThan" | |
| metric_threshold = 500 # 500ms latency threshold | |
| sli_metric = { | |
| metric_data_queries = [{ | 
backstage.backstage-dev (short DNS) but needed the full Kubernetes internal DNS:backstage.backstage-dev.svc.cluster.locali/o timeout errors in Cloudflare logs.service = "http://backstage.backstage-dev.svc.cluster.local:80"