feat: integrate Datadog APM + Sentry error tracking with CloudWatch metrics FRE-4806
- Add CloudWatch metrics emitter (api_latency, api_requests, api_errors) - Add request monitoring middleware for API (latency, error rate, throughput) - Register error-handling, logging, and monitoring middleware in server.ts - Add Datadog log forwarding via HTTP intake API - Add application-level CloudWatch alarms for P99 latency, error rate, throughput - Inject Datadog/Sentry env vars and secrets into ECS task definitions - Add DD_API_KEY and SENTRY_DSN to ECS secrets - Create CloudWatch log groups for datadog and sentry services - Update .env.example with AWS_REGION and monitoring variables - Add @aws-sdk/client-cloudwatch dependency to monitoring package Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -96,6 +96,50 @@ resource "aws_ecs_task_definition" "services" {
|
||||
{
|
||||
name = "PORT"
|
||||
value = tostring(each.port)
|
||||
},
|
||||
{
|
||||
name = "DD_ENV"
|
||||
value = var.environment
|
||||
},
|
||||
{
|
||||
name = "DD_SERVICE"
|
||||
value = "${var.cluster_name}-${each.key}"
|
||||
},
|
||||
{
|
||||
name = "DD_VERSION"
|
||||
value = var.container_images[each.key]
|
||||
},
|
||||
{
|
||||
name = "DD_TRACE_ENABLED"
|
||||
value = "true"
|
||||
},
|
||||
{
|
||||
name = "DD_LOGS_INJECTION"
|
||||
value = "true"
|
||||
},
|
||||
{
|
||||
name = "DD_AGENT_HOST"
|
||||
value = "localhost"
|
||||
},
|
||||
{
|
||||
name = "DD_AGENT_PORT"
|
||||
value = "8126"
|
||||
},
|
||||
{
|
||||
name = "SENTRY_ENVIRONMENT"
|
||||
value = var.environment
|
||||
},
|
||||
{
|
||||
name = "SENTRY_RELEASE"
|
||||
value = var.container_images[each.key]
|
||||
},
|
||||
{
|
||||
name = "AWS_REGION"
|
||||
value = "us-east-1"
|
||||
},
|
||||
{
|
||||
name = "DD_SITE"
|
||||
value = "datadoghq.com"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -115,6 +159,14 @@ resource "aws_ecs_task_definition" "services" {
|
||||
{
|
||||
name = "RESEND_API_KEY"
|
||||
valueFrom = "${var.secrets_arn}:RESEND_API_KEY::"
|
||||
},
|
||||
{
|
||||
name = "SENTRY_DSN"
|
||||
valueFrom = "${var.secrets_arn}:SENTRY_DSN::"
|
||||
},
|
||||
{
|
||||
name = "DD_API_KEY"
|
||||
valueFrom = "${var.secrets_arn}:DD_API_KEY::"
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user