-
Notifications
You must be signed in to change notification settings - Fork 201
[CCM]: Docs for dynamic toggle #11532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 2 commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
e4de4e6
Added docs for dynamig-toggle
joeyouss 61cf62f
minor edit
joeyouss f69d9c8
minor edit
joeyouss 0a5a1af
updated gif
joeyouss 4731c41
updated gif
joeyouss 12c4c90
added release notes
joeyouss e8b87f6
updated heading
joeyouss 9ae32a6
addressed comments
joeyouss 651cf34
addressed comments
joeyouss a818cc9
minor changes
joeyouss File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,81 +29,6 @@ Perspectives in Harness CCM provide powerful cost analysis capabilities through | |
- **Forecasted Cost**: The forecasted cost of the resources in the Perspective. | ||
- **Recommendations**: The recommendations for the resources in the Perspective. | ||
|
||
### Dynamic Perspective Reports | ||
|
||
<div style={{ | ||
backgroundColor: '#fff3cd', | ||
border: '1px solid #ffeaa7', | ||
borderRadius: '8px', | ||
padding: '16px', | ||
margin: '20px 0' | ||
}}> | ||
<p style={{margin: 0}}> | ||
<img src="/img/icon_ff.svg" alt="Feature Flag" width="18" style={{marginRight: '0.4rem', verticalAlign: 'middle'}}/> <strong>Behind a Feature Flag</strong> | ||
|
||
Currently, this early access feature is behind a feature flag . Contact [Harness Support](mailto:[email protected]) to enable the feature. | ||
</p> | ||
</div> | ||
|
||
**What are Dynamic Perspective Reports?** | ||
|
||
Dynamic Perspective Reports are a new capability that allows you to generate, schedule, and manage cost reports directly from your Perspectives. Create reports from your perspectives to bookmark specific filter and grouping configurations. No need to rebuild the same view repeatedly just save it once and access it anytime. Reports dynamically include all relevant data columns based on your selected grouping criteria and filters. This ensures consistency between your interactive perspective view and exported reports. | ||
|
||
<Tabs> | ||
<TabItem value="create-report" label="Create Reports"> | ||
|
||
|
||
<DocVideo src="https://app.tango.us/app/embed/9d694765-9542-47a8-a2fd-a23a2c01e2ca" style="min-height:720px" title="Perspective Overview in Harness CCM" /> | ||
|
||
1. Navigate to the specific Perspective you wish to create a report for. | ||
2. Click the **Download/Save as Report** button in the upper-right corner of the Perspective view | ||
|
||
**Report Details** | ||
- **Name**: Provide a name for your report | ||
- **Group By**: Select how data should be organized using [available grouping options](/docs/cloud-cost-management/use-ccm-cost-reporting/ccm-perspectives/key-concepts#grouping-options-by-data-source) | ||
- **Time Period**: Choose from Last 7 Days, Last 30 Days, Last Month, or This Month | ||
- **Granularity**: Select Daily, Weekly, or Monthly data points | ||
- **Filters**: Apply specific [filters](/docs/cloud-cost-management/use-ccm-cost-reporting/ccm-perspectives/key-concepts#group-by) to focus your report | ||
- **Data Columns**: Customize which metrics and dimensions appear in your report. The system automatically suggests relevant columns based on your Group By selection, but you can add or remove specific data points to tailor the report to your requirements. | ||
- **Export Rows up to**: Set maximum number of data rows to include | ||
- **Exclude rows with cost below**: Optionally exclude rows below a specified cost value | ||
|
||
**Delivery Options:** | ||
- **Scheduled Delivery:** Set specific date and time for automated delivery and frequency (Daily, Weekly, Monthly, Quarterly, Yearly). You can add up to 50 recipient email addresses (comma-separated) | ||
- **Immediate Download:** Download Perspective Chart data or Table data as CSV | ||
|
||
:::important | ||
|
||
- When the Dynamic Perspective Reports feature flag is enabled for your account, CCM will disable the legacy report creation method from the Perspective Creation workflow. | ||
|
||
<DocImage path={require('./static/enabled-ff.png')} width="80%" height="80%" title="Click to view full size image" /> | ||
|
||
- For previously created reports where **Group By settings, time range, or granularity were not available for reports,CCM utomatically takes these parameters from the perspective. In these cases, the maximum export row limit defaults to 10,000 rows. | ||
|
||
::: | ||
|
||
</TabItem> | ||
<TabItem value="view-report" label="View Saved Reports"> | ||
|
||
<DocImage path={require('./static/saved-reports.png')} width="100%" height="100%" title="Click to view full size image" /> | ||
|
||
To view and manage all your saved reports: Navigate to **Cloud Costs** > **Perspectives** > **Saved Reports** | ||
|
||
The Saved Reports page provides a comprehensive view of all your configured reports with the following options: | ||
|
||
* **Report Creation**: Create new reports by clicking **+New Report** > **Perspective** | ||
* **Report Management**: View information for each report including: | ||
* Report name and scheduled delivery frequency | ||
* Associated perspective | ||
* Time period selected for data | ||
* Creation and modification metadata | ||
* **Report Actions**: You can: | ||
* Edit or Delete a report. | ||
* Subscribe or unsubscribe from scheduled deliveries. | ||
|
||
</TabItem> | ||
</Tabs> | ||
|
||
### Group By | ||
|
||
<DocImage path={require('./static/group-by.png')} width="100%" height="100%" title="Click to view full size image" /> | ||
|
@@ -322,7 +247,151 @@ To view only the costs that appear as "No [GroupBy]", use the **IS NULL** filter | |
|
||
::: | ||
|
||
## 🏷️ Label Migration: Label vs. Label V2 | ||
## Features behind Feature Flag | ||
|
||
<div style={{ | ||
backgroundColor: '#fff3cd', | ||
border: '1px solid #ffeaa7', | ||
borderRadius: '8px', | ||
padding: '16px', | ||
margin: '20px 0' | ||
}}> | ||
<p style={{margin: 0}}> | ||
<img src="/img/icon_ff.svg" alt="Feature Flag" width="18" style={{marginRight: '0.4rem', verticalAlign: 'middle'}}/> <strong>Behind a Feature Flag</strong> | ||
|
||
The below listed features are behind a feature flag. Contact [Harness Support](mailto:[email protected]) to enable the feature for usage. | ||
</p> | ||
</div> | ||
|
||
### Dynamic Perspective Reports | ||
|
||
**What are Dynamic Perspective Reports?** | ||
|
||
Dynamic Perspective Reports are a new capability that allows you to generate, schedule, and manage cost reports directly from your Perspectives. Create reports from your perspectives to bookmark specific filter and grouping configurations. No need to rebuild the same view repeatedly just save it once and access it anytime. Reports dynamically include all relevant data columns based on your selected grouping criteria and filters. This ensures consistency between your interactive perspective view and exported reports. | ||
|
||
|
||
<Tabs> | ||
<TabItem value="create-report" label="Create Reports"> | ||
|
||
|
||
<DocVideo src="https://app.tango.us/app/embed/9d694765-9542-47a8-a2fd-a23a2c01e2ca" style="min-height:720px" title="Perspective Overview in Harness CCM" /> | ||
|
||
1. Navigate to the specific Perspective you wish to create a report for. | ||
2. Click the **Download/Save as Report** button in the upper-right corner of the Perspective view | ||
|
||
**Report Details** | ||
- **Name**: Provide a name for your report | ||
- **Group By**: Select how data should be organized using [available grouping options](/docs/cloud-cost-management/use-ccm-cost-reporting/ccm-perspectives/key-concepts#grouping-options-by-data-source) | ||
- **Time Period**: Choose from Last 7 Days, Last 30 Days, Last Month, or This Month | ||
- **Granularity**: Select Daily, Weekly, or Monthly data points | ||
- **Filters**: Apply specific [filters](/docs/cloud-cost-management/use-ccm-cost-reporting/ccm-perspectives/key-concepts#group-by) to focus your report | ||
- **Data Columns**: Customize which metrics and dimensions appear in your report. The system automatically suggests relevant columns based on your Group By selection, but you can add or remove specific data points to tailor the report to your requirements. | ||
- **Export Rows up to**: Set maximum number of data rows to include | ||
- **Exclude rows with cost below**: Optionally exclude rows below a specified cost value | ||
|
||
**Delivery Options:** | ||
- **Scheduled Delivery:** Set specific date and time for automated delivery and frequency (Daily, Weekly, Monthly, Quarterly, Yearly). You can add up to 50 recipient email addresses (comma-separated) | ||
- **Immediate Download:** Download Perspective Chart data or Table data as CSV | ||
|
||
:::important | ||
|
||
- When the Dynamic Perspective Reports feature flag is enabled for your account, CCM will disable the legacy report creation method from the Perspective Creation workflow. | ||
|
||
<DocImage path={require('./static/enabled-ff.png')} width="80%" height="80%" title="Click to view full size image" /> | ||
|
||
- For previously created reports where **Group By settings, time range, or granularity were not available for reports,CCM utomatically takes these parameters from the perspective. In these cases, the maximum export row limit defaults to 10,000 rows. | ||
|
||
::: | ||
|
||
</TabItem> | ||
<TabItem value="view-report" label="View Saved Reports"> | ||
|
||
<DocImage path={require('./static/saved-reports.png')} width="100%" height="100%" title="Click to view full size image" /> | ||
|
||
To view and manage all your saved reports: Navigate to **Cloud Costs** > **Perspectives** > **Saved Reports** | ||
|
||
The Saved Reports page provides a comprehensive view of all your configured reports with the following options: | ||
|
||
* **Report Creation**: Create new reports by clicking **+New Report** > **Perspective** | ||
* **Report Management**: View information for each report including: | ||
* Report name and scheduled delivery frequency | ||
* Associated perspective | ||
* Time period selected for data | ||
* Creation and modification metadata | ||
* **Report Actions**: You can: | ||
* Edit or Delete a report. | ||
* Subscribe or unsubscribe from scheduled deliveries. | ||
|
||
</TabItem> | ||
</Tabs> | ||
|
||
----- | ||
|
||
### Dynamic Cost Categories Toggle | ||
**Feature Flag Name: `CCM_COST_CATEGORY_STAMPED_DATA`** | ||
|
||
<DocImage path={require('./static/dynamic-toggle.png')} width="100%" height="100%" title="Click to view full size image" /> | ||
|
||
The Dynamic toggle on the Perspective page gives you control over how cost category rules are applied to your cost data. It lets you balance real-time accuracy with faster performance. | ||
|
||
| Mode | Data Source | Update Frequency | Performance | Behavior | | ||
| --- | --- | --- | --- | --- | | ||
| **Dynamic ON** | Runtime cost category rules | Immediate | ⏱️ Slower | Always applies the latest rules instantly | | ||
| **Dynamic OFF** | Stored cost category rules in datasets | Daily | ⚡ Faster | Uses stored rules if daily backfill job is complete.<br/>⚠️ If job is running, stored data is unavailable → Perspective switches to runtime (Dynamic ON) | | ||
|
||
#### Internal Working: | ||
joeyouss marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
<DocImage path={require('./static/dynamic-toggle.gif')} width="100%" height="100%" title="Click to view full size image" /> | ||
|
||
**If Dynamic ON (Runtime Mode):** | ||
- Perspectives apply **cost category rules as soon as the page loads (dynamically)**. | ||
- Any recent changes to cost category rules (even from a few minutes ago) are reflected immediately. | ||
- ⏱️ Load times may be slower since rules are processed at runtime. | ||
|
||
**If Dynamic OFF (Stored Data Mode):** | ||
- Harness CCM stores cost category rules in a dataset. This dataset is updated daily and updates the cost category rules for the current month. | ||
- When Dynamic Toggle is OFF, Perspectives use **cost category rules from the stored dataset**. | ||
- This ensures ⚡ **faster performance** since stored data is used without any computations at runtime. | ||
- Note that if in case, CCM's daily process of updating the dataset is still running, **stored data is not available and only Dynamic ON (runtime calculation) is available** and a message will be displayed on the UI to inform. | ||
<DocImage path={require('./static/updation-in-process.png')} width="90%" height="90%" title="Click to view full size image" /> | ||
|
||
:::note | ||
**Historical Data**: CCM updates cost category rules **daily for the current month only**. For previous months with Dynamic OFF, Perspectives use the rules that existed when that month's data was ingested. To apply new rules to historical data, contact support to request a backfill. | ||
::: | ||
|
||
<details> | ||
<summary>Example explaining Dynamic Toggle</summary> | ||
|
||
Suppose you have a Cost Category called "Environment" with the following rules: | ||
Rule 1 → If the label = prod, assign to Production Cost Bucket | ||
Rule 2 → If the label = dev, assign to Development Cost Bucket | ||
|
||
At 10:05 AM, you update Rule 2 to assign dev → Engineering instead of Development. | ||
|
||
**Dynamic ON (Runtime Calculation)** | ||
At 10:06 AM, you open your Perspective. | ||
- The Perspective immediately applies the new rule, and you see costs categorized under Engineering. | ||
- ⏱️ It may take a bit longer to load since the rules are processed at runtime. | ||
- ✅ Provides immediate visibility but with potential performance impact. | ||
|
||
**Dynamic OFF (Stored/Stamped Data)** | ||
At 10:06 AM (Before Backfill Completes): | ||
- You open your Perspective. | ||
- Since database hasn’t completed yet, the system falls back to runtime calculation. | ||
- You still see costs categorized under Engineering (just like with Dynamic ON). | ||
- ⏱️ Performance is similar to Dynamic ON at this point. | ||
|
||
At 2:30 PM (After Backfill Completes): | ||
- The database updation process has now completed. | ||
- The Perspective uses the pre-stored cost categories that now include the Engineering rule. | ||
- ⚡ Loads much faster since it uses stored data. | ||
- ✅ Data is consistent across all historical periods. | ||
|
||
</details> | ||
|
||
----- | ||
|
||
## Label Migration: Label vs. Label V2 | ||
|
||
<div style={{ | ||
backgroundColor: '#fff3cd', | ||
|
@@ -358,7 +427,7 @@ After Label V2, AWS labels are stored as-is without any normalization. | |
margin: '15px 0' | ||
}}> | ||
<h4 style={{margin: '0 0 10px 0', color: '#0066cc'}}>✅ Migration Required</h4> | ||
<p style={{margin: '0'}}>You need to migrate if you have <strong>existing Perspectives that use AWS Labels</strong> for grouping or filtering. Check your Perspectives for any Label-based rules.</p> | ||
<p style={{margin: '0'}}>You need to migrate if you have <strong>existing Perspectives that use AWS Labels</strong> for grouping or filtering. Migration is done by Harness CCM. If you want to know the status of your migration, please contact Harness support</p> | ||
</div> | ||
|
||
<div style={{ | ||
|
@@ -372,107 +441,6 @@ After Label V2, AWS labels are stored as-is without any normalization. | |
<p style={{margin: '0'}}>If you're a new user or haven't used Labels in your Perspectives, simply use <strong>Label V2</strong> for all new configurations.</p> | ||
</div> | ||
|
||
### Migration Steps for Existing Users | ||
|
||
<iframe | ||
src="https://app.tango.us/app/embed/44d091fd-3177-44a1-b575-1a5a8febf36d" | ||
title="Migrating Label to Label V2" | ||
style={{minHeight:'480px', border: '1px solid #dee2e6', borderRadius: '8px'}} | ||
width="100%" | ||
height="100%" | ||
referrerpolicy="strict-origin-when-cross-origin" | ||
frameborder="0" | ||
webkitallowfullscreen="webkitallowfullscreen" | ||
mozallowfullscreen="mozallowfullscreen" | ||
allowfullscreen="allowfullscreen"> | ||
</iframe> | ||
|
||
#### UI Migration Process | ||
|
||
1. **Identify affected Perspectives**: Review Perspectives using AWS Label-based grouping or filtering | ||
2. **Update each Perspective**: Change "Label" selections to "Label V2" | ||
3. **Verify functionality**: Ensure cost data and filters work correctly after migration | ||
|
||
#### API Migration Process | ||
|
||
For API users, update the identifier from `LABEL` to `LABEL_V2`: | ||
|
||
<Tabs groupId="before-after"> | ||
<TabItem value="before" label="Before (Legacy)"> | ||
|
||
```json | ||
{ | ||
"field": { | ||
"fieldId": "labels.value", | ||
"fieldName": "key1", | ||
"identifier": "LABEL", | ||
"identifierName": "Label" | ||
}, | ||
"operator": "IN", | ||
"values": ["value1"] | ||
} | ||
``` | ||
|
||
</TabItem> | ||
<TabItem value="after" label="After (Label V2)"> | ||
|
||
```json | ||
{ | ||
"field": { | ||
"fieldId": "labels.value", | ||
"fieldName": "key1", | ||
"identifier": "LABEL_V2", | ||
"identifierName": "Label V2" | ||
}, | ||
"operator": "IN", | ||
"values": ["value1"] | ||
} | ||
``` | ||
|
||
</TabItem> | ||
</Tabs> | ||
|
||
Similarly, for `labels.key`: | ||
|
||
<Tabs groupId="before-after"> | ||
<TabItem value="before" label="Before (Legacy)"> | ||
|
||
```json | ||
{ | ||
"idFilter": { | ||
"field": { | ||
"fieldId": "labels.key", | ||
"fieldName": "", | ||
"identifier": "LABEL", | ||
"identifierName": "Label" | ||
}, | ||
"operator": "IN", | ||
"values": [] | ||
} | ||
} | ||
``` | ||
</TabItem> | ||
<TabItem value="after" label="After (Label V2)"> | ||
|
||
```json | ||
{ | ||
"idFilter": { | ||
"field": { | ||
"fieldId": "labels.key", | ||
"fieldName": "", | ||
"identifier": "LABEL_V2", | ||
"identifierName": "Label V2" | ||
}, | ||
"operator": "IN", | ||
"values": [] | ||
} | ||
} | ||
``` | ||
|
||
</TabItem> | ||
</Tabs> | ||
|
||
**Key Change**: Replace `"identifier": "LABEL"` with `"identifier": "LABEL_V2"` and update `"identifierName"` accordingly. | ||
|
||
## Organize Perspectives using Folders | ||
|
||
|
Binary file added
BIN
+502 KB
...anagement/3-use-ccm-cost-reporting/1-ccm-perspectives/static/dynamic-toggle.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+284 KB
...anagement/3-use-ccm-cost-reporting/1-ccm-perspectives/static/dynamic-toggle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+50.9 KB
...loud-cost-management/3-use-ccm-cost-reporting/1-ccm-perspectives/static/one.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+30.1 KB
...ment/3-use-ccm-cost-reporting/1-ccm-perspectives/static/updation-in-process.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.