Skip to content

Commit

Permalink
add preview tools
Browse files Browse the repository at this point in the history
  • Loading branch information
ejhenry committed Feb 10, 2025
1 parent 2a4c65c commit dcd7617
Show file tree
Hide file tree
Showing 4 changed files with 193 additions and 0 deletions.
14 changes: 14 additions & 0 deletions docs/content/tools-preview/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Tools (PREVIEW)
weight: 47
geekdocCollapseSection: true
---
This section lists all of the guidance for the new APRL tooling and automation released in preview. With this preview release the APRL automation scripts are now included in a PowerShell module available in the PowerShell Gallery. The spreadsheet produced by the analyzer script has also been updated to improve the workload analysis process and customer deliverable.

The guidance is broken down into the following sections:

- [WARA Collector Documentation](/Azure-Proactive-Resiliency-Library-v2/tools-preview/collector)
- [WARA Analyzer Documentation](/Azure-Proactive-Resiliency-Library-v2/tools-preview/analyzer)
- [WARA Reports Documentation](/Azure-Proactive-Resiliency-Library-v2/tools-preview/reports)

{{< toc >}}
35 changes: 35 additions & 0 deletions docs/content/tools-preview/analyzer/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: Analyzer Cmdlet
weight: 20
geekdocCollapseSection: false
---

{{< toc >}}

## Overview

This Data Analyzer cmdlet is the second script used during Well-Architected Reliability Assessment (WARA) engagements. Based on the data generated by the Collector cmdlet, the Data Analyzer cmdlet collects the necessary information about recommendations from the Azure Proactive Resiliency Library (APRL) and generates an Action Plan Excel spreadsheet. The goal of this tool is to summarize the collected data and provide actionable insights into the health and resiliency of the Azure environment.

## Requirements

- Windows OS
- [PowerShell 7](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.4)
- Microsoft Excel installed
- Role Based Access Control: Reader role to access to resources to be evaluated. Although access to the Azure Subscriptions is not required to run the script, the access will be required for the user to complete some manual validations of configurations of Azure resources after the script generates the Excel file.

## Quick Start (Local Machine only - Cloud Shell is not supported)

### Start-WARAAnalyzer
The `Start-WARAAnalyzer` cmdlet is used to analyze the collected data and generate the core WARA Action Plan Excel file.

{{< hint type=note >}}
Whatever directory you run the `Start-WARAAnalyzer` cmdlet in, the Excel file will be created in that directory. For example: if you run the `Start-WARAAnalyzer` cmdlet in the `C:\Temp` directory, the Excel file will be created in the `C:\Temp` directory.
{{< /hint >}}

