Blog Post

Azure for ISV and Startups Technical Blog
6 MIN READ

Simplify app management with the Azure App Service Insights Workbook

Dolev_Shor's avatar
Dolev_Shor
Icon for Microsoft rankMicrosoft
Jul 08, 2024

 

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.

Updated Jul 08, 2024
Version 1.0
No CommentsBe the first to comment