From b6d3f71b763f2ac61e51c530cc141284e4381756 Mon Sep 17 00:00:00 2001 From: Justin Dyer Date: Tue, 6 Feb 2024 11:30:44 -0500 Subject: [PATCH 1/3] Added Visualization section and Azure Managed Grafana page --- .../visualizations/Azure Dashboards/_index.md | 9 ++++ .../Azure Managed Grafana/_index.md | 42 ++++++++++++++++++ .../visualizations/Azure Workbooks/_index.md | 9 ++++ .../visualizations/Health Modeling/_index.md | 6 +++ .../content/visualizations/Power BI/_index.md | 9 ++++ docs/content/visualizations/_index.md | 5 +++ docs/static/img/grafana-tab.png | Bin 0 -> 111374 bytes 7 files changed, 80 insertions(+) create mode 100644 docs/content/visualizations/Azure Dashboards/_index.md create mode 100644 docs/content/visualizations/Azure Managed Grafana/_index.md create mode 100644 docs/content/visualizations/Azure Workbooks/_index.md create mode 100644 docs/content/visualizations/Health Modeling/_index.md create mode 100644 docs/content/visualizations/Power BI/_index.md create mode 100644 docs/content/visualizations/_index.md create mode 100644 docs/static/img/grafana-tab.png diff --git a/docs/content/visualizations/Azure Dashboards/_index.md b/docs/content/visualizations/Azure Dashboards/_index.md new file mode 100644 index 000000000..75c4de232 --- /dev/null +++ b/docs/content/visualizations/Azure Dashboards/_index.md @@ -0,0 +1,9 @@ +--- +title: Azure Dashboards +geekdocCollapseSection: true +--- + +## Overview +[Azure dashboards](https://learn.microsoft.com/azure/azure-portal/azure-portal-dashboards) are useful in providing a "single pane of glass" of your Azure infrastructure and services. Dashboards are a focused and organized view of your cloud resources in the Azure portal. Use dashboards as a workspace where you can monitor resources and quickly launch tasks for day-to-day operations. + +## Under Construction... diff --git a/docs/content/visualizations/Azure Managed Grafana/_index.md b/docs/content/visualizations/Azure Managed Grafana/_index.md new file mode 100644 index 000000000..20019b037 --- /dev/null +++ b/docs/content/visualizations/Azure Managed Grafana/_index.md @@ -0,0 +1,42 @@ +--- +title: Azure Managed Grafana +geekdocCollapseSection: true +--- + +## Overview + +Grafana, built by [Grafana Labs](https://grafana.com/), is an open-source platform for data visualization, monitoring, and analysis. It allows you to query, visualize, alert on, and understand your metrics no matter where they are stored. [Azure Managed Grafana](https://learn.microsoft.com/azure/managed-grafana/overview) is a fully managed service built on top of the Grafana software that provides built-in support for Azure Monitor and Azure Data Explorer data sources. Azure Managed Grafana further provides user authentication and access control using Microsoft Entra identities and provides high availability, SLA guarantees and automatic software updates. + +Listed below are some examples of Grafana dashboards that visualize alerts from Azure. These dashboards can be [imported](https://learn.microsoft.com/azure/managed-grafana/how-to-create-dashboard?tabs=azure-portal#import-a-grafana-dashboard) into your own Grafana instance. + +You can also find information [below](#using-the-grafana-tab-in-the-services-section) on utilizing the Grafana tab found in the Services section of this site. + +## Azure Monitor Team Dashboards + +The Azure Monitor Team has built a [library](https://grafana.com/orgs/azuremonitorteam/dashboards) of dashboards that can be imported into your own instance of Grafana. Below are some examples from that library that help visualize alerting from Azure Monitor. + +- [Alert Consumption](https://grafana.com/grafana/dashboards/15128-azure-alert-consumption/) + + A summary of all alerts for the subscription and other filters selected. + + ![Alert Consumption Image](https://grafana.com/api/dashboards/15128/images/11874/image) + +- [Infrastructure Monitoring](https://grafana.com/grafana/dashboards/19943-azure-infrastructure-infrastructure-monitoring/) + + Displays traffic-light indicators showing the health of your Azure infrastructure resources based on key performance indicators and thresholds defined for each infrastructure resource type. + + ![Infrastructure Monitoring Image](https://grafana.com/api/dashboards/19943/images/15124/image) + +- [SCOM Managed Instance Operational Dashboard](https://grafana.com/grafana/dashboards/19919-azure-scom-managed-instance-operational-dashboard/) + + Operational dashboard for summary of alerts, heath, and performance of monitored resources connected to SCOM managed instance. + + ![SCOM Managed Instance Operational Dashboard Image](https://grafana.com/api/dashboards/19919/images/15100/image) + +
+ +## Using the Grafana Tab in the Services Section + +In the [Services](https://azure.github.io/azure-monitor-baseline-alerts/services/) section of this site where guidance is provided for each individual Azure service, you can find a "Grafana" tab which can be used to import a dashboard that contains a visualization for each alert threshold. As an example, if you go to the [services/Compute/virtualMachines](https://azure.github.io/azure-monitor-baseline-alerts/services/Compute/virtualMachines/) page, you will find a "Dashboard" section with a "Grafana" tab. Copy the JSON and use it to import a new dashboard in Grafana. See yellow highlight in screenshot below: + +![Screenshot of Grafana Tab](../../img/grafana-tab.png) diff --git a/docs/content/visualizations/Azure Workbooks/_index.md b/docs/content/visualizations/Azure Workbooks/_index.md new file mode 100644 index 000000000..b3009eeae --- /dev/null +++ b/docs/content/visualizations/Azure Workbooks/_index.md @@ -0,0 +1,9 @@ +--- +title: Azure Workbooks +geekdocCollapseSection: true +--- + +## Overview +[Azure Workbooks](https://learn.microsoft.com/azure/azure-monitor/visualize/workbooks-overview) provide a flexible canvas for data analysis and the creation of rich visual reports. You can use workbooks to tap into multiple data sources from across Azure and combine them into unified interactive experiences. + +## Under Construction... diff --git a/docs/content/visualizations/Health Modeling/_index.md b/docs/content/visualizations/Health Modeling/_index.md new file mode 100644 index 000000000..59aa226aa --- /dev/null +++ b/docs/content/visualizations/Health Modeling/_index.md @@ -0,0 +1,6 @@ +--- +title: Health Modeling +geekdocCollapseSection: true +--- + +## Under Construction... diff --git a/docs/content/visualizations/Power BI/_index.md b/docs/content/visualizations/Power BI/_index.md new file mode 100644 index 000000000..95fa347bb --- /dev/null +++ b/docs/content/visualizations/Power BI/_index.md @@ -0,0 +1,9 @@ +--- +title: Power BI +geekdocCollapseSection: true +--- + +## Overview +[Power BI](https://learn.microsoft.com/power-bi/fundamentals/power-bi-overview) is useful for creating business-centric dashboards and reports, along with reports that analyze long-term KPI trends. You can import the results of a log query into a Power BI dataset. Then you can take advantage of its features, such as combining data from different sources and sharing reports on the web and mobile devices. + +## Under Construction... diff --git a/docs/content/visualizations/_index.md b/docs/content/visualizations/_index.md new file mode 100644 index 000000000..46a0a4b34 --- /dev/null +++ b/docs/content/visualizations/_index.md @@ -0,0 +1,5 @@ +--- +title: Visualizations +weight: 11 +geekdocCollapseSection: true +--- diff --git a/docs/static/img/grafana-tab.png b/docs/static/img/grafana-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..3baca1f517f945e86ae08621e290446968ba6f50 GIT binary patch literal 111374 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