AWS Cloud Operations Blog

Amazon CloudWatch Application Signals adds runtime metrics support for Java, Python and .Net applications

Amazon CloudWatch Application Signals now supports runtime metrics for Java, Python and .Net applications. This new capability lets you monitor application runtime metrics directly in Amazon CloudWatch, helping you correlate application performance signals and improve application observability.

Amazon CloudWatch Application Signals automatically instruments your applications running on AWS, so that you can monitor your application health, troubleshoot performance, and track against your business objectives. Application Signals collects traces, application metrics (error/latency/fault), logs and runtime metrics to correlate them together in a unified application centric view in Amazon CloudWatch.

With Application Signals, you can understand whether anomalies in runtime metrics have any impact on end-users by correlating them with application metrics. Additionally, customers will be able to identify thread contention, track memory allocation patterns, and pinpoint memory or CPU spikes that may lead to application slowdowns or crashes, impacting end user experience.

Key features

  • Detailed runtime metrics – Gain visibility into runtime metrics like memory usage, garbage collection, thread counts for your Java, Python and .Net applications.
  • Unified monitoring – Application Signals consolidates runtime metrics along with standard application metrics, traces, and logs, providing a unified, comprehensive view of performance and health in pre-built standardized dashboards for your applications.
  • Customer experience – Quickly identify & resolve performance bottlenecks and troubleshoot issues to improve better customer experience for your applications on AWS.

Enabling Application Signals

You can be enable Application Signals for applications running on Amazon EKS, Kubernetes, Amazon ECS, Amazon EC2, AWS Lambda and custom (hosted anywhere including on-premises). For more information on how to enable Applications Signals for applications running on Amazon EKS, see Enable Application Signals on Amazon EKS clusters. To enable Applications Signals for applications running on other platforms like Amazon EC2, Amazon ECS, Kubernetes, or Lambda, see Enable Application Signals on Amazon EC2, Amazon ECS, Kubernetes, or Lambda

Tracking application runtime metrics

Once Application Signals is enabled for your Java, Python or .Net applications, Application Signals automatically instruments and start reporting detailed runtime metrics to Amazon CloudWatch, offering real-time telemetry data to support informed performance reporting. Amazon CloudWatch Application Signals collects JVM metrics from Java applications , Python runtime metrics from Python applications and .Net runtime metrics from your .Net applications that you have Application Signals enabled for. For more information about metrics collected by Application Signals, see Runtime metrics.

Application Signals JVM runtime metricsFigure 1: Charts displaying JVM runtime metrics under Application Signals in Amazon CloudWatch

Application Signals Python runtime metrics

Figure 2: Charts displaying Python runtime metrics under Application Signals in Amazon CloudWatch

Application Signals DotNet runtime metrics

Figure 3: Charts displaying .Net runtime metrics under Application Signals in Amazon CloudWatch

From any of the charts displayed in Application Signals, View Metrics option can be chosen to view detailed metric details. All runtime metrics are collected in Amazon CloudWatch and are available under the Application Signals namespace, and are collected with the Service and Environment dimension set. You can create a CloudWatch alarm based on the value of the application runtime metric when it is outside of a defined threshold.

Top Contributors

You can select a data point on any of the runtime metrics graphs displayed, which will open a right-hand side drawer showing Top Contributors (as shown below). Top Contributors displays a sorted list of nodes/instances based on runtime metrics. This ranking helps identify the nodes/instances that require investigation due to high runtime metric values.

Top Contributors for Application Signals runtime metrics

Figure 4: Top Contributors for the selected runtime metrics under Application Signals in Amazon CloudWatch

Runtime metrics support is available in all regions Application Signals is available in. Runtime metrics are charged based on Application Signals pricing, see Amazon CloudWatch pricing.

Conclusion

Adding support for runtime metrics for Java, Python and .Net applications enables informed application performance monitoring through Amazon CloudWatch Application Signals. This monitoring provides quantifiable performance data, helping teams identify and quickly resolve issues before they impact customers. Amazon CloudWatch Application Signals improves reliable application performance and hence better customer experience.

About the authors:

Siva Guruvareddiar

Siva Guruvareddiar is a Senior Specialist Architect at AWS where he is passionate about helping customers architect highly available systems. He helps speed cloud-native adoption journeys by modernizing platform infrastructure and internal architecture using microservices, containerization, observability, service mesh areas, and cloud migration. Connect on LinkedIn at: linkedin.com/in/sguruvar.

Kiran Prakash

Kiran Prakash is a Solutions Architect at Amazon Web Services. He is passionate in helping customers modernize, scale and adopt cloud using AWS Well Architected best practices. His areas of interest are Security, Management & Governance and Monitoring & Observability services.

Mitun Lahiri

Mitun works in the Amazon CloudWatch Application Performance Management where she is a Software Development Manager in the Application Signals team.