Solving the Problem of Azure Application Latency - Part Two: Dealing with Resource Usage

In part one of this three-part series, we highlighted the importance of minimizing latency for better performance and user satisfaction, showcasing how application performance monitoring (APM) built into SolarWinds Observability® can help with effectively identifying and resolving such issues.

Latency refers to the time from a user's action to an application's response. It’s an important metric to track in cloud-hosted applications. Latency affects application speed and user experience. High latency means slower responses, longer load times, and degraded user experience.

In part one, we talked about how SolarWinds Observability is great for all cloud providers. In this piece, we will walk through what it can do more concretely. For this one, we'll choose Azure, but remember, what we're showing here will pretty much apply to any cloud provider that you connect with SolarWinds Observability.

In part two, we’ll further explore how SolarWinds Observability can enhance application performance, focusing on challenges related to Azure resource usage. We’ll offer actionable insights for detecting and fixing resource-related problems, underlining the important role of resource management in fine-tuning Azure applications.

SolarWinds Observability for Azure Resource Tuning

SolarWinds Observability plays a vital role in identifying and resolving resource usage issues within Azure environments. As the complexity of managing resources in cloud environments grows, these resource-related issues become more common.

Because Azure is a dynamic and scalable cloud platform, organizations using Azure often have numerous applications and services running simultaneously. Without proper monitoring and management, these applications can consume more resources than necessary, leading to inefficiencies and increased costs. SolarWinds Observability provides a comprehensive platform to monitor, analyze, and optimize the resources required for applications to run effectively and efficiently.

Capabilities for Azure

SolarWinds Observability offers a diverse set of features specific to Azure environments.

Resource utilization metrics

One of the core strengths of SolarWinds Observability is its ability to provide detailed resource utilization metrics for Azure entities and other resources. This helps you maintain comprehensive oversight of how your applications use Azure resources. With insights into these metrics—such as CPU usage, memory consumption, and network bandwidth—you can gain a thorough understanding of resource allocation and usage patterns. This understanding will help you make informed decisions regarding scaling, performance optimization, and cost management.

SolarWinds Observability provides detailed resource utilization metrics for Azure applications.

Real-time monitoring of Azure Virtual Machines

Real-time monitoring of Azure Virtual Machines (VMs) will help you keep an eye on the health and performance of your application’s VMs. SolarWinds Observability delivers real-time monitoring, helping your team immediately detect issues so you can respond quickly. This capability helps administrators stay on top of any issue that arises, maintaining the smooth operation of their Azure VMs.

Azure SQL Database query analysis

Another key feature of SolarWinds Observability is its ability to analyze Azure SQL Database queries to improve performance. The performance monitoring tool identifies and addresses performance bottlenecks in your Azure SQL Database operations. Query analysis lets administrators dive deep into their SQL queries, examining execution times and resource consumption. All in all, this capability helps you tune database performance and improve the efficiency of data operations in Azure.

Adaptability for various Azure services

Finally, one of the most notable aspects of SolarWinds Observability is its adaptability across various Azure services. With the ability to integrate with a wide array of Azure services, VMs, and databases, SolarWinds Observability delivers monitoring and analytics capabilities regardless of the Azure resources in use (such as Azure Functions, Azure App Services, or Azure Storage). Working across all services brings a holistic approach to application performance management, ensuring every aspect of your Azure infrastructure is operating optimally.

SolarWinds Observability provides holistic performance views across the elements supporting an application.

Identifying Resource Usage Issues within Azure

Addressing resource usage issues in Azure environments requires a strategic approach. The comprehensive capabilities of SolarWinds Observability will help you with this. First, integrate your Azure account with your SolarWinds Observability account. To do this (either via the Azure CLI or the Azure portal), you can follow the steps outlined in the official documentation.

Next, set up monitoring for Azure resources. Start by choosing the Azure service you wish to monitor—like Azure Virtual Machines or Azure SQL Databases—and configure the monitoring settings. These settings include specifying which metrics to track, determining how often data is collected, and setting thresholds for alerts.

Once the monitoring setup is complete, you’ll have access to dashboards with various metrics related to Azure resources.

To enhance the efficiency of your monitoring, use the anomaly-based alerting feature to identify unusual resource-usage patterns.

Anomaly-Based Alerts view

Reviewing historical data for trends and patterns provides valuable insights into resource inefficiencies or potential issues. With historical analysis, you can develop actionable strategies, including:

  • Reallocating resources for better efficiency
  • Appropriately scaling services to match demand
  • Pinpointing and resolving specific operational challenges

 Such proactive measures ensure optimal resource usage, enhancing overall system performance and reliability.

SolarWinds Historical Alerts screen

In addition to these steps, you should instigate regular reviews of performance data and set up alerts on key metrics. Using SolarWinds Observability proactively helps maintain the health and efficiency of Azure-based applications and services.

Key metrics for resource monitoring

Certain key metrics are essential when it comes to monitoring and addressing resource usage issues in Azure environments. Let’s briefly highlight the main categories of key metrics.

