Skip to main content

Key Concepts

Overview

Perspectives in Harness CCM provide powerful cost analysis capabilities through customizable views of your cloud spending data. This guide covers the key concepts and features available in Perspectives.

Perspective Drilldown

  • Total Cost: The total cost of the resources in the Perspective.
  • Budget: The budget for the resources in the Perspective.
  • Forecasted Cost: The forecasted cost of the resources in the Perspective.
  • Recommendations: The recommendations for the resources in the Perspective.

Group By

You can create a Perspective for your resources using rules and filters. The filters are used to group the resources. The following are the supported filters:

  • Cost Categories: You can create a perspective by filtering based on the cost categories you have created. To create cost categories, see Use Cost Categories.
  • Region: Each AWS, GCP, or Azure region you're currently running services in.
  • Product: Each of your active products with its cloud costs.
  • Cloud Provider: Filter and group costs by the cloud service provider (AWS, GCP, Azure, or Kubernetes clusters) to analyze spending across different cloud platforms.
  • Label: Each label that you assign to your AWS resources. You can select a label name to get more granular details of your label. For more information, go to Tagging your AWS resources. For tags to appear in the Perspective, you must activate the user-defined cost allocation tags in the AWS Billing and Cost Management console. For more information, go to Activating User-Defined Cost Allocation Tags. CCM updates the tag keys as follows:
    • For the user-defined tags, user_ prefix is added.
    • For the AWS system tags, aws_ prefix is added.
    • The characters that do not follow regex [a-zA-Z0-9_] are changed to _.
    • The tags are case-sensitive. If the tags are specified as UserName and username, then the number suffix _<Number>is added to the tag. For example, UserName and username_1.
  • Label V2: Preserves the original structure from AWS similar to how GCP, Azure and Cluster tags are stored. See Understanding the Difference: Label vs. Label V2 and Migrate from Label to Label V2.

Grouping Options by Data Source

CCM provides various grouping options to analyze your cloud costs based on different dimensions. Select the appropriate tab to view available grouping options for each cloud provider, container platform, or external data source.

AWS Grouping Options

CCM allows you to view your AWS costs at a glance, understand what is costing the most, and analyze cost trends across all your Amazon Web Services:

Grouping OptionDescription
AccountCost by AWS account connected via Harness AWS Cloud Provider, showing account name and ID
Billing EntityDistinguishes between AWS Marketplace transactions and other AWS service purchases (Learn more)
Instance TypeCost by Amazon EC2 instance type (e.g., t2.micro, m5.large)
Line Item TypeCost by charge type (Usage, Tax, Credit, etc.) (Learn more)
Payer AccountCost by AWS account that pays for member accounts in an AWS Organization
ServiceCost by AWS service (EC2, S3, RDS, etc.)
Usage TypeCost by specific resource usage measurement (e.g., BoxUsage:t2.micro(Hrs) for EC2 t2.micro instance hours)

Preferences

General Preferences

  • Show Others: The default perspective graph displays only the top 12 cost items. Enable this option to group all remaining costs into an "Others" category, ensuring you see your complete spending picture.

  • Show Anomalies: Highlight unusual spending patterns or sudden cost changes in your visualizations. This feature makes it easy to spot potential issues or unexpected charges that may require investigation. The number of anomalies are shown on the Group By graph in a red triangle.

  • Show Negative Cost: Displays instances where discounts exceed the actual billing amount, resulting in negative cost values in your reports. Displays the negative cost with a dotted red bar and labels it as NegativeCost in the legend. To view it, please select "Group By" as None because in other Group Bys, it might not appear in the top 12 entries.

  • Show Unallocated costs on clusters: In certain graphs, you may come across an item labeled as Unallocated. This entry is included to provide a comprehensive view of all costs. When you examine the Total Cost in the perspective, it encompasses the costs of all items, including the unallocated cost. This option is available only in perspectives with cluster rules. The Show "unallocated" costs on clusters option is only available in the chart when the Group By is using Cluster and the following options are selected:

    • Namespace
    • Namespace ID
    • Workload
    • Workload ID
    • ECS Task
    • ECS Task ID
    • ECS Service ID
    • ECS Service
    • ECS Launch Type ID
    • ECS Launch Type
info

Preferences on the perspective overview page are toggle only. They can't be saved at the perspective or account settings level.

Cloud-Based Preferences

Understanding "Others" vs "No [GroupBy]" Categories

When working with Perspectives that include multiple data sources, you'll see two different grouping behaviors:

"Others" Category

  • Shows when you have more than 12 cost items in a single data source
  • Groups the smaller cost items together for cleaner visualization
  • Example: If you have 20 AWS services, the top 12 show individually and the rest appear as "Others"

"No [GroupBy]" Category

  • Appears when you group by a field that doesn't exist in all your data sources
  • Shows costs from data sources that don't have the selected grouping field

Real-World Examples

Scenario 1: You have AWS + GCP data and group by "AWS->Account"

  • AWS costs → Show by individual account names
  • GCP costs → Show as "No Account" (because GCP doesn't have AWS accounts)

Scenario 2: You have AWS + GCP data and group by "GCP->Project"

  • GCP costs → Show by individual project names
  • AWS costs → Show as "No Project" (because AWS doesn't use GCP projects)

🔍 How to Filter "No [GroupBy]" Items

To view only the costs that appear as "No [GroupBy]", use the IS NULL filter:

  • Filter: AWS > Account IS NULL → Shows only non-AWS costs
  • Filter: GCP > Project IS NULL → Shows only non-GCP costs

🏷️ Label Migration: Label vs. Label V2

⚠️ Migration Notice for Existing Users

This migration is only required for existing users who are currently using the legacy Label system. If you're a new user or haven't used Labels before, you can start directly with Label V2.

Harness CCM is transitioning from the traditional Label system to the enhanced Label V2 system. Support for the legacy Label system will be discontinued in the coming months.

  • Label (Legacy): Normalizes AWS tags. GCP, Azure and Clusters tags are not normalized.
  • Label V2 (New): Preserves the original structure from AWS similar to how GCP, Azure and Cluster tags are stored.

Key Benefits of Label V2:

  • Original tags: Displays your original cloud tag keys exactly as they appear in AWS, Azure, or GCP
  • Improved Performance: Enhanced data processing and query performance
  • Label is a label that you assign to your AWS resources. See how AWS labels are created.

After Label V2, AWS labels are stored as-is without any normalization.

Who Needs to Migrate?

✅ Migration Required

You need to migrate if you have existing Perspectives that use AWS Labels for grouping or filtering. Check your Perspectives for any Label-based rules.

🆕 No Migration Needed

If you're a new user or haven't used Labels in your Perspectives, simply use Label V2 for all new configurations.

Migration Steps for Existing Users

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:

{
"field": {
"fieldId": "labels.value",
"fieldName": "key1",
"identifier": "LABEL",
"identifierName": "Label"
},
"operator": "IN",
"values": ["value1"]
}

Similarly, for labels.key:

{
"idFilter": {
"field": {
"fieldId": "labels.key",
"fieldName": "",
"identifier": "LABEL",
"identifierName": "Label"
},
"operator": "IN",
"values": []
}
}

Key Change: Replace "identifier": "LABEL" with "identifier": "LABEL_V2" and update "identifierName" accordingly.

Organize Perspectives using Folders

You can organize Perspectives by adding them to folders. The number of Folders that can be created is 2000.

Click New folder, name the folder, and then select the Perspectives you want to add.

You can also add a Perspective to a folder when you create it or move it to a folder when you edit it.