BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News AWS Adds Auto-Instrumentation of Python Applications to CloudWatch Application Signals

AWS Adds Auto-Instrumentation of Python Applications to CloudWatch Application Signals

AWS announced the support of auto-instrumentation of Python applications to the Amazon Cloudwatch Application Signals feature. Application Signals enables the use of AWS Distro for OpenTelemetry (ADOT) to instrument Python applications without code changes. Application Signals allows for the monitoring of service-level objectives (SLOs) and works with several AWS observability and monitoring tooling.

When it was announced during re:Invent 2023, Application Signals only supported Java applications for auto-instrumenting. While the SDK is available for JavaScript, Kotlin, Android, C++, PHP, Ruby, Go, and iOS, auto-instrumentation is only supported for Java and Python applications. The feature automatically collects and correlates observability data from several sources including CloudWatch RUM, CloudWatch Synthetics canary, AWS Service Catalog AppRegistry, and Amazon EC2 Auto Scaling. Application Signals will generate application topology maps of the services that are discovered. The feature is still in a preview state.

Solution architecture for monitoring a Python application with Amazon CloudWatch Application Signals

Solution architecture for monitoring a Python application with Amazon CloudWatch Application Signals (credit: AWS)

 

Application Signals is supported and tested on Amazon EKS, Amazon ECS, and Amazon EC2. With workloads running on Amazon EKS, the names of services and clusters are automatically discovered. Otherwise, the names must be manually supplied. AWS notes that Application Signals for Amazon EC2 should work for any architecture that supports the CloudWatch agent and AWS Distro for OpenTelemetry.

Once configured, services will be automatically populated and displayed within the Services dashboard. The Service detail page presents more granular details on a single-enabled service. AWS X-ray trace maps are also available under Trace details.

Amazon CloudWatch Application Signals dashboard

Amazon CloudWatch Application Signals dashboard (credit: AWS)

 

Application Signals also supports creating service level objectives (SLOs) to monitor business objectives. Both latency and availability metrics are automatically created for each discovered service. In addition to those two metrics, any CloudWatch metric or metric expression can be used as a service level indicator (SLIs). The SLO can then be set to track the SLI performance against the desired threshold and goal.

Google Cloud has a similar offering with their Managed Service for Prometheus. This permits automated collection for Kubernetes clusters. For virtual machines, Ops Agent can be used to enable metric collection. GCP also supports defining and monitoring against SLOs. Within Azure, autoinstrumentation for Azure Monitor Application Insights can be used. This service has varying support for .NET, Java, Node.js, and Python applications.

Application Signals is currently supported within the US East (North Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), Asia Pacific (Tokyo), and Europe (Ireland) regions. The feature is in preview and may undergo significant changes before being made generally available.

About the Author

Rate this Article

Adoption
Style

BT