Azure Resource Monitoring: The key method for Holistic Monitoring
Published: 2023-05-01 10:09:55

## Introduction
When your organization has started to adopt Azure, the continuously increasing number of Azure resources throughout all your Development, Test, and Production subscriptions make it hard to keep on top of the health of all those resources. So, it is important to have proactive Azure resource monitoring to know when something unexpected happens.

This blog looks at the different types of monitoring, manual monitoring difficulties, and the difference between Application Performance Monitoring products and Cloud Management products.

## Different types of monitoring
Before looking into the other topics, let’s first discuss what kind of monitoring is relevant to be aware of the well-being of your Azure resources.

The following types should be considered for monitoring your Azure resources:
- Availability monitoring
- Health monitoring
- Performance monitoring

Let’s spend some time exploring what those Azure Monitoring types are about.

## Availability monitoring
All solution components must work as expected to meet the business requirements. KPIs are often used to monitor the overall availability of a solution. Such KPIs include Overall availability, Planned unavailability, and Unplanned availability. 

The expectations around solution availability can be registered as Service Level Agreements (SLAs). In such contracts, you can formalize subjects like Solution availability (based on KPIs), Performance Metrics, Response times, Planned Maintenance, and Usage statistics.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lt0exzokjks5u2cjxsga.png)

## Health monitoring
You also want to be aware of the health of the individual components of a solution, which concerns setting up the rules and conditions to determine the health of those components. Depending on the importance of the components, you can think of different notification policies.

For example, you can think of immediate notifications in case of critical components, delayed notifications in case of components of lesser importance, or scheduled health reports. You can also be aware of anomalies via health dashboards, scheduled health reports, etc.

## Performance monitoring
It is also essential to keep an eye on the solution’s performance. Functionally, it might work flawlessly, but if the solution is under stress because it is under-resourced, it cannot effectively be used. To understand the solution from a performance perspective, you could monitor, for example, the number of processed transactions within a specific timeframe or the number of requests per second. Besides technical performance, you could also monitor user satisfaction using an Apdex score.

## Manual versus Automated monitoring
Now that we understand the relevant types of monitoring, let’s also look briefly at how monitoring is taking place; manually or by using automated tooling.

## Manual monitoring
When monitoring needs to be done manually, administrators or support engineers must frequently check the status of the components comprising a solution. Manual monitoring requires proper procedures for monitoring responsibilities, skilled and disciplined engineers who perform the monitoring tasks, and precise escalation levels. Consider setting up proper dashboards in the Azure portal to reduce the daily monitoring effort.

## Automated monitoring
Monitoring can also be automated, and you can use anything from a scheduled PowerShell script to Azure out-of-the-box features or a third-party solution. Each choice comes with its own set of pros and cons. Script-based monitoring will be free but cumbersome and limited in capabilities. Third-party monitoring solutions, however, can be compelling but, in most cases, require license fees and a learning curve to get familiarized with the product.

## Challenges with manual monitoring
If your organization still needs to (yet) have a monitoring solution, monitoring has to be done manually. However, with that, several challenges arise. Such challenges include:

- Consistently performing the monitoring over time.
- Continuity of monitoring during any leave.
- The required skill level of monitoring engineers.
- Passive rather than proactive monitoring.

If not appropriately addressed, those challenges will bring the well-being of your Azure solutions at stake, so it is worth exploring automated monitoring tooling.

## Application Performance Monitoring solution or Cloud Management solution?
When you have decided to investigate purchasing a monitoring solution, there is still a choice to be made. Will you go for an Application Performance Monitoring (APM) or Cloud Management solution? Let’s look at a couple of pros and cons of both categories.

## Focus versus comprehensiveness
APM tools are focused on monitoring and optimizing application performance. On the other side, Cloud Management tools have a broader scope; besides monitoring capabilities, such products can also provide operational capabilities. This enables administrators to manage all aspects of their Azure solutions under one hood, which might be lacking with APM products.

## Customizability versus generic
By nature, APM products are focused on application performance. Because of that, such products provide a high degree of customizability regarding what can be monitored. With Cloud Management platforms, monitoring is more generic, and you may be unable to monitor the same metrics as with APM products.

## Additional costs versus cost-effectiveness
Since APM products focus solely on monitoring application performance, additional tooling might be required to monitor other aspects or administrative purposes. This would add additional costs in terms of licensing, etc. Cloud Management platforms might be a better choice because such products provide both monitoring and administrative capabilities.

## Cloud management with Serverless360
Serverless360 is a cloud management solution that enables you to keep control of your cloud solutions. To support different requirements, the product has four main modules. Those modules are:

- **Business Applications** – To support your Azure solutions from a technical perspective.
- **Business Activity Monitoring (BAM)** – To provide Business Users insight into their business transactions via portals and monitoring.
- **Azure Documenter** – Generate ad-hoc and scheduled reports about your Azure resources.
- **Cost Analyzer** – Get a grip on your Azure spending with cross-subscription overviews, budget monitoring, and resource optimization.

Most of those modules have different kinds of monitoring, but in this article, we mainly focus on Business Applications, so let’s have a little bit better look at that module in Serverless360.

With Business Applications, you can bundle the Azure resources across multiple Azure subscriptions, Resource Groups, and Tags that belong to an Azure solution into Business Application containers. Access to those Azure solutions is provided at the level of those business Applications. Within those Business Applications, you will find comprehensive monitoring and administrative features.

The [monitoring capabilities](https://www.serverless360.com/blog/monitoring-and-observability-in-azure-services) have rich means to send notifications of anomalies and contain automated discovery, thereby supporting the availability of your solution. Within Business Applications, you can also automate maintenance tasks like cleaning up dead-lettered messages, resubmitting Logic App-runs, etc.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h4nm574bdu1mumxlc7ry.png)

## Automated monitoring with Serverless360
As mentioned earlier in this article, with most modules of Serverless360, you can perform automated monitoring. Those modules are:

- **Business Applications** – Availability, Health, and Performance Monitoring.
- **Business Activity Monitoring** – Business Transaction Monitoring.
- **Cost Analyzer** – Actual/Amortized Costs Monitoring.

Let’s now focus on several kinds of automated monitoring that can be done with Business Applications.

## Availability Monitoring for Business Applications
In the Business Applications module, you group components that belong to the same solution into logical containers, aka Business applications. To understand the overall availability, automated monitoring can be done against the status of all the Resources. When resources are not in their expected state, you will receive notifications. You can configure parameters like the monitoring frequency and when you want to receive the notifications.

## Monitoring an API Endpoint
Consider an important API Endpoint you might have that you want to bring under monitoring. For example, you can think of monitoring the endpoint against a specific HTTP return code, like **HTTP equals 200**. If the API Endpoint does not return an HTTP 200, then you want a ticket to be created in your ServiceNow ticketing system, enabling the appropriate team to investigate the issue.

Scenarios like this can easily be set up with Serverless360. Actually, the monitoring and notification capabilities go further than just that; with respect to API Endpoints, you can monitor:

- HTTP return codes
- API Endpoint Response times
- Validate Text/XML/JSON responses


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fvpbjhrv480gajcrhie8.gif)

## Health Monitoring for Business Applications
For Health Monitoring purposes within Business Applications, you can schedule health reports that provide insights into the well-being of the resources within those Business Applications. You can configure how often you want to receive those reports and if you want to receive them only in case of anomalies.

## Monitoring failed Logic App runs
Besides monitoring the state of Resources, with Serverless360, you can also monitor the health of, for example, Logic App runs. This enables you to be aware of failed Logic App runs immediately after they happen, and take adequate actions. With the Automated Tasks feature in Serverless360, it is even possible to create a task to automatically resubmit failed runs. This is not only improving the overall health of your solutions but also reduces your workload!


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t7kz7lcrkqi7jtniddbu.png)

## Receive notifications where you need them most
Serverless360 Business Applications are flexible in terms of notification channels. You can receive notifications via:

- Collaboration platforms Microsoft Teams and Slack
- Ticketing systems ServiceNow and OpsGenie
- Azure DevOps, Azure OMS
- Email, PagerDuty, Twilio
- Webhook

By choosing the right notification channel, the right people will be informed, and notifications won’t go unseen.

## Conclusion
When you are looking for a cost-effective, ever-evolving solution to manage your Azure resources, Serverless360 might be the right product for you. You can read more about the product on the Serverless360 website. There, we provide an [obligation-free trial](https://www.serverless360.com/signup), but you could also discuss your challenges regarding managing your Azure resources with our team over a [demo](https://www.serverless360.com/request-demo/). They are happy to go on a call and see if Serverless360 would fit your organization and show you the product in detail.