Skip to main content

Recommendations in Harness CCM

Last updated on

info

After you enable CCM, it may take up to 48 hours for the recommendations to appear in Cloud Costs. It depends on the time at which CCM receives the utilization data for the service.

πŸš€

What's New?

Auto-Inferences for Recommendations: Harness CCM now automatically detects when recommendations have been implemented and tracks the actual savings achieved eliminating manual tracking and providing real-time ROI measurement. See here for more details.

What are Recommendations?​

Harness CCM Recommendations are data-driven insights that help you optimize your cloud resources for cost efficiency without compromising performance. By analyzing historical usage patterns, resource configurations, and cloud provider pricing models, CCM identifies opportunities to right-size resources, eliminate waste, and implement best practices.

Benefits of Using CCM Recommendations

  • Reduce Azure VM Costs: Identify underutilized virtual machines and receive rightsizing or termination suggestions to significantly reduce Azure spending.

  • Optimize AWS EC2 Instances: Detect idle or oversized EC2 instances and get actionable guidance to select optimal instance types or eliminate unnecessary resources.

  • Clean Up Container Registry: Identify and remove unused container images in Amazon ECR, reducing storage costs and improving registry management.

  • Enhance Cost Governance: Implement best practices for tagging, business unit allocation, and spending patterns across AWS, GCP, and Azure to maintain financial control.

  • Improve Kubernetes Node Efficiency: Balance cost and performance with optimized node pool configurations for your Kubernetes clusters, tailored to each cloud provider's specific requirements.

  • Right-Size Kubernetes Workloads: Analyze CPU and memory utilization patterns to properly configure resource requests and limits, preventing waste while ensuring application performance.

Recommendations Homepage​

  • Recommendation Type: CCM has six types of recommendations: AZURE_INSTANCE, EC2_INSTANCE, GOVERNANCE, NODE_POOL and WORKLOAD. See details about all the types of recommendations here.
  • Cloud Provider:
  • + Add Filter
    • Generic Filters: Cloud Account ID, Cloud Account Name, Resource ID, Resource Name, Region, Cost Category, Cluster Labels, Cloud Tags, Potential Spend(USD), Savings (USD), Governance Rule Name
    • AWS-Specific Filters: Instance Type
    • Azure-Specific Filters: VM Size, Resource Group
    • Container-Specific Filters: Kubernetes Cluster Name, Kubernetes Namespace, ECS Cluster Name, ECS Launch Type
  • Export CSV: Option to export your Recommendations as comma-separated values (CSV) files. Exporting allows you to use the data in other software. Export respects the filters applied by the user in the filter panel. Only comma-separated values files (CSV) are supported and the maximum number of rows allowed in one export is 10,000 rows.
  • Ignore & Reject Lists: This contains: Ignore list and Rejected Auto-Inferences.
    • Ignore List: Adding resources to the Ignore list will stop Harness from displaying recommendations for those resources. You can view the Ignore list with details by clicking on "Manage Ignore List" on the overview page.
    • NEW Rejected Auto-Inferences: Recommendations that were auto-inferred as applied but later rejected will appear here. Review rejection reasons and identify resources that may need to be ignored. You can see the rejected inference, recommendation type, rejected on, rejected by and on and the reason for rejection.

Open and Applied Recommendations​

  • Open Recommendations: List of recommendations that are not applied yet. All the types of recommendations are listed here. You can view:
    • Potential Monthly Savings that can be achieved with the recommendation
    • Potential Monthly Spend without applying recommendations.
    • Table with columns:
      • Resource Name
      • Recommended Action/Resource
      • Potential Monthly Savings
      • Potential Monthly Spend
      • Jira/Servicenow Ticket Status

Recommendation Settings​

  • General Preferences:
    • Automatically Detect when recommendations are applied: When enabled, Harness will analyze billing data to automatically identify when recommendations are applied, without having to manually mark them as applied.
    • Show Recommendations on Parent Resources - Enables recommendations for parent-level resources such as Nodepool, EC2, and ECS Services. This ensures users receive optimization suggestions for high-level infrastructure components.
    • Show Recommendations on Child Resources - Displays recommendations for individual workloads, allowing users to optimize specific application components rather than just the underlying infrastructure.
    • Show Recommendations on Resources Added to the Ignore List - If enabled, recommendations will still be displayed for resources that have been manually marked as ignored.
  • Resource Specific Preferences: Over here, users can select the presets for each resource type and also set the default time range.

New Recommendation Preferences may take up to 24 hours to fully update across the platform. However, changes will be reflected immediately on the drill-down page, while the Overview page may take additional time to reflect updates.

Recommendations per Cloud Provider​

Apply Recommendations​

Applying recommendations is easy! You just need to:

  1. Review Recommendations - Analyze the suggested optimizations in the Recommendations dashboard
  2. Tune Parameters - Adjust recommendation settings to see how different configurations affect potential cost savings. See Recommendations per Cloud Provider for a deeper drilldown into a particular type of recommendation to understand the action required, cost calculations and tuning.
  3. Implement Changes and Track using Jira/ServiceNow - Apply the optimizations manually in your cloud environment. Create and manage Jira or ServiceNow tickets to monitor implementation progress
  4. Update Status - Mark recommendations as applied in the CCM platform once implemented. Once applied, recommendations show up in the Applied tab.

Auto Inferences​

Auto Inferences is an intelligent feature in Harness Cloud Cost Management (CCM) that automatically detects when recommendations have been implemented and tracks the actual savings realized. This eliminates the need for manual tracking and provides accurate ROI measurement for your cost optimization efforts.

