CloudWatch Application Signals: APM Without Third-Party Tools

CloudWatch Application Signals: APM Without Third-Party Tools

Application performance monitoring (APM) used to require Datadog, New Relic, or Dynatrace. CloudWatch Application Signals brings enterprise-grade APM directly into AWS—with automatic instrumentation and no agents to manage.

What Application Signals Provides

Feature Description
Service Map Visual topology of service dependencies
SLO Monitoring Define and track Service Level Objectives
Request Tracing End-to-end distributed traces
Error Analysis Automatic error grouping and trends
Golden Signals Latency, traffic, errors, saturation

Automatic Instrumentation

# Enable Application Signals for EKS
Resources:
  EKSAddon:
    Type: AWS::EKS::Addon
    Properties:
      ClusterName: !Ref EKSCluster
      AddonName: amazon-cloudwatch-observability
      AddonVersion: v1.5.0-eksbuild.1
      ConfigurationValues: |
        {
          "agent": {
            "config": {
              "logs": {"metrics_collected": {"app_signals": {}}},
              "traces": {"traces_collected": {"app_signals": {}}}
            }
          },
          "containerLogs": {"enabled": true}
        }

# For Lambda: Just enable in function config
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: app.handler
      Runtime: python3.12
      Tracing: Active  # Enables X-Ray + Application Signals

Defining SLOs

import boto3

cloudwatch = boto3.client('application-signals')

# Create SLO for API latency
cloudwatch.create_service_level_objective(
    Name='api-latency-p99',
    Description='99th percentile latency under 500ms',
    SliConfig={
        'SliMetricConfig': {
            'KeyAttributes': {
                'Service': 'order-api',
                'Operation': 'POST /orders'
            },
            'MetricType': 'LATENCY',
            'Statistic': 'p99'
        },
        'MetricThreshold': 500  # milliseconds
    },
    Goal={
        'Interval': {
            'RollingInterval': {
                'Duration': 7,
                'DurationUnit': 'DAY'
            }
        },
        'AttainmentGoal': 99.9  # 99.9% of time
    }
)

Cost Comparison

APM Cost Analysis (100 services, 1B requests/month)

  • Datadog APM: ~$15,000-25,000/month
  • New Relic: ~$12,000-20,000/month
  • CloudWatch Application Signals: ~$3,000-5,000/month

Trade-off: Third-party tools have richer features, but Application Signals covers 80% of needs at 20% of the cost.

When to Use Application Signals

  • AWS-native workloads: EKS, Lambda, ECS—automatic instrumentation
  • Cost-sensitive: Significant savings over third-party APM
  • Compliance: Data stays in your AWS account
  • Starting out: Good enough for most teams starting observability journey

CloudWatch Application Signals represents AWS’s commitment to making observability a native platform capability, not a third-party add-on.

Marcus Chen

Marcus Chen

Author & Expert

Marcus is a defense and aerospace journalist covering military aviation, fighter aircraft, and defense technology. Former defense industry analyst with expertise in tactical aviation systems and next-generation aircraft programs.

27 Articles
View All Posts