Combining Azure Monitor charts from different resources in one chart - azure

I was wondering if it was possible to combine 3 different metric charts in one chart.
I know this is possible when these are metrcics for 1 resource. but i want to combine 3 metrics charts of 3 resources (one resource type) into 1 chart.
From this
[
To this
PS: For extra information , the resource type I want to deploy this for is anaylis service. this is to get a better overview of all resources of analysis service in 1 chart

Yes, you can combine metrics from multiple resources into a single chart. In the portal, go to the Azure Monitor blade and click on Metrics. From there, you can build a single chart with metrics from multiple resources.
There are other options available too for visualizing your data that include Azure services (ie: Log Analytics, App Insights, etc.) and other 3rd party solutions. More details here.

You can’t do this in the default metrics explorer charts, as these only look at a single resource. To look across multiple resources you need to send you metric data into log analytics then use the data explorer to create a query that gets you the data you want and chart that.

Related

AzureMetrics Table vs Metrics in Azure Dasboard

I am working on Azure Monitor Dashboards.
I need to check the Health Status of my App Service.
If i run use option Metrics (2nd Image) add Health Status metrics and create chart
vs
If i run query on AzureMetrics Table will both return same result? I mean HOW both options are different from each other?
Both use the same source. The difference is that using the "Metrics" blade you can create charts withouth having to write queries using Kusto and anyone with basic knowledge can quickly create charts.
When using the "Logs" blade you have to write a query using Kusto to get the desired results and format the chart manually but you have more control in what and how data is displayed.
If i run query on AzureMetrics Table will both return same result? I
mean HOW both options are different from each other?
The difference between logs and metrics is,
Metrics reveal a service or application's tendencies and proclivities,
while logs focus on specific events. The goal of logs is to save as
much information—mostly technical informations—as possible about a
single event. Log data can be used to investigate occurrences and
assist with root-cause analysis of problems or defects, as well as an
increasing number of other applications.
For more information please refer the below links:-
MSFT TECHCOMMUNITY|Difference between Log Analytics and Monitor
Blogs|Azure Monitor and Azure Log Analytics & Logs or Metrics.

What is the difference between Azure Metrics Explorer and Azure dashboard?

If I would like to setup collection of custom metrics in Azure Insights and visualize some of them in a (nearly) real-time fashion and also see historic data aggregated, should I use Azure Metrics Explorer or Azure dashboard? What are they used for? What is the difference between them?
Thanks!
Azure Metrics Explorer
In an Azure metrics Explorer, we can select only one resource to view the metrics information.
If we want to visualize more than one resource in different subscription metrics are not possible in a single chart of Azure Metrics Explorer.
if you want to visualize metrics for more than one resource on another subscription you have to create a new chart.
Refer Azure Metrics Started Doc
Azure Dashboard
Allow you to launch tasks for Day-to-Day Operations.
Customizable based on Tasks, Projects, or User Roles.
Monitor the Performance, Availability, and Health of the Resources.
By using Dashboard we can monitor all our resources on a single page.
Refer Azure Dashboard
custom metrics in Azure Insights and visualize some of them in a (nearly) real-time fashion and also see historic data aggregated, should I use Azure Metrics Explorer or Azure dashboard
If you want to visualize Single App Insights Specific Data like (custom Metrics) you can choose Azure Metrics. Or if you want to visualize more than one resource metric you can choose the Azure Dashboard.

How to get hollistic view of Azure environment

There's an awful lot of disjointed documentation on monitoring network/resources in Azure. What I'm looking for is which pieces are needed to get information from VMs, NVA firewalls, azure load balancers, and other network resources and network connectivity into a single pain of glass in Azure. Only concerned about Azure, not on-prem for now.
I've come across azure monitor, log analytics work spaces, event hub, vm extensions, network watcher, insights, etc...but I'm not sure which are required and which are not. One doc leads to the next and I end up with 30 tabs open. I'll also need to be able to push logs to other security devices such as a SIEM.
Does anyone know of a deployment guide that wraps this all up in a more logical fashion? Does anyone have any feedback on which pieces from azure (not 3rd parties) are required at a minimum to accomplish a single pane of glass to view my Azure environment holistically?
General overview of observability in Azure
Likely, the thing you're looking for is Azure Monitor. It's an umbrella term for everything observability related inside Azure.
To store Metrics and Logs you need Log Analytics: it can query data with kusto query language, visualize results, define Alerts on queries.
Alerts is quite a complex beast, as it is spread across the entire cloud. Two types that I use the most:
log-analytics alert (which I mentioned above)
Alerts tab, which is available at every Azure component view. for example, open resource group, and scroll down to Monitoring section
Each component also has a subset of built-in metrics. Likely, you noticed that many azure components on the Overview view display some charts. For example, Azure Storage Account displays Total egress, Total ingress, and other line-charts. When you click on these charts you can customize them. These metrics and charts are free to use.
Microsoft also has all-in-one observability solution for Azure Functions and Web Apps: Application Insights
Dashboards allows to join multiple charts into a single view and share it with others.
If you care about security, Azure proposes Azure Security Center
Deployment/management strategy
I suggest to start with:
Create Log Analytics Workspace, which is the storage for metrics and logs. The azure docs article explains how to design it: how many instances to use, how to rate-limit ingestion (it might be expensive if goes out of control), how to access it and so on.
To get Azure components logs, look for Diagnostic Settings tab at a component page at Azure portal, but not all components has it (sic!). I suggest
sending the most critical data to Log Analytics workspace to store them in a queryable format for 30 days (it's in free tier). This is needed for investigating current issues with your infrastructure
if you might need logs later than 30 days - send them to Storage Account
you mentioned SIEM integration - route required events to Event Hub and then process the stream according to your requirements
So, if you need long-term storage - you need to create Azure Storage Account.
If you need real-time analysis - you need to build a pipeline based on Azure Event Hub.
If you have Azure Functions and Web Apps - add Application Insights. According to my experience, I would suggest starting with a separate instance per each Azure Function resource or Service.
Create Alerts for each component separately. If you do it through UI - open component page at the portal and look for Alerts tab there. If you're automating the process (please do so as soon as possible), do not expect easy trip: I used ARM templates and terraform - in both cases, there are dozens of barely documented features.
Join related components core-metrics into Dashboards and share it with the team. This guide is a good starting point. Note, when you share the dashboard, it's also persisted as an azure resource in the subscription.

Container Insights - Containerstats Dashboard

is it possible to show the Podstats of AKS on a shared Dashboard?
Why not, you would just need to pull that data from the OMS and create a custom dashboard from those queries.
if you click on the individual entry it will navigate to the OMS instance and show you the query needed to get that data.
Danny, Unfortunately there is no simple "click to pin this chart" functionality available currently in Container Insights (more modern name for that thing is Azure Monitor for Containers). We're looking to add it within a couple of months.
The chart does a query to Log Analytics store and goes into a bit of custom processing on the data received to render the chart. You can go to your cluster, "Metrics" on the menu on the left and chart the same thing there. You can pin from the metrics. Let me know if you need help with that I can provide more detailed instructions...

Application Insights custom metrics with scale-out / multiple instances: how do I combine or disambiguate across instances?

I have an Azure app service web app. I am tracking some custom metrics from this web app, using TelemetryClient.TrackMetric. I now want to scale out my app so that I have multiple instances of the app running (initially I will scale to 2 instances). Once I do this, each instance will start sending values for my custom metrics into the Application Insights data store.
When I look at my AI data inside the Azure portal Metrics Explorer or "Analytics" view, I believe I will see one metric, with the data from both my instances bundled together and averaged (probably I will see alternating datapoints, from instance 1 then 2 then 1 then 2 and so on). This is not very helpful to me. Ideally I want to be able to see two datasets, one for each of my two instances. Also ideally I would like to see a dataset representing the sum of the metric values from the two instances.
Does the API / framework provide any features to help me do this? What would be a good approach?
In my opinion, You should have the default collected property "Cloud role instance" available on the custom metric to segment/ filter on. Can you give it a try and see if it shows you the relevant information per instance?
According to the answers of this question Windows Azure Websites - Get Instance Identifier there is a way to distinguish one instance of the other.
Using that information you can include that identifier in the custom properties of your metric like this:
var metric = new MetricTelemetry("MyMetric", 8);
metric.Properties.Add("InstanceIdentifier", instanceIdentifier);
telemetry.TrackMetric(metric);
Now, not only can you create custom charts in the Dashboard, but also using Application Insights Analytics (https://learn.microsoft.com/en-us/azure/application-insights/app-insights-analytics) you can query the metrics per instance or combined and create tables, charts etc. based on the results.
For example:
customMetrics
| extend instanceIdentifier = tostring(customDimensions.InstanceIdentifier)
| summarize sum(value), avg(value) by instanceIdentifier, name
| project instanceIdentifier, name , avg_value, sum_value

Resources