You can review all of the parameters of Start-WARAAnalyzer [here](https://github.com/Azure/Well-Architected-Reliability-Assessment/blob/main/docs/wara/Start-WARAAnalyzer.md).

#### Examples

#### Run the analyzer against a specific JSON file.
```PowerShell
Start-WARAAnalyzer -JSONFile 'C:\WARA\WARA_File_2024-04-01_10_01.json'
110 changes: 110 additions & 0 deletions docs/content/tools-preview/collector/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
title: Collector Cmdlet
weight: 10
geekdocCollapseSection: false
---

{{< toc >}}

## Overview

This PowerShell module is part of the Microsoft Well-Architected Reliability Assessment (WARA) engagement. It helps customers validate whether their Azure resources are architected and configured according to Microsoft best practices. The collector cmdlet (Start-WARACollector) achieves this by running Azure Resource Graph queries (Kusto/KQL) against Azure subscriptions and resources. Additionally, it collects information about closed support tickets, active Azure Advisor reliability recommendations, past Azure Service Health retirement and outage notifications, and the configuration of Azure Service Health alerts, all of which are relevant for the reliability recommendations provided at the end of the engagement. The collected data is then structured and exported into a JSON file, which is later used as input for the second step in the analysis process, the Data Analyzer cmdlet (start-WARAAnalyzer).

{{< hint type=important >}}
These Azure Resource Graph queries only read ARM (Azure Resource Manager) data. They do not access or collect any keys, secrets, passwords, or other confidential information. The queries only gather information about how resources are deployed and configured. If you would like to learn more, you can explore the Azure Resource Graph Explorer and run some of the query examples provided in the Azure portal.
{{< /hint >}}

## Requirements

[Requirements for the WARA PowerShell module collector](https://github.com/Azure/Well-Architected-Reliability-Assessment?tab=readme-ov-file#requirements)
- [PowerShell 7.4](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.4)
- [Azure PowerShell modules](https://learn.microsoft.com/en-us/powershell/azure/install-azps-windows?view=azps-12.1.0&tabs=powershell&pivots=windows-psgallery)
- Az.ResourceGraph PowerShell Module 1.0 or later
- Az.Accounts PowerShell Module 3.0 or later
- Role Based Access Control: Reader role to access to resources to be evaluated

## Quick Start (Cloud Shell or Local Machine)

### Quick Workflow Example
```PowerShell
# Assume we running from a C:\WARA directory
# Installs the WARA module from the PowerShell Gallery.
Install-Module WARA
# Imports the WARA module to the PowerShell session.
Import-Module WARA
# Start the WARA collector.
Start-WARACollector -TenantID "00000000-0000-0000-0000-000000000000" -SubscriptionIds "/subscriptions/00000000-0000-0000-0000-000000000000"
# Assume output from collector is 'C:\WARA\WARA_File_2024-04-01_10_01.json'
Start-WARAAnalyzer -JSONFile 'C:\WARA\WARA_File_2024-04-01_10_01.json'
# Assume output from analyzer is 'C:\WARA\Expert-Analysis-v1-2025-02-04-11-14.xlsx'
Start-WARAReport -ExpertAnalysisFile 'C:\WARA\Expert-Analysis-v1-2025-02-04-11-14.xlsx'
#You will now have your PowerPoint and Excel reports generated under the C:\WARA directory.
```

### Start-WARACollector
These instructions are the same for any platform that supports PowerShell. The following instructions have been tested on Azure Cloud Shell, Windows, and Linux.

You can review all of the parameters on the Start-WARACollector [here](https://github.com/Azure/Well-Architected-Reliability-Assessment/blob/main/docs/wara/Start-WARACollector.md).

{{< hint type=note >}}
Whatever directory you run the `Start-WARACollector` cmdlet in, the Excel file will be created in that directory. For example: if you run the `Start-WARACollector` cmdlet in the `C:\Temp` directory, the Excel file will be created in the `C:\Temp` directory.
{{< /hint >}}

1. Install the WARA module from the PowerShell Gallery.
```powershell
# Installs the WARA module from the PowerShell Gallery.
Install-Module WARA
```
1. Import the WARA module.
```powershell
# Import the WARA module.
Import-Module WARA
```
1. Start the WARA collector. (Replace these values with your own)
```powershell
# Start the WARA collector.
Start-WARACollector -TenantID "00000000-0000-0000-0000-000000000000" -SubscriptionIds "/subscriptions/00000000-0000-0000-0000-000000000000"
```

### Examples

#### Run the collector against a specific subscription.
```PowerShell
Start-WARACollector -TenantID "00000000-0000-0000-0000-000000000000" -SubscriptionIds "/subscriptions/00000000-0000-0000-0000-000000000000"
```

#### Run the collector against a multiple specific subscriptions.
```PowerShell
Start-WARACollector -TenantID "00000000-0000-0000-0000-000000000000" -SubscriptionIds @("/subscriptions/00000000-0000-0000-0000-000000000000","/subscriptions/00000000-0000-0000-0000-000000000001")
```

#### Run the collector against a specific subscription and resource group.
```PowerShell
Start-WARACollector -TenantID "00000000-0000-0000-0000-000000000000" -SubscriptionIds "/subscriptions/00000000-0000-0000-0000-000000000000" -ResourceGroups "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/RG-001"
```

#### Run the collector against a specific subscription and resource group and filtering by tag key/values.
```PowerShell
Start-WARACollector -TenantID "00000000-0000-0000-0000-000000000000" -SubscriptionIds "/subscriptions/00000000-0000-0000-0000-000000000000" -ResourceGroups "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/RG-001" -Tags "Env||Environment!~Dev||QA" -AVD -SAP -HPC
```

#### Run the collector against a specific subscription and resource group, filtering by tag key/values and using the specialized resource types (AVD, SAP, HPC, AVS).
```PowerShell
Start-WARACollector -TenantID "00000000-0000-0000-0000-000000000000" -SubscriptionIds "/subscriptions/00000000-0000-0000-0000-000000000000" -ResourceGroups "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/RG-001" -Tags "Env||Environment!~Dev||QA" -AVD -SAP -HPC
```

#### Run the collector using a configuration file.
```PowerShell
Start-WARACollector -ConfigFile "C:\path\to\config.txt"
```

#### Run the collector using a configuration file and using the specialized resource types (AVD, SAP, HPC, AVS).
```PowerShell
Start-WARACollector -ConfigFile "C:\path\to\config.txt" -SAP -AVD
```
34 changes: 34 additions & 0 deletions docs/content/tools-preview/reports/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: Reports Cmdlet
weight: 30
geekdocCollapseSection: false
---

{{< toc >}}

## Overview

The Reports cmdlet serves as the final step in a Well-Architected Reliability Assessment (WARA) engagement. It takes the Excel spreadsheet generated by the Data Analyzer cmdlet and converts it into Microsoft Word, PowerPoint, and Excel formats. The Reports cmdlet automates the process of creating comprehensive reports from the analyzed data, making it easier to share insights and recommendations.

## Requirements

- [PowerShell 7](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.4)
- Microsoft Excel, Word and PowerPoint installed
- Role Based Access Control: Reader role to access to resources to be evaluated. Although access to the Azure Subscriptions is not required to run the script, the access will be required for the user to complete some manual validations of configurations of Azure resources after the script generates the Excel file.

## Quick Start (Local Machine only - Cloud Shell is not supported)

### Start-WARAReport
The `Start-WARAReport` cmdlet is used to generate the WARA reports.

{{< hint type=note >}}
Whatever directory you run the `Start-WARAReport` cmdlet in, the Word and PowerPoint files will be created in that directory. For example: if you run the `Start-WARAReport` cmdlet in the `C:\Temp` directory, the Word and PowerPoint files will be created in the `C:\Temp` directory.
{{< /hint >}}

You can review all of the parameters of Start-WARAReport [here](https://github.com/Azure/Well-Architected-Reliability-Assessment/blob/main/docs/wara/Start-WARAReport.md).
#### Examples

#### Create the Word and PowerPoint reports from the Action Plan Excel output.
```PowerShell
Start-WARAReport -ExpertAnalysisFile 'C:\WARA\Expert-Analysis-v1-2025-02-04-11-14.xlsx'
```

0 comments on commit dcd7617

Please sign in to comment.