CPU utilization metrics gauge the processing power used by applications and services. High CPU utilization could indicate that an application consumes more resources than expected, possibly leading to performance degradation. Monitoring CPU trends over time helps you to identify patterns that suggest inefficiencies or the need for scaling.

Memory consumption metrics help detect potential memory leaks or applications using an inordinate amount of memory. Unusually high memory consumption can lead to application crashes or slowdowns, impacting overall system stability. Regular monitoring helps with early detection and resolution of such issues.

Network activity metrics monitor the efficiency of data transmission across the network. Metrics like bandwidth usage, throughput, and packet loss are instrumental in identifying network bottlenecks. Together, they inform network configuration optimizations, ensuring smoother data flow and improving application performance.

  

Network flow analysis in SolarWinds Observability

Tracking these metrics makes up part of your comprehensive monitoring strategy, helping you maintain optimal performance in Azure-based applications by identifying bottlenecks and facilitating resolutions.

Enhanced cloud monitoring

SolarWinds Observability integrates seamlessly with Azure's monitoring tools, pulling metrics and logs from Azure services directly into the observability platform. SolarWinds Observability provides deep insights and broad observability across various services, while Azure’s native tools offer specialized monitoring solutions that complement the platform’s capabilities. Combining the two synergizes cloud resource monitoring and optimization. The result is a unified view of resource usage and performance within SolarWinds Observability, creating a cohesive monitoring ecosystem.

Using SolarWinds Observability to Identify and Resolve Performance Issues

So far, we’ve covered the key features and metrics necessary to effectively optimize Azure environments with SolarWinds Observability. However, it’s necessary to understand how to interpret our observability data—in particular, resource utilization metrics. In this section, we’ll walk through how to detect patterns or anomalies within metrics to identify and resolve performance issues.

As an example, observability data can guide decisions regarding vertical and horizontal scaling. Vertical scaling (scaling up) involves adding more resources, like CPU or memory. This approach is suitable when high resource utilization is consistent. On the other hand, horizontal scaling (scaling out) entails adding more instances or nodes to distribute the workload more evenly, effectively addressing performance bottlenecks.

Let’s walk through an example of how to use SolarWinds Observability to identify and resolve a potential bottleneck in VMs running in Azure.

Set up SolarWinds Observability for Azure Monitoring

Follow these steps to configure SolarWinds Observability to monitor your Azure VMs:

  1. Integrate your Azure account with SolarWinds Observability.
  2. Set up the necessary permissions for SolarWinds Observability to access Azure metrics.
  3. Configure SolarWinds Observability to monitor your Azure VMs.

Identify the issue

Begin by using dashboards to explore CPU usage and other VM metrics. For example, you might identify patterns and peaks in CPU usage that correlate with performance issues reported by users. Use analytics from SolarWinds Observability to determine the root cause of CPU spikes.

Alt-text: CPU usage analysis in SolarWinds Observability.

Analyze the root cause

By referencing the detailed logs captured in SolarWinds Observability and using its tracing features, you can narrow your investigation and zero in on the root cause. For our example, let’s assume that we’ve traced the problematic requests to a specific application component. From there, we would review the code for the component in question, identifying inefficient algorithms and suboptimal database queries as the culprits for high CPU usage.

Analyzing CPU usage using log data in SolarWinds Observability.

Implement optimizations

After pinpointing the root cause in our application component, we would follow these steps to resolve the issue:

  1. Fix or optimize the problematic code.
  2. Deploy the optimized application to Azure.
  3. Use SolarWinds Observability to monitor the CPU usage post-deployment, ensuring the changes have the desired effect.

Fine-tune Azure resources

Once the application has been optimized and redeployed, we would continue to fine-tune the application, leaning on continuous monitoring from SolarWinds Observability to help us. For example, we may observe new CPU usage patterns in our observability dashboards, and we can adjust our Azure resource allocations accordingly. We would scale down resources where possible to reduce costs without impacting performance.

Create alert condition and select metric.

Finally, we would set up alerts to notify us if CPU usage approaches critical thresholds in the future.

Evaluate the impact

After you have investigated and mitigated the Azure application latency issue, you can evaluate the impact of your response. Using historical data in SolarWinds Observability, you can conduct performance tests to compare pre-and post-optimization metrics. You can focus on peak usage times to confirm substantial reductions in CPU usage spikes and improved application performance. And of course, you would solicit feedback from end users to determine if there was a noticeable improvement in application reliability and speed.

Conclusion

SolarWinds Observability is a powerful tool for diagnosing and resolving CPU-related issues in Azure-backed applications. By capturing, analyzing, and alerting on resource metrics for Azure VMs and other resources, you can fine-tune your applications and environments to improve system performance. In this guide, we’ve detailed the steps you would use to leverage the monitoring features from SolarWinds Observability, including dashboard access, CPU utilization analysis, and the implementation of necessary adjustments.

In the final part of this series, we will shift our focus to tackling networking issues, offering targeted insights and strategies for addressing these specific challenges.

Sign up for a free trial of SolarWinds Observability today!

Thwack - Symbolize TM, R, and C