Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreThis is a guest post authored by our friend, Microsoft's Asir Vedamuthu Selvasingh
Hi, Spring fans! We are excited to announce that Application Performance Monitoring (APM) is now fully integrated into Azure Spring Cloud, powered by Application Insights.
Azure Spring Cloud is jointly built, operated, and supported by Microsoft and VMware. It is a fully managed service for Spring Boot applications that lets you focus on building the applications that run your business without the hassle of managing infrastructure.
APM in Azure Spring Cloud offers in-depth performance monitoring for your Spring applications without requiring ANY code changes, recompiling, retesting, or redeployment. APM on Azure Spring Cloud is so seamless that you get the insights on your applications just out of the box. You do not have to do ANYTHING - just deploy your applications and the monitoring data starts flowing. The benefits you get with application monitoring are:
While both Azure Spring Cloud and Application Insights Java agent are generally available, their integration for out of the box monitoring is in preview.
You can enable the Java in-process monitoring agent when you create or update Azure Spring Cloud:
az spring-cloud create --name ${SPRING_CLOUD_SERVICE}
--sku standard --enable-java-agent
--resource-group ${RESOURCE_GROUP}
--location ${REGION}
Then, you can open Application Insights created by Azure Spring Cloud and start monitoring applications and their dependencies – we will illustrate this using a distributed version of Spring Petclinic. Navigate to the Application Map
blade where you can see an incredible, holistic view of microservices that shows applications that are operating correctly (green) and those with bottlenecks (red) [Figure 1]. Developers can easily identify issues in their applications and quickly troubleshoot and fix them.
Navigate to the Performance
blade where you can see response times and request counts for operations exposed by your applications [Figure 2].
Navigate to the Dependencies
tab in the Performance
blade where you can see all your dependencies and their response times and request counts [Figure 3].
You can click a SQL call or a dependency to see the full end-to-end transaction in context [Figure 4].
Navigate to the Exceptions
tab in the Failures
blade to see a collection of exceptions thrown by applications [Figure 5].
Simply select an exception and drill in for meaningful insights and actionable stack trace [Figure 6].
Navigate to the Metrics
blade to see all the metrics contributed by Spring Boot applications, Spring Cloud modules, and their dependencies. The chart below showcases gateway-requests
contributed by Spring Cloud Gateway and hikaricp_connections
contributed by JDBC [Figure 7]. Similarly, you can aggregate Spring Cloud Resilience4J metrics and visualize them.
Spring Boot applications register a lot of core metrics – JVM, CPU, Tomcat, Logback, etc. You can use Micrometer to contribute your own custom metrics, say using the @Timed
Micrometer annotation at the class level. You can then visualize those custom metrics in Application Insights. As an example, see how pet owners, pets, and their clinical visits are tracked by custom metrics below – you can also see how the pattern changes at 9 PM because applications are driving higher utilization when autoscaling kicked in [Figure 8].
You can use the Availability Test feature in Application Insights to monitor the availability of applications in Azure Spring Cloud. This is a recurring test to monitor the availability and responsiveness of applications at regular intervals from anywhere across the globe. It can proactively alert you if your applications are not responding or if they respond too slowly. The chart below shows availability tests from across North America – West US, South Central, Central US and East US [Figure 9].
Navigate to the Live Metrics
blade where you can see live metrics practically in real-time, within only one second [Figure 10].
Application Insights Java agent is based on OpenTelemetry auto instrumentation effort, where Microsoft collaborates with other brightest minds of the APM space.
Azure Spring Cloud abstracts away the complexity of infrastructure management and Spring Cloud middleware management, so you can focus on building your business logic and let Azure take care of dynamic scaling, patches, security, compliance, and high availability. With a few steps, you can provision Azure Spring Cloud, create applications, deploy, and scale Spring Boot applications, and start monitoring in minutes. We will continue to bring more developer-friendly and enterprise-ready features to Azure Spring Cloud.
We would love to hear how you are building impactful solutions using Azure Spring Cloud. Get started today – deploy Spring applications to Azure Spring Cloud using quickstart!