

# Support Cases Radar Dashboard
<a name="support-cases-radar"></a>

## Introduction
<a name="introduction"></a>

AWS Support Cases Radar Dashboard provides a centralized platform to consolidate, monitor and analyze [AWS Support Cases](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html) across all linked accounts and multiple AWS organizations. With unified view of all support cases, this dashboard empowers cloud governance teams to enhance operational efficiency and maximize the value delivered by AWS Support.

## Demo Dashboard
<a name="demo-dashboard"></a>

Get more familiar with Dashboard using the live, interactive demo dashboard following this [link](https://cid.workshops.aws.dev/demo?dashboard=support-cases-radar) 

![\[image of a support cases radar dashboard in Quick Sight\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/support_cases_radar_dashboard.png)


## Architecture Overview
<a name="architecture-overview"></a>

![\[Data Collection Overview\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/support_cases_radar_arch.png)


The Data Collection Stack collects the information about cases on a daily basis. Only the cases which have changes are collected. An Amazon Step Function saves case information on Amazon S3 and sends an event with case reference to the Default Bus of EventBridge. The Quick Sight dashboard is refreshed every night to provide case summary and insights.

## Prerequisites
<a name="prerequisites"></a>

1. Make sure all concerned accounts have a **Business**, **On-Ramp** or **Enterprise** [Support Plan](https://console.aws.amazon.com/support/plans/home).

1. Deploy or update [Data Collection Lab](data-collection.md) and make sure Support Cases Data Collection Module is enabled.

## Deployment
<a name="deployment"></a>

**Example**  
 **Prerequisite:** To install this dashboard using CloudFormation, you need to install Foundational Dashboards CFN with version v4.0.0 or above as described [here](deployment-in-global-regions.md#deployment-in-global-region-deploy-dashboard) 

1. Log in to to your **Data Collection** Account.

1. Click the Launch Stack button below to open the **pre-populated stack template** in your CloudFormation.

    [https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?templateURL=https://aws-managed-cost-intelligence-dashboards.s3.amazonaws.com/cfn/cid-plugin.yml&stackName=Support-Cases-Radar-Dashboard&param_DashboardId=support-cases-radar&param_RequiresDataCollection=yes](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?templateURL=https://aws-managed-cost-intelligence-dashboards.s3.amazonaws.com/cfn/cid-plugin.yml&stackName=Support-Cases-Radar-Dashboard&param_DashboardId=support-cases-radar&param_RequiresDataCollection=yes) 

1. You can change **Stack name** for your template if you wish.

1. Leave **Parameters** values as it is.

1. Review the configuration and click **Create stack**.

1. You will see the stack will start in **CREATE\$1IN\$1PROGRESS**. Once complete, the stack will show **CREATE\$1COMPLETE** 

1. You can check the stack output for dashboard URLs.

    **Troubleshooting:** If you see error "No export named cid-CidExecArn found" during stack deployment, make sure you have completed prerequisite steps.
Alternative method to install dashboards is the [cid-cmd](https://github.com/aws-solutions-library-samples/cloud-intelligence-dashboards-framework/blob/main/CID-CMD.md#command-line-tool-cid-cmd) tool.  

1. Log in to to your **Data Collection** Account.

1. Open up a command-line interface with permissions to run API requests in your AWS account. We recommend to use [CloudShell](https://console.aws.amazon.com/cloudshell).

1. In your command-line interface run the following command to download and install the CID CLI tool:

   ```
   pip3 install --upgrade cid-cmd
   ```

   If using [CloudShell](https://console.aws.amazon.com/cloudshell), use the following instead:

   ```
   sudo yum install python3.11-pip -y
   python3.11 -m pip install -U cid-cmd
   ```

1. In your command-line interface run the following command to deploy the dashboard:

   ```
   cid-cmd deploy ---dashboard-id support-cases-radar
   ```

   Please follow the instructions from the deployment wizard. More info about command line options are in the [Readme](https://github.com/aws-solutions-library-samples/cloud-intelligence-dashboards-framework/blob/main/CID-CMD.md#command-line-tool-cid-cmd) or `cid-cmd --help`.

## Optional Plugins
<a name="optional-plugins"></a>

Support Cases Radar has optional plugins that can be deployed to enable additional capabilities such as a generative AI case summarization.

 [Optional Plugins](optional-plugin.md) 

## Update
<a name="update"></a>

Please note that dashboards are not updated with update of CloudFormation Stack. When new version of the dashboard template is released, you can update your dashboard by running the following command in your command-line interface:

```
cid-cmd update --dashboard-id support-cases-radar
```

## Authors
<a name="authors"></a>
+ Raffy Armistead, Senior Technical Account Manager
+ Samuel Chniber, Senior Solution Architect
+ Iakov Gan, Ex-Amazonian
+ Yuriy Prykhodko, Principal Technical Account Manager

## Feedback & Support
<a name="support-case-radar-feedback-support"></a>

Follow [Feedback & Support](feedback-support.md) guide

**Note**  
These dashboards and their content (a) are for informational purposes only, (b) represent current AWS product offerings and practices, which are subject to change without notice, and (c) does not create any commitments or assurances from AWS and its affiliates, suppliers or licensors. AWS content, products or services are provided "as is" without warranties, representations, or conditions of any kind, whether express or implied. The responsibilities and liabilities of AWS to its customers are controlled by AWS agreements, and this document is not part of, nor does it modify, any agreement between AWS and its customers.

# Optional Plugins
<a name="optional-plugin"></a>

## Steps
<a name="steps"></a>
+  [Summarization Plugin](summarization-plugin.md) 

# Summarization Plugin
<a name="summarization-plugin"></a>

**Note**  
The AWS Support Cases Summarization powered by Amazon Bedrock may not capture all nuances of the original conversation with the AWS Support. It should be verified against the full transcript which remains the single source of truth for accuracy and completeness. See [AWS Responsible AI Policy](https://aws.amazon.com/ai/responsible-ai/policy/).

**Note**  
The AWS Support Cases Dashboard is not realtime and might have 24h-48h delay. For the ongoing cases please check AWS Support Center in the respective account.

## Authors
<a name="authors"></a>
+ Samuel Chniber, Senior Solution Architect
+ Iakov Gan, Ex-Amazonian
+ Yuriy Prykhodko, Principal Technical Account Manager

## Feedback & Support
<a name="summarization-plugin-feedback-support"></a>

Follow [Feedback & Support](feedback-support.md) guide

## Introduction
<a name="introduction"></a>

AWS Support Cases Summarization is a Plugin to the AWS Support Cases Radar Dashboard that leverages the power of Generative AI (GenAI) through the use of Amazon Bedrock.

This plugin aims at summarizing the [AWS support cases](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html) problem statement, communications with the AWS Support Engineers and recapping eventual actions to be carried out either by AWS or by the customer for resolution.

## Architecture Overview
<a name="architecture-overview"></a>

![\[Data Collection Overview\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/support_cases_summarization_arch.png)


The Summarization Stack deploys a rule to Default Eventbridge bus to capture events sent by the Data Collection Stack. The Eventbridge Rule processes the message by sending it to an Amazon SQS queue. The SQS Queue is responsible for triggering a lambda function that executes Bedrock API call for the summarization and enriches the collected support case data by adding the summaries back to Amazon S3.

## Deployment steps
<a name="deployment-steps"></a>

### Step 1 of 4: Deploy the AWS Support Cases Radar Dashboard
<a name="step-1-of-4-deploy-the-aws-support-cases-radar-dashboard"></a>

This plugin has a dependency on the successful deployment of the AWS Support Cases Radard Dashboard.

 [Read More](support-cases-radar.md) 

### Step 2 of 4: Enable Foundation Model on Amazon Bedrock
<a name="step-2-of-4-enable-foundation-model-on-amazon-bedrock"></a>

To get AWS Support Cases Summarized you need to [add access to Amazon Bedrock foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access-modify.html).

#### Click here to see instructions on the AWS Console
<a name="collapsible-section-id-summarization-plugin-1"></a>

![\[Enable Foundation Model on Amazon Bedrock\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/support_cases_summarization_model_access.gif)


### Step 3 of 4: (Optional) Deploy an Amazon Bedrock Guardrail in the Data Collection Account in the Inference Region
<a name="step-3-of-4-optional-deploy-an-amazon-bedrock-guardrail-in-the-data-collection-account-in-the-inference-region"></a>

 [Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) is a crucial security feature for generative AI applications that helps implement safeguards based on specific use cases and responsible AI policies. It provides an additional layer of protection on top of the native safeguards offered by foundation models (FMs).

We provide an example of Amazon Guardrails stack, but if your company is already using Guardrails you can skip this Step and continue to installation of the Plugin Stack (Step 4).

 [https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?&templateURL=https://aws-managed-cost-intelligence-dashboards-us-east-1.s3.amazonaws.com/cfn/plugins/support-case-summarization/guardrail/guardrail.yaml&stackName=CidSupportCaseBedrockGuardrailStack](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?&templateURL=https://aws-managed-cost-intelligence-dashboards-us-east-1.s3.amazonaws.com/cfn/plugins/support-case-summarization/guardrail/guardrail.yaml&stackName=CidSupportCaseBedrockGuardrailStack) 

#### Click here to know more about plugin stack parameters
<a name="collapsible-section-id-summarization-plugin-2"></a>

This plugin comes with the following reasonable defaults that can be overridden through the parameters exposed by the CloudFormation template:


| Parameter | Description | Default | 
| --- | --- | --- | 
|  BlockedInputMessage  |  Message to return when the Amazon Bedrock Guardrail blocks a prompt.  |  \$1"executive\$1summary":"Amazon Bedrock Guardrails has blocked the AWS Support Case Summarization.","proposed\$1solutions":"","actions":"","references":[],"tam\$1involved":"","feedback":""\$1  | 
|  BlockedOutputMessage  |  Message to return when the Amazon Bedrock Guardrail blocks a model response  |  ’’  | 
|  IncludeSexualContentFilter  |  Whether to include Sexual Content Filter in the Guardrail or not  |  'yes'  | 
|  SexualContentFilterInputStrength  |  The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces.  |  'HIGH'  | 
|  SexualContentFilterOutputStrength  |  The strength of the content filter to apply to model responses. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 
|  IncludeViolentContentFilter  |  Whether to include Violent Content Filter in the Guardrail or not  |  'yes'  | 
|  ViolentContentFilterInputStrength  |  The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 
|  ViolentContentFilterOutputStrength  |  The strength of the content filter to apply to model responses. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 
|  IncludeHateContentFilter  |  Whether to include Violent Content Filter in the Guardrail or not  |  'yes'  | 
|  HateContentFilterInputStrength  |  The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 
|  HateContentFilterOutputStrength  |  The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 
|  IncludeInsultsContentFilter  |  Whether to include Insults Content Filter in the Guardrail or not  |  'yes'  | 
|  InsultsContentFilterInputStrength  |  The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 
|  InsultsContentFilterOutputStrength  |  The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 
|  IncludeMisconductContentFilter  |  Whether to include Insults Content Filter in the Guardrail or not  |  'yes'  | 
|  MisconductContentFilterInputStrength  |  The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 
|  MisconductContentFilterOutputStrength  |  The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 
|  IncludePromptAttackContentFilter  |  Whether to include Insults Content Filter in the Guardrail or not  |  'yes'  | 
|  PromptAttackContentFilterInputStrength  |  The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces  |  'HIGH'  | 

### Step 3 of 4: Deploy the AWS Support Case Summarization Stack In the Data Collection Account
<a name="step-3-of-4-deploy-the-aws-support-case-summarization-stack-in-the-data-collection-account"></a>

In this step we will deploy the summarization Plugin stack via cloud formation.

 [https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?&templateURL=https://aws-managed-cost-intelligence-dashboards.s3.amazonaws.com/cfn/case-summarization/case-summarization.yaml&stackName=CidSupportCaseSummarizationStack](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?&templateURL=https://aws-managed-cost-intelligence-dashboards.s3.amazonaws.com/cfn/case-summarization/case-summarization.yaml&stackName=CidSupportCaseSummarizationStack) 

#### Click here to know more about plugin stack parameters
<a name="collapsible-section-id-summarization-plugin-3"></a>

This plugin comes with the following reasonable defaults that can be overridden through the parameters exposed by the CloudFormation template:


| Parameter | Description | Default | 
| --- | --- | --- | 
|  BedrockRegion  |  The AWS Region from which the Summarization is performed  |  us-east-1  | 
|  Instructions  |  Additional instructions passed to the Large Language Model for the summarization process customizability  |  ’’  | 
|  Provider  |  Large Language Model Provider for the summarization process customizability  |  Anthropic  | 
|  FoundationModel  |  Foundation Model to be used for the summarization process  |  Claude 3.5 Sonnet  | 
|  InferenceType  |  Summarization process Inference Type  |   "ON\$1DEMAND"   | 
|  Temperature  |  Summarization process Temperature  |  0  | 
|  MaxTokens  |  Summarization process Maximum Tokens  |  8096  | 
|  MaxRetries  |  Summarization process Maximum Retries  |  30  | 
|  Timeout  |  Summarization process Timeout in seconds  |  60  | 
|  BatchSize  |  Summarization process Batch Size for parallel processing  |  1  | 
|  GuardrailId  |  Amazon Bedrock Guardrail ID to be used (Use this parameter in case you are using an externally managed Guardrail configuration. Leave empty if not planning to use Amazon Bedrock Guardrail)  |  ’’  | 
|  GuardrailVersion  |  Amazon Bedrock Guardrail Version to be used (Use this parameter in case you are using an externally managed Guardrail configuration. Leave empty if not planning to use Amazon Bedrock Guardrail)  |  ’’  | 
|  GuardrailTrace  |  The trace behavior for the guardrail  |   "ENABLED"   | 

## Post Deployment
<a name="post-deployment"></a>

### Where i can see summarizations?
<a name="where-i-can-see-summarizations"></a>

You will be able to see summarizations in the dashboard. There are short executive summaries in the table with cases and also a more detailed information with the summary of solution and current actions in the table below once you select the case. The summaries only appear after 48-24h and only for updated cases.

### Can I force summarization for all cases?
<a name="can-i-force-summarization-for-all-cases"></a>

Yes, you can trigger the refresh of all Support Cases and it will generate summaries as well.

1. Go to the Amazon S3 Bucket of data collection and delete the folder `support-cases/` to trigger collection for the last 12 months. (Or you can modify `last_read` field in json file `s3://cid-data-XXX/support-cases/support-cases-status/payer_id=XXX/XXX.json` to trigger new collection and summaries generation for less then for 12 months).

1. Go to Amazon Step Functions and execute `CID-DC-support-cases-StateMachine` this must collect all Support Cases.

1. You can check the activity of the lambda `CID-DC-support-case-summarization-Lambda`. Make sure this lambda is not triggered errors (Typical issue is the enabling of access to the model. See above). 1. Go to Quick Sight and refresh the dataset `support_cases_communications_view`. Once the refresh finishes you can check the Dashboard. The table with cases and case details must contain executive and detailed summaries.

### How often Summarization are updates?
<a name="how-often-summarization-are-updates"></a>

The summarization plugin automatically generates summaries of support case histories based on past communications. The data collection by default operates on a daily basis. Once the plugin is deployed, the summarization stack enriches cases with summaries right after daily collecting new data. Each day, data collection gathers all communications that have occurred since the previous collection. The Quick Sight dashboard updates data on the daily schedule as well. As a result, there may be up to a 24-hour delay between when a communication occurs and when it appears in the dashboard. We recommend using the AWS Support center to get the latest information on the status of the current cases.