Simplify app management with the Azure App Service Insights Workbook
Introduction
Developing, maintaining, and managing multiple applications on Azure App Service Plans can be complex. At scale, the challenge intensifies as you juggle different Subscriptions, Resource Groups, Operating Systems (Linux, Windows), Regions, Scale (instances), Pricing Plans, and Resource Allocations across various environments.
To simplify this, I have developed an Azure App Service Insights Workbook.
This tool provides a unified view to help customers easily track and compare different applications.
It designed to empower developers, DevOps, and FinOps teams with insights and streamlined monitoring capabilities.
In this blog post, I will explore the benefits of this Workbook for various scenarios and stakeholders, and explain how it can drive cost efficiency.
TLDR: Get the Workbook on GitHub
Monitor, Track and Compare
Holistic View: This workbook provides a holistic view of all your Azure App Services and Azure App Service Plans.
Managed Efficiency: A simple way to monitor, track and compare your application behaviors.
Cross-App Comparison: Compare critical metrics across different applications or App Service Plans to identify trends and outliers. This helps you prioritize optimization efforts and ensure consistent performance across all apps.
Smart Decisions: Whether you have a single app or multiple apps, being able to see the behaviors will help you be efficient and make smart decisions.
This workbook is not intended to replace monitoring capabilities like Application Insights or 3rd party monitoring tools, it gives a holistic view of all Azure App Services with comparison capabilities, and you can dive into each of them with additional tools.
Azure App Service
Azure App Service is an HTTP-based service for hosting web applications, REST APIs, and mobile backends.
Multiple languages and frameworks – App Service has first-class support for .NET, .NET Core, Java, Node.js, PHP, or Python.
Publish – You can choose to publish as Code, Containers or Static Web app.
Global scale with high availability – Scale up or out manually or automatically. Host your apps anywhere in Microsoft’s global data center infrastructure, and the App Service SLA promises high availability.
Operating System – Run your app on both Windows and Linux-based environments.
Allocation – You can host multiple apps on a single App Service Plan. (Ref: App Service plans – Azure App Service | Microsoft Learn)
Holistic View
Filters
The workbook supports filtering by Subscriptions, Resource Groups, App Service Plans, Apps.
You can select multiple options (e.g., 2 App Service Plans).
Time range – Viewing the metrics over time.
Overview
Overview of all your App service Plans, App Services and Staging Slots.
App Service Plan: Location, Operating System, Tiers, Status, Number of hosted Apps, Instances, Maximum Scale.
App Service/Slot: Location, Kind, Type, Tier, App Service Plan, State.
Monitor
Overview of all your App service Plans, App Services and Staging Slots Metrics.
App Service Plan
App Services and Staging Slots
Additional Metrics
Each resource type has different Metrics.
Expanding the Additional Metrics will allow to view and compare all the Metrics supported by the resource type.
App Service Plan: Data, Sockets, TCP, Queue Length
App Service: Requests/Response, Data, HTTP, IO, Garbage Collections, Others
Staging Slot: Requests/Response, Data, HTTP, IO, Garbage Collections, App Domains, Others
App Service | Data Metrics
App Service | Additional Metrics
Cross-App/Plan Comparison
The workbook supports comparing metrics between two or more resources.
Resources can be an App Service Plan, App Service or Staging slot.
App Service Plan
App services
Java vs .NET 6 Example
Both App Services are in the Same App Service Plan.
Different Runtime (Java vs .NET 6).
Node.js vs .NET 8 Example
Different App Service Plan.
Different Regions.
Different Runtime (Node.js vs .NET 8).
App Service Plan
App Services
Inventory
The Inventory dashboard provides a holistic view of all the App Services resources group by various categories, e.g. Subscriptions, Resource Groups, Tier, Status, etc.
For Developers
Developers often face the challenge of ensuring that a single or multiple applications run smoothly and efficiently.
This workbook allows you to compare key metrics and can be invaluable in identifying trends, pinpointing issues, validating changes, and ensuring optimal performance across various scenarios.
Scenario
Use case
How this Workbook helps?
Development and Testing
Profiling code, unit testing, and integration testing
Compare metrics during different stages of development to ensure consistency and efficiency
Application Performance Testing
Load, stress and scalability testing
Compare pre-test and post-test metrics to identify performance improvements or regressions
Comparative Analysis Across Multiple Applications
Developer manages multiple applications and needs to compare their performance to identify which ones require attention
Unified View: Aggregate metrics from all applications into a single view for easy comparison.
Benchmarking: Set benchmarks for key performance indicators and compare each application against these benchmarks.
Identify Outliers: Quickly identify applications that are underperforming or experiencing issues, allowing the developer to prioritize optimization efforts.
Diagnosing Performance Bottlenecks
Investigating issues like slow response times, crashes, or memory leaks to find the root cause
Detailed Metrics: Access detailed metrics on CPU usage, memory consumption, and request latencies to pinpoint performance bottlenecks.
Correlation Analysis: Correlate and compare different metrics to pinpoint the root cause of issues.
Historical Data: Review historical performance data to identify trends and recurring issues that may be affecting application performance.
Third-Party Services
Monitoring the impact of third-party libraries and SDKs on resource usage
Ensuring that third-party integrations do not degrade overall performance
Ensure third-party services meet performance expectations by comparing historical data
Production Monitoring **
Monitoring metric performance
Track historical trends metrics to maintain optimal performance
Deployment and Scale **
Compare resource usage before and after deployments or scaling to ensure no performance degradation
Pre and Post Deployment/Scaling Comparison: Compare key performance metrics before and after deployment or scaling to assess the impact.
Custom Metrics: Monitor specific metrics related to the new features or changes introduced in the deployment.
Rollback Indicators: Quickly identify any negative impacts, such as increased error rates or degraded performance, to make informed rollback decisions if necessary.
System Upgrades **
Verifying performance after software upgrades (runtime, new release, new feature, etc.)
Performance Validation: Validate that upgrades have not negatively impacted performance unexcepted.
Rollback Indicators: Quickly identify any negative impacts, such as degraded performance, to make informed rollback decisions if necessary.
** In collaboration with the DevOps teams.
For DevOps Engineers
DevOps engineers have few performance challenges when managing and operating App Service plans.
Scenario
Use case
How this Workbook helps?
Production Monitoring
Monitoring metric performance
Track historical trends metrics to maintain optimal performance
Scale
Ensuring that the app services can scale effectively to handle varying loads without sacrificing performance.
Track resource usage to ensure balanced resource allocation
Performance and Cost ***
Balancing performance and cost, especially when scaling up/out.
Track resource usage to ensure efficiency.
Resource Allocations ***
Deciding the right SKU of the App Service Plans (e.g.: CPU, memory) and configuring auto-scaling to handle varying loads.
Track resource usage to ensure resource right-sizing
Multiple-Environments ***
Managing configurations across different environments (development, staging, production) and multiple subscriptions.
Monitor and compare resource usage across different environments for optimal performance
Multiple-Regions ***
Managing configurations across different Regions (e.g., West Europe, East US, etc.) and multiple subscriptions.
Monitor and compare resource usage across different Regions for optimal performance
*** In collaboration with the FinOps teams.
For FinOps (Cost Efficiency)
Effective cost management is a critical aspect of cloud operations.
This Workbook provides several capabilities to help track and optimize your cloud spending:
Scenario
Use case
How this Workbook helps?
Resource Optimization / Over-Provisioning
Optimizing application code and resource utilization
Resource Utilization Insights: Track usage to identify underutilized resources that can be scaled down or repurposed.
Cost Analysis: Understand the cost implications of resource usage and make data-driven decisions to optimize both performance and cost.
Idle Resources
Identification of unused resources
Monitor App Service Plans that have not hosted any applications.
Reservations and Savings Plan
Identification of potential discounts
Monitor App Service Plans to understand the utilization and identify potential to apply Reservations or Saving Plans.
Conclusion
The Azure App Service Insights Workbook is a simple tool designed to simplify application management for developers, DevOps and FinOps teams. By offering a unified view of key metrics it streamlines operations and enhances efficiency across the board.
Whether you are a developer looking to optimize application performance, a DevOps engineer focused on reliability, or a FinOps engineer aiming to optimize and reduce costs, the Azure App Service Workbook has something valuable to use.
Microsoft Tech Community – Latest Blogs –Read More