

# FOCUS Dashboard
FOCUS Dashboard

## Introduction


 [The FinOps Cost and Usage Specification](https://focus.finops.org/) (FOCUS) is an open-source specification that defines clear requirements for cloud vendors to produce consistent cost and usage datasets.

Supported by the FinOps Foundation, FOCUS aims to reduce complexity for FinOps Practitioners so they can drive data-driven decision-making and maximize the business value of cloud, while making their skills more transferable across clouds, tools, and organizations.

The CID FOCUS Dashboard is an open-source and customizable dashboard that provides pre-defined visuals to get actionable insights from FOCUS data in Amazon QuickSight. It allows you to quickly get started with using FOCUS in your organization. The FOCUS Dashboard provides the following features:
+  **Consolidated view** of FOCUS data from multiple dimensions across your entire organization
+ Support for consolidation of **multiple FOCUS specification versions** from different cloud providers
+ Month-over-month trends with the ability to drill down from high-level visibility into resource-level details in a few clicks
+ Support of organizational taxonomy from tags
+ Effective discount rate calculations

## High Level Architecture


![\[Architecture High Level\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/images/architecture/focus-high-level.png)


1. AWS Data Exports service provides FOCUS data (currently supporting FOCUS 1.2 for AWS). Use the CID [Data Exports](data-exports.md) stack to activate it in your Management (Payer) Account and automatically configure the replication to a Data Collection Account.

1. Install [CID FOCUS Dashboard](#focus-dashboard-deployment) that leverages FOCUS data and provides a dynamically generated consolidated view in Amazon Athena. This view can be extended once you add FOCUS data from other providers.

1. Install the FOCUS data collection stack(s) that collect data from other providers. Currently we provide integrations to collect FOCUS data from [Microsoft Azure](https://catalog.workshops.aws/cidforazure/en-US/03-setup), [Google Cloud Platform](https://catalog.workshops.aws/cid-gcp-cost-dashboard/en-US/02-solution-design), and [Oracle Cloud Infrastructure](https://github.com/awslabs/cid-oci-cost-dashboard/). [Learn more](#focus-dashboard-add-focus-data-from-other-cloud-providers) about integration of FOCUS data. Typically these stacks leverage scheduled AWS Lambda or AWS Glue Jobs and retrieve data via APIs using credentials stored in AWS Secrets Manager. The data is encrypted with custom KMS keys to protect sensitive billing information from unauthorized access.

1. Update the focus\$1consolidation\$1view in Athena to include tables with FOCUS data from other cloud providers.

1. You can also export cost data from on-premises datacenters or SaaS providers in the same format and integrate them in a similar way.

## Demo Dashboard


Get more familiar with the dashboard using the live, interactive demo dashboard following this [link](https://cid.workshops.aws.dev/demo?dashboard=focus-dashboard&sheet=default).

Explore key FOCUS Dashboard capabilities in the [interactive presentation](https://app.storylane.io/share/zutqlizt5v45).

![\[FOCUS Dashboard Screenshot\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/focus_dashboard.png)


## Prerequisites


Before installing the FOCUS Dashboard, you need to enable FOCUS Data Export and consolidate it from your Management (Payer) Accounts in the Data Collection Account.

![\[High Level Focus Export From AWS\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/images/architecture/focus-aws.png)


1. Create a FOCUS Data Export following the steps in the [Data Export](data-exports.md) page and return to this page once completed.

The Data Export prerequisites support FOCUS 1.2 for AWS. If you are migrating from FOCUS 1.0, see [Migration to AWS FOCUS 1.2](migration-to-focus-1-2.md).

## Deployment


**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 your **Data Collection** Account.

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

    [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=FOCUS-Dashboard&param_DashboardId=focus-dashboard&param_RequiresDataExports=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=FOCUS-Dashboard&param_DashboardId=focus-dashboard&param_RequiresDataExports=yes) 

1. You can change the **Stack name** if you wish.

1. Leave **Parameters** values as they are.

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

1. 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.
**Note**  
 **Troubleshooting:** If you see the error "No export named cid-CidExecArn found" during stack deployment, make sure you have completed the prerequisite steps.
An 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 your **Data Collection** Account.

1. Open a command-line interface with permissions to run API requests in your AWS account. We recommend using [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), install Python 3.11 first:

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

1. Run the following command to deploy the dashboard:

   ```
   cid-cmd deploy --dashboard-id focus-dashboard
   ```

   Follow the instructions from the deployment wizard. More info about command-line options is available 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 via `cid-cmd --help`.

Data Exports can take up to 24-48 hours to deliver the first reports. If you just installed Data Exports, the dashboard will most likely be empty. Please allow up to 24 hours for data to arrive.

## Add FOCUS Data from Other Cloud Providers


The FOCUS Dashboard supports consolidation of FOCUS data from multiple FOCUS specification versions, allowing you to combine data from different cloud providers regardless of the FOCUS version they export.

After deploying each cloud provider integration, run the `cid-cmd update` command as described in [common update steps](#focus-dashboard-update-consolidation-view) to detect available FOCUS tables and select which ones to include in the consolidated view to be presented on FOCUS Dashboard.

### Microsoft Azure


![\[High Level Focus Export From Microsoft Azure\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/images/architecture/focus-azure.png)


1. Deploy the [FOCUS Dashboard](#focus-dashboard-deployment).

1. Deploy the [Cloud Intelligence Dashboard for Azure workshop](https://catalog.workshops.aws/cidforazure/en-US/03-setup), choosing FOCUS in [Export Type](https://catalog.workshops.aws/cidforazure/en-US/03_Setup/05_Parameters/#export-type).

1. Follow the [common update steps](#focus-dashboard-update-consolidation-view) below.

### Google Cloud Platform (GCP)


![\[High Level Focus Export From GCP\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/images/architecture/focus-gcp.png)


1. Deploy the [FOCUS Dashboard](#focus-dashboard-deployment).

1. Deploy the [GCP](https://catalog.workshops.aws/cid-gcp-cost-dashboard/en-US/02-solution-design) workshop.

1. Follow the [common update steps](#focus-dashboard-update-consolidation-view) below.

### Oracle Cloud Infrastructure (OCI)


![\[High Level Focus Export From OCI\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/images/architecture/focus-oci.png)


1. Deploy the [FOCUS Dashboard](#focus-dashboard-deployment).

1. Deploy the [OCI](https://catalog.workshops.aws/cidforoci/en-US/) workshop.

1. Follow the [common update steps](#focus-dashboard-update-consolidation-view) below.

### Common Update Steps


After deploying any cloud provider integration above, update the FOCUS Dashboard and consolidation view:

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

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

1. Run the following commands:

   ```
   pip3 install --upgrade cid-cmd
   cid-cmd update --recursive --force --dashboard-id focus-dashboard
   ```

   If using [CloudShell](https://console.aws.amazon.com/cloudshell), replace the first line with:

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

1. Select the FOCUS tables you would like to include in the consolidated view when prompted.

![\[Selecting FOCUS tables for consolidation\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/focus_update.gif)


## Update


Dashboards are not updated with an update of the CloudFormation stack. There are two update options depending on your needs:

### Dashboard Update


When a new version of the dashboard template is released, update your dashboard by running:

```
pip3 install --upgrade cid-cmd
cid-cmd update --dashboard-id focus-dashboard
```

If using [CloudShell](https://console.aws.amazon.com/cloudshell), replace the first line with:

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

This updates the dashboard visuals to the latest template version.

### Dashboard and Data Schema Update


To add new FOCUS tables from other cloud providers, include new tags, or update the consolidation view schema, run:

```
pip3 install --upgrade cid-cmd
cid-cmd update --recursive --force --dashboard-id focus-dashboard
```

If using [CloudShell](https://console.aws.amazon.com/cloudshell), replace the first line with:

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

This updates the dashboard, datasets and all dependent Athena views. You will be prompted to select which FOCUS tables to include in the consolidated view.

## Authors

+ Yuriy Prykhodko, Principal Technical Account Manager
+ Iakov Gan, Ex-Amazonian
+ Zach Erdman, Senior Product Manager
+ Mo Mohoboob, Senior Specialist SA
+ Marco De Bianchi, Sr. Delivery Consultant
+ Soham Majumder, Technical Account Manager

## Contributors

+ Petro Kashlikov, Senior Solutions Architect

## Feedback & Support


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

## FAQ


### Can we replace CUR/CUDOS dashboard with FOCUS?


The FOCUS format does not currently include important information like [lineItem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O) that is critical for FinOps use cases. Until the FOCUS specification is extended to support this, we cannot recommend FOCUS for Cost Optimization scenarios. Nevertheless, FOCUS can be useful for a wide range of high-level reporting use cases.

### How can we add another FOCUS provider?


Feel free to contribute data export mechanisms for other FOCUS providers. We will be happy to review and reference them.

### Does the dashboard support multiple FOCUS versions?


Yes. The FOCUS Dashboard supports consolidation of multiple FOCUS specification versions. You can combine data from providers exporting different FOCUS versions (for example, FOCUS 1.0 and FOCUS 1.2) in the same consolidated view.

**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.

# Migration to AWS FOCUS 1.2
Migration to AWS FOCUS 1.2

## Migration Overview


 [FOCUS 1.2](https://focus.finops.org/) introduces additional columns and improvements to the FinOps Cost and Usage Specification. If you already have [AWS Data Exports](data-exports.md) FOCUS 1.0 enabled with the Cloud Intelligence Dashboards CloudFormation stack `CID-DataExports`, you can migrate to FOCUS 1.2 by following the steps below.

**Note**  
AWS Data Exports CloudFormation does not support in-place updates of the FOCUS table version. The migration requires temporarily disabling the FOCUS 1.0 export before enabling FOCUS 1.2.

## Prerequisites

+ Existing FOCUS 1.0 Data Export deployed via [AWS Data Exports](data-exports.md) CloudFormation stacks
+ Access to both the Management (Payer) Account and the Data Collection (Destination) Account

## Migration Steps


AWS Data Exports does not support in-place table version updates within an existing report. To migrate to FOCUS 1.2, you must first delete the existing FOCUS 1.0 report and then create a new FOCUS 1.2 report using the latest version of the CloudFormation template. The steps below walk you through this process.

### Step 1: Disable FOCUS 1.0 Export


1. Log in to your **Management (Payer)** Account.

1. Open the [CloudFormation Console](https://console.aws.amazon.com/cloudformation/home) and locate the **CID-DataExports-Source** stack.

1. Select **Update stack** → **Make a direct update** → **Use existing template** and change the **FOCUS** parameter to **No**.

1. Complete the stack update. This will temporarily delete the FOCUS 1.0 Data Export.

#### Click to see the example


![\[Disable FOCUS 1.0 Export\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/focus-migration-disable-1-0.png)


### Step 2: Enable FOCUS 1.2 Export in Source Account


1. Download the latest CloudFormation template from `https://aws-managed-cost-intelligence-dashboards.s3.amazonaws.com/cfn/data-exports-aggregation.yaml`.

1. In the **Management (Payer)** Account, open the **CID-DataExports-Source** stack again.

1. Select **Update stack** → **Make a direct update** → **Replace existing template** and choose **Upload a template file**, then upload the template you downloaded.

1. Set the **FOCUS** parameter to **Yes** to enable the FOCUS 1.2 version of the report.

1. Complete the stack update.

#### Click to see the example


![\[Enable FOCUS 1.2 in Source Account\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/focus-migration-enable-1-2-source.png)


### Step 3: Update Destination Account Stack


1. Log in to your **Data Collection (Destination)** Account.

1. Open the [CloudFormation Console](https://console.aws.amazon.com/cloudformation/home) and locate the **CID-DataExports-Destination** stack.

1. Select **Update stack** → **Make a direct update** → **Replace existing template** and choose **Upload a template file**, then upload the same template downloaded in Step 2.

1. Make sure the **FOCUS** parameter is set to **Yes**.

1. Complete the stack update.

#### Click to see the example


![\[Update Destination Account Stack\]](http://docs.aws.amazon.com/guidance/latest/cloud-intelligence-dashboards/images/focus-migration-enable-1-2-source.png)


### Step 4: Update FOCUS Dashboard and Views


To bring in the new FOCUS 1.2 columns and update the FOCUS Dashboard to version 1.2.0:

1. Log in to your **Data Collection (Destination)** Account.

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

1. Install or upgrade 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. Run the following command to update the dashboard and all dependent views:

   ```
   cid-cmd update --recursive --force --dashboard-id focus-dashboard
   ```

1. If you have integrations with other cloud providers installed, select the respective Athena tables with FOCUS data from those providers along with the AWS FOCUS table when prompted. `cid-cmd` will automatically discover available columns in each table and generate the `focus_consolidation_view`.

## Next Steps


After migrating to FOCUS 1.2, new FOCUS data will be delivered to the same S3 path where your FOCUS 1.0 data was stored. While the schemas are compatible, we recommend requesting a backfill to get historical AWS FOCUS data in version 1.2.

### Backfill Historical Data


You can [create a Support Case](https://support.console.aws.amazon.com/support/home#/case/create) requesting a [backfill](https://docs.aws.amazon.com/cur/latest/userguide/troubleshooting.html#backfill-data) of your FOCUS report with up to 36 months of historical data. The case must be created from each of your Source Accounts (typically Management/Payer Accounts).

Support ticket example:

```
Service: Billing
Category: Other Billing Questions
Subject: Backfill Data

Hello Dear Billing Team,
Please can you backfill the data in DataExport named `cid-focus` for last 12 months.
Thanks in advance,
```

You can also use the following command in CloudShell to create this case via command line:

```
aws support create-case \
    --subject "Backfill Data" \
    --service-code "billing" \
    --severity-code "normal" \
    --category-code "other-billing-questions" \
    --communication-body "
        Hello Dear Billing Team,
        Please can you backfill the data in DataExport named 'cid-focus' for last 12 months.
        Thanks in advance"
```

Make sure you create the case from your Source Accounts (typically Management/Payer Accounts).

### Verify Dashboard Status


Run the following command to check dataset status in Amazon QuickSight:

```
cid-cmd status --dashboard-id focus-dashboard
```

## Feedback


Please [contact the team](feedback-support.md) if you encounter any issues.