Auto Inferences runs as part of daily batch jobs. Typically, implemented recommendations are detected within 24-48 hours after the recommendation expires.

What is Auto Inferences?​

When you receive recommendations (such as rightsizing EC2 instances, changing Azure VM SKUs, or implementing governance policies), Auto Inferences automatically monitors your infrastructure to detect if these recommendations have been applied in your cloud environment. Once detected, the system:

  • Marks the recommendation as "Applied"
  • Calculates and records the actual monthly savings achieved

When a recommendation is auto-inferred, it shows up with a banner.

You can choose to verify the recommendation or reject it. Upon clicking verify, you can choose to confirm whether the inferred savings matched the actual amount saved to ensure more accurate savings calculations.

If you reject an inference, it will show under Rejected Auto-Inferences in Ignore and Reject Lists

How It Works​

Auto Inferences runs as a scheduled background process that:

  • Identifies Candidate Recommendations: Scans for recommendations that have passed their validity period and focuses on recommendations that haven't been manually marked as applied or ignored
  • Monitors Infrastructure State: Continuously queries your cloud infrastructure inventory and compares current resource configurations against recommended changes
  • Validates Implementation: Checks if resources match the recommended configuration and verifies that changes align with the original recommendation
  • Records Results: Automatically marks validated recommendations as "Inferred as Applied" and tracks actual monthly savings realized from the implementation

Enabling Auto Inferences​

Auto Inferences is controlled at the account level through Recommendation Preferences:

  1. Navigate to Cloud Cost Management β†’ Recommendations β†’ Settings β†’ Preferences
  2. Locate the Automatically detect when recommendations are applied toggle under General Preferences
  3. Save your preferences

We also have added new filters to the recommendations page to help you manage auto-inferred recommendations under "Verification Status":

  • Inferred - Pending Review: Recommendations automatically detected as implemented but awaiting your verification. You can verify, reject, or edit the savings amount.
  • Inferred - Verified: Auto-detected recommendations that have been verified by a user and are confirmed as accurately applied.
Important
  • Currently, Auto Inferences supports AWS EC2 instances, Azure Virtual Machines, and Governance recommendations. Support for additional cloud providers and resource types is planned for future releases.

  • Manual actions take precedence. Once you manually mark a recommendation as applied or ignored, Auto Inferences will not override your action.


Managing Recommendations via Jira/ServiceNow Tickets​

Prerequisites​

  1. Create a Jira or ServiceNow connector:

  2. Configure ticketing tool settings:

    • Navigate to Cloud Costs > Setup > Default Settings > Cloud Cost Management.
    • Under Ticketing preferences, select the Ticketing tool and the Ticketing tool connector. The default ticketing tool is Jira. You can choose ServiceNow if that's the tool used in your organization. Switching your ticketing tool between Jira and ServiceNow results in the removal of the existing recommendation tickets.

Go to the Recommendations page and create tickets to apply recommendations.

  1. Select Create a ticket. In case you haven't set up your ticketing tool settings on the account level, you will see a prompt guiding you to access the Default Settings page to configure both the ticketing tool and the associated connector.

  2. Enter the following ticket details:

  • Jira project β€” Select the Jira project where you want to create a ticket. Go to Create Jira Issues in CD Stages.
  • Issue type β€” Select a Jira issue type from the list of types in the Jira project you selected. Go to Create Jira Issues in CD Stages.
  • Ticket summary β€” Add a summary of the issue.
  • Description β€” Add a description for the issue.

FAQs​

What filtering options are available for recommendations across different cloud providers?

Harness provides filtering support for recommendations based on cloud account identifiers and Kubernetes attributes. This allows for better cost optimization insights while maintaining alignment with perspective-based RBAC settings.

  • AWS EC2: Filtering is supported on AWS Account ID. Nested Cost Categories are not supported.

  • AWS ECS: Filtering is supported on AWS Account ID. Nested Cost Categories are not supported.

  • Azure VM: Filtering is not supported.

  • Kubernetes: Filtering is supported on Labels and Cluster Name. Nested Cost Categories are not supported.

  • Governance Recommendations:

    • AWS: No filtering support.
    • Azure: No filtering support.
    • GCP: No filtering support.

Filtering support for recommendations extends to RBAC configurations based on perspective folder access settings, ensuring that cost-saving suggestions are appropriately scoped to the right teams.

Why aren't memory metrics displayed when using Datadog integration?

If you ingest memory metrics using Datadog integration, EC2 recommendations do consider these metrics in their calculations; however, the memory utilization data is not displayed on the EC2 Recommendation page.

This occurs because:

  • The CPU and memory metrics data we retrieve is typically sourced from CloudWatch
  • In this case, the metrics originate from an external source (Datadog)
  • These Datadog metrics are directly integrated with AWS Compute Optimizer and are utilized in generating the recommendations
  • According to AWS Compute Optimizer API documentation, they do not offer support for retrieving these external utilization metrics

As a result, while the recommendations are accurately calculated using both CPU and memory data, the memory metrics themselves will not be visible in the recommendation interface.

Read more: External metrics ingestion

Why should I evaluate recommendations before implementing them?

Before using recommendations in your environment, ensure that you evaluate their impact thoroughly. The person reviewing the recommendations should be able to understand the impacts identified in the recommendations, as well as the impact on the infrastructure and business.

Using recommendations without proper assessment could result in unexpected changes, such as:

  • Performance degradation for critical workloads
  • Reliability issues during peak usage periods
  • Incompatibility with specific application requirements
  • Business disruption if services become unavailable or slow