Azure Monitor is a powerful tool for storing logs and metrics. By default, Azure automatically sends the metrics for all your resources (such as CPU usage, App Services, etc.) to Azure Monitor. This is one of the things I love most about working in the cloud—every service is built with monitoring in mind. It means you get immediate visibility into what’s happening with your resources, like CPU, memory, disk usage, and more. Azure also gives you the flexibility to send custom metrics to monitor your specific needs.
Sounds great, right? So why not send all your metrics to Azure Monitor?
The first thing that comes to mind is probably cost, and that’s a valid concern—nothing in the cloud is free. But assuming cost isn’t an issue, what else might hold you back?
Here are a few things to consider:
- Retention Limits:
Metrics are only stored for 93 days. Unfortunately, there’s no option to extend this retention period; it’s fixed. - Query Limitations:
You can only run queries for up to 30 days of data at a time. - API-Driven Interface:
The interface to access and query metrics is API-based, which lacks the rich querying features of tools like InfluxDB or Prometheus. - Limited Visualization Tools:
Azure Monitor doesn’t offer much in terms of visualization, aside from its own dashboards. Unlike other platforms, there are no built-in tools like Grafana for more flexible, customizable views. - Lack of Prebuilt Solutions:
With InfluxDB or Prometheus, there are ready-made solutions like Telegraf and Grafana that can help you get up and running quickly. In contrast, Azure Monitor requires you to build your monitoring setup from scratch.