D
Dolev_Shor
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 |
|
Diagnosing Performance Bottlenecks | Investigating issues like slow response times, crashes, or memory leaks to find the root cause |
|
Third-Party Services |
| 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 |
|
System Upgrades ** | Verifying performance after software upgrades (runtime, new release, new feature, etc.) |
|
** 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 |
|
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.
Continue reading...