/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Describes an Amazon EC2 instance recommendation.See Also:
* AWS
* API Reference
The Amazon Resource Name (ARN) of the current instance.
*/ inline const Aws::String& GetInstanceArn() const{ return m_instanceArn; } /** *The Amazon Resource Name (ARN) of the current instance.
*/ inline bool InstanceArnHasBeenSet() const { return m_instanceArnHasBeenSet; } /** *The Amazon Resource Name (ARN) of the current instance.
*/ inline void SetInstanceArn(const Aws::String& value) { m_instanceArnHasBeenSet = true; m_instanceArn = value; } /** *The Amazon Resource Name (ARN) of the current instance.
*/ inline void SetInstanceArn(Aws::String&& value) { m_instanceArnHasBeenSet = true; m_instanceArn = std::move(value); } /** *The Amazon Resource Name (ARN) of the current instance.
*/ inline void SetInstanceArn(const char* value) { m_instanceArnHasBeenSet = true; m_instanceArn.assign(value); } /** *The Amazon Resource Name (ARN) of the current instance.
*/ inline InstanceRecommendation& WithInstanceArn(const Aws::String& value) { SetInstanceArn(value); return *this;} /** *The Amazon Resource Name (ARN) of the current instance.
*/ inline InstanceRecommendation& WithInstanceArn(Aws::String&& value) { SetInstanceArn(std::move(value)); return *this;} /** *The Amazon Resource Name (ARN) of the current instance.
*/ inline InstanceRecommendation& WithInstanceArn(const char* value) { SetInstanceArn(value); return *this;} /** *The Amazon Web Services account ID of the instance.
*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *The Amazon Web Services account ID of the instance.
*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *The Amazon Web Services account ID of the instance.
*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *The Amazon Web Services account ID of the instance.
*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *The Amazon Web Services account ID of the instance.
*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *The Amazon Web Services account ID of the instance.
*/ inline InstanceRecommendation& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *The Amazon Web Services account ID of the instance.
*/ inline InstanceRecommendation& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *The Amazon Web Services account ID of the instance.
*/ inline InstanceRecommendation& WithAccountId(const char* value) { SetAccountId(value); return *this;} /** *The name of the current instance.
*/ inline const Aws::String& GetInstanceName() const{ return m_instanceName; } /** *The name of the current instance.
*/ inline bool InstanceNameHasBeenSet() const { return m_instanceNameHasBeenSet; } /** *The name of the current instance.
*/ inline void SetInstanceName(const Aws::String& value) { m_instanceNameHasBeenSet = true; m_instanceName = value; } /** *The name of the current instance.
*/ inline void SetInstanceName(Aws::String&& value) { m_instanceNameHasBeenSet = true; m_instanceName = std::move(value); } /** *The name of the current instance.
*/ inline void SetInstanceName(const char* value) { m_instanceNameHasBeenSet = true; m_instanceName.assign(value); } /** *The name of the current instance.
*/ inline InstanceRecommendation& WithInstanceName(const Aws::String& value) { SetInstanceName(value); return *this;} /** *The name of the current instance.
*/ inline InstanceRecommendation& WithInstanceName(Aws::String&& value) { SetInstanceName(std::move(value)); return *this;} /** *The name of the current instance.
*/ inline InstanceRecommendation& WithInstanceName(const char* value) { SetInstanceName(value); return *this;} /** *The instance type of the current instance.
*/ inline const Aws::String& GetCurrentInstanceType() const{ return m_currentInstanceType; } /** *The instance type of the current instance.
*/ inline bool CurrentInstanceTypeHasBeenSet() const { return m_currentInstanceTypeHasBeenSet; } /** *The instance type of the current instance.
*/ inline void SetCurrentInstanceType(const Aws::String& value) { m_currentInstanceTypeHasBeenSet = true; m_currentInstanceType = value; } /** *The instance type of the current instance.
*/ inline void SetCurrentInstanceType(Aws::String&& value) { m_currentInstanceTypeHasBeenSet = true; m_currentInstanceType = std::move(value); } /** *The instance type of the current instance.
*/ inline void SetCurrentInstanceType(const char* value) { m_currentInstanceTypeHasBeenSet = true; m_currentInstanceType.assign(value); } /** *The instance type of the current instance.
*/ inline InstanceRecommendation& WithCurrentInstanceType(const Aws::String& value) { SetCurrentInstanceType(value); return *this;} /** *The instance type of the current instance.
*/ inline InstanceRecommendation& WithCurrentInstanceType(Aws::String&& value) { SetCurrentInstanceType(std::move(value)); return *this;} /** *The instance type of the current instance.
*/ inline InstanceRecommendation& WithCurrentInstanceType(const char* value) { SetCurrentInstanceType(value); return *this;} /** *The finding classification of the instance.
Findings for instances * include:
Underprovisioned
—An instance is
* considered under-provisioned when at least one specification of your instance,
* such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application
* performance.
Overprovisioned
—An
* instance is considered over-provisioned when at least one specification of your
* instance, such as CPU, memory, or network, can be sized down while still meeting
* the performance requirements of your workload, and no specification is
* under-provisioned. Over-provisioned instances may lead to unnecessary
* infrastructure cost.
Optimized
—An
* instance is considered optimized when all specifications of your instance, such
* as CPU, memory, and network, meet the performance requirements of your workload
* and is not over provisioned. For optimized resources, Compute Optimizer might
* recommend a new generation instance type.
The finding classification of the instance.
Findings for instances * include:
Underprovisioned
—An instance is
* considered under-provisioned when at least one specification of your instance,
* such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application
* performance.
Overprovisioned
—An
* instance is considered over-provisioned when at least one specification of your
* instance, such as CPU, memory, or network, can be sized down while still meeting
* the performance requirements of your workload, and no specification is
* under-provisioned. Over-provisioned instances may lead to unnecessary
* infrastructure cost.
Optimized
—An
* instance is considered optimized when all specifications of your instance, such
* as CPU, memory, and network, meet the performance requirements of your workload
* and is not over provisioned. For optimized resources, Compute Optimizer might
* recommend a new generation instance type.
The finding classification of the instance.
Findings for instances * include:
Underprovisioned
—An instance is
* considered under-provisioned when at least one specification of your instance,
* such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application
* performance.
Overprovisioned
—An
* instance is considered over-provisioned when at least one specification of your
* instance, such as CPU, memory, or network, can be sized down while still meeting
* the performance requirements of your workload, and no specification is
* under-provisioned. Over-provisioned instances may lead to unnecessary
* infrastructure cost.
Optimized
—An
* instance is considered optimized when all specifications of your instance, such
* as CPU, memory, and network, meet the performance requirements of your workload
* and is not over provisioned. For optimized resources, Compute Optimizer might
* recommend a new generation instance type.
The finding classification of the instance.
Findings for instances * include:
Underprovisioned
—An instance is
* considered under-provisioned when at least one specification of your instance,
* such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application
* performance.
Overprovisioned
—An
* instance is considered over-provisioned when at least one specification of your
* instance, such as CPU, memory, or network, can be sized down while still meeting
* the performance requirements of your workload, and no specification is
* under-provisioned. Over-provisioned instances may lead to unnecessary
* infrastructure cost.
Optimized
—An
* instance is considered optimized when all specifications of your instance, such
* as CPU, memory, and network, meet the performance requirements of your workload
* and is not over provisioned. For optimized resources, Compute Optimizer might
* recommend a new generation instance type.
The finding classification of the instance.
Findings for instances * include:
Underprovisioned
—An instance is
* considered under-provisioned when at least one specification of your instance,
* such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application
* performance.
Overprovisioned
—An
* instance is considered over-provisioned when at least one specification of your
* instance, such as CPU, memory, or network, can be sized down while still meeting
* the performance requirements of your workload, and no specification is
* under-provisioned. Over-provisioned instances may lead to unnecessary
* infrastructure cost.
Optimized
—An
* instance is considered optimized when all specifications of your instance, such
* as CPU, memory, and network, meet the performance requirements of your workload
* and is not over provisioned. For optimized resources, Compute Optimizer might
* recommend a new generation instance type.
The finding classification of the instance.
Findings for instances * include:
Underprovisioned
—An instance is
* considered under-provisioned when at least one specification of your instance,
* such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application
* performance.
Overprovisioned
—An
* instance is considered over-provisioned when at least one specification of your
* instance, such as CPU, memory, or network, can be sized down while still meeting
* the performance requirements of your workload, and no specification is
* under-provisioned. Over-provisioned instances may lead to unnecessary
* infrastructure cost.
Optimized
—An
* instance is considered optimized when all specifications of your instance, such
* as CPU, memory, and network, meet the performance requirements of your workload
* and is not over provisioned. For optimized resources, Compute Optimizer might
* recommend a new generation instance type.
The reason for the finding classification of the instance.
Finding * reason codes for instances include:
* CPUOverprovisioned
— The instance’s CPU configuration can be
* sized down while still meeting the performance requirements of your workload.
* This is identified by analyzing the CPUUtilization
metric of the
* current instance during the look-back period.
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better CPU performance. This is identified by
* analyzing the CPUUtilization
metric of the current instance during
* the look-back period.
MemoryOverprovisioned
* — The instance’s memory configuration can be sized down while still meeting
* the performance requirements of your workload. This is identified by analyzing
* the memory utilization metric of the current instance during the look-back
* period.
MemoryUnderprovisioned
— The
* instance’s memory configuration doesn't meet the performance requirements of
* your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
Memory
* utilization is analyzed only for resources that have the unified CloudWatch
* agent installed on them. For more information, see Enabling
* memory utilization with the Amazon CloudWatch Agent in the Compute
* Optimizer User Guide. On Linux instances, Compute Optimizer analyses the
* mem_used_percent
metric in the CWAgent
namespace, or
* the legacy MemoryUtilization
metric in the
* System/Linux
namespace. On Windows instances, Compute Optimizer
* analyses the Memory % Committed Bytes In Use
metric in the
* CWAgent
namespace.
* EBSThroughputOverprovisioned
— The instance’s EBS throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSThroughputUnderprovisioned
— The instance’s
* EBS throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSIOPSOverprovisioned
— The instance’s EBS IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the VolumeReadOps
* and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS
* configuration doesn't meet the performance requirements of your workload and
* there is an alternative instance type that provides better EBS IOPS performance.
* This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* NetworkBandwidthOverprovisioned
— The instance’s network
* bandwidth configuration can be sized down while still meeting the performance
* requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period.
* NetworkBandwidthUnderprovisioned
— The instance’s network
* bandwidth configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better network
* bandwidth performance. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period. This finding reason happens when the
* NetworkIn
or NetworkOut
performance of an instance is
* impacted.
NetworkPPSOverprovisioned
—
* The instance’s network PPS (packets per second) configuration can be sized down
* while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the
* look-back period.
NetworkPPSUnderprovisioned
* — The instance’s network PPS (packets per second) configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified
* by analyzing the NetworkPacketsIn
and NetworkPacketsIn
* metrics of the current instance during the look-back period.
* DiskIOPSOverprovisioned
— The instance’s disk IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadOps
* and DiskWriteOps
metrics of the current instance during the
* look-back period.
DiskIOPSUnderprovisioned
* — The instance’s disk IOPS configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that
* provides better disk IOPS performance. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current
* instance during the look-back period.
* DiskThroughputOverprovisioned
— The instance’s disk throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadBytes
* and DiskWriteBytes
metrics of the current instance during the
* look-back period.
* DiskThroughputUnderprovisioned
— The instance’s disk
* throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the
* current instance during the look-back period.
For more * information about instance metrics, see List * the available CloudWatch metrics for your instances in the Amazon Elastic * Compute Cloud User Guide. For more information about EBS volume metrics, see * Amazon * CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud * User Guide.
*/ inline const Aws::VectorThe reason for the finding classification of the instance.
Finding * reason codes for instances include:
* CPUOverprovisioned
— The instance’s CPU configuration can be
* sized down while still meeting the performance requirements of your workload.
* This is identified by analyzing the CPUUtilization
metric of the
* current instance during the look-back period.
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better CPU performance. This is identified by
* analyzing the CPUUtilization
metric of the current instance during
* the look-back period.
MemoryOverprovisioned
* — The instance’s memory configuration can be sized down while still meeting
* the performance requirements of your workload. This is identified by analyzing
* the memory utilization metric of the current instance during the look-back
* period.
MemoryUnderprovisioned
— The
* instance’s memory configuration doesn't meet the performance requirements of
* your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
Memory
* utilization is analyzed only for resources that have the unified CloudWatch
* agent installed on them. For more information, see Enabling
* memory utilization with the Amazon CloudWatch Agent in the Compute
* Optimizer User Guide. On Linux instances, Compute Optimizer analyses the
* mem_used_percent
metric in the CWAgent
namespace, or
* the legacy MemoryUtilization
metric in the
* System/Linux
namespace. On Windows instances, Compute Optimizer
* analyses the Memory % Committed Bytes In Use
metric in the
* CWAgent
namespace.
* EBSThroughputOverprovisioned
— The instance’s EBS throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSThroughputUnderprovisioned
— The instance’s
* EBS throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSIOPSOverprovisioned
— The instance’s EBS IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the VolumeReadOps
* and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS
* configuration doesn't meet the performance requirements of your workload and
* there is an alternative instance type that provides better EBS IOPS performance.
* This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* NetworkBandwidthOverprovisioned
— The instance’s network
* bandwidth configuration can be sized down while still meeting the performance
* requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period.
* NetworkBandwidthUnderprovisioned
— The instance’s network
* bandwidth configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better network
* bandwidth performance. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period. This finding reason happens when the
* NetworkIn
or NetworkOut
performance of an instance is
* impacted.
NetworkPPSOverprovisioned
—
* The instance’s network PPS (packets per second) configuration can be sized down
* while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the
* look-back period.
NetworkPPSUnderprovisioned
* — The instance’s network PPS (packets per second) configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified
* by analyzing the NetworkPacketsIn
and NetworkPacketsIn
* metrics of the current instance during the look-back period.
* DiskIOPSOverprovisioned
— The instance’s disk IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadOps
* and DiskWriteOps
metrics of the current instance during the
* look-back period.
DiskIOPSUnderprovisioned
* — The instance’s disk IOPS configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that
* provides better disk IOPS performance. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current
* instance during the look-back period.
* DiskThroughputOverprovisioned
— The instance’s disk throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadBytes
* and DiskWriteBytes
metrics of the current instance during the
* look-back period.
* DiskThroughputUnderprovisioned
— The instance’s disk
* throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the
* current instance during the look-back period.
For more * information about instance metrics, see List * the available CloudWatch metrics for your instances in the Amazon Elastic * Compute Cloud User Guide. For more information about EBS volume metrics, see * Amazon * CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud * User Guide.
*/ inline bool FindingReasonCodesHasBeenSet() const { return m_findingReasonCodesHasBeenSet; } /** *The reason for the finding classification of the instance.
Finding * reason codes for instances include:
* CPUOverprovisioned
— The instance’s CPU configuration can be
* sized down while still meeting the performance requirements of your workload.
* This is identified by analyzing the CPUUtilization
metric of the
* current instance during the look-back period.
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better CPU performance. This is identified by
* analyzing the CPUUtilization
metric of the current instance during
* the look-back period.
MemoryOverprovisioned
* — The instance’s memory configuration can be sized down while still meeting
* the performance requirements of your workload. This is identified by analyzing
* the memory utilization metric of the current instance during the look-back
* period.
MemoryUnderprovisioned
— The
* instance’s memory configuration doesn't meet the performance requirements of
* your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
Memory
* utilization is analyzed only for resources that have the unified CloudWatch
* agent installed on them. For more information, see Enabling
* memory utilization with the Amazon CloudWatch Agent in the Compute
* Optimizer User Guide. On Linux instances, Compute Optimizer analyses the
* mem_used_percent
metric in the CWAgent
namespace, or
* the legacy MemoryUtilization
metric in the
* System/Linux
namespace. On Windows instances, Compute Optimizer
* analyses the Memory % Committed Bytes In Use
metric in the
* CWAgent
namespace.
* EBSThroughputOverprovisioned
— The instance’s EBS throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSThroughputUnderprovisioned
— The instance’s
* EBS throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSIOPSOverprovisioned
— The instance’s EBS IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the VolumeReadOps
* and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS
* configuration doesn't meet the performance requirements of your workload and
* there is an alternative instance type that provides better EBS IOPS performance.
* This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* NetworkBandwidthOverprovisioned
— The instance’s network
* bandwidth configuration can be sized down while still meeting the performance
* requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period.
* NetworkBandwidthUnderprovisioned
— The instance’s network
* bandwidth configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better network
* bandwidth performance. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period. This finding reason happens when the
* NetworkIn
or NetworkOut
performance of an instance is
* impacted.
NetworkPPSOverprovisioned
—
* The instance’s network PPS (packets per second) configuration can be sized down
* while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the
* look-back period.
NetworkPPSUnderprovisioned
* — The instance’s network PPS (packets per second) configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified
* by analyzing the NetworkPacketsIn
and NetworkPacketsIn
* metrics of the current instance during the look-back period.
* DiskIOPSOverprovisioned
— The instance’s disk IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadOps
* and DiskWriteOps
metrics of the current instance during the
* look-back period.
DiskIOPSUnderprovisioned
* — The instance’s disk IOPS configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that
* provides better disk IOPS performance. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current
* instance during the look-back period.
* DiskThroughputOverprovisioned
— The instance’s disk throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadBytes
* and DiskWriteBytes
metrics of the current instance during the
* look-back period.
* DiskThroughputUnderprovisioned
— The instance’s disk
* throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the
* current instance during the look-back period.
For more * information about instance metrics, see List * the available CloudWatch metrics for your instances in the Amazon Elastic * Compute Cloud User Guide. For more information about EBS volume metrics, see * Amazon * CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud * User Guide.
*/ inline void SetFindingReasonCodes(const Aws::VectorThe reason for the finding classification of the instance.
Finding * reason codes for instances include:
* CPUOverprovisioned
— The instance’s CPU configuration can be
* sized down while still meeting the performance requirements of your workload.
* This is identified by analyzing the CPUUtilization
metric of the
* current instance during the look-back period.
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better CPU performance. This is identified by
* analyzing the CPUUtilization
metric of the current instance during
* the look-back period.
MemoryOverprovisioned
* — The instance’s memory configuration can be sized down while still meeting
* the performance requirements of your workload. This is identified by analyzing
* the memory utilization metric of the current instance during the look-back
* period.
MemoryUnderprovisioned
— The
* instance’s memory configuration doesn't meet the performance requirements of
* your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
Memory
* utilization is analyzed only for resources that have the unified CloudWatch
* agent installed on them. For more information, see Enabling
* memory utilization with the Amazon CloudWatch Agent in the Compute
* Optimizer User Guide. On Linux instances, Compute Optimizer analyses the
* mem_used_percent
metric in the CWAgent
namespace, or
* the legacy MemoryUtilization
metric in the
* System/Linux
namespace. On Windows instances, Compute Optimizer
* analyses the Memory % Committed Bytes In Use
metric in the
* CWAgent
namespace.
* EBSThroughputOverprovisioned
— The instance’s EBS throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSThroughputUnderprovisioned
— The instance’s
* EBS throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSIOPSOverprovisioned
— The instance’s EBS IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the VolumeReadOps
* and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS
* configuration doesn't meet the performance requirements of your workload and
* there is an alternative instance type that provides better EBS IOPS performance.
* This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* NetworkBandwidthOverprovisioned
— The instance’s network
* bandwidth configuration can be sized down while still meeting the performance
* requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period.
* NetworkBandwidthUnderprovisioned
— The instance’s network
* bandwidth configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better network
* bandwidth performance. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period. This finding reason happens when the
* NetworkIn
or NetworkOut
performance of an instance is
* impacted.
NetworkPPSOverprovisioned
—
* The instance’s network PPS (packets per second) configuration can be sized down
* while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the
* look-back period.
NetworkPPSUnderprovisioned
* — The instance’s network PPS (packets per second) configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified
* by analyzing the NetworkPacketsIn
and NetworkPacketsIn
* metrics of the current instance during the look-back period.
* DiskIOPSOverprovisioned
— The instance’s disk IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadOps
* and DiskWriteOps
metrics of the current instance during the
* look-back period.
DiskIOPSUnderprovisioned
* — The instance’s disk IOPS configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that
* provides better disk IOPS performance. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current
* instance during the look-back period.
* DiskThroughputOverprovisioned
— The instance’s disk throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadBytes
* and DiskWriteBytes
metrics of the current instance during the
* look-back period.
* DiskThroughputUnderprovisioned
— The instance’s disk
* throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the
* current instance during the look-back period.
For more * information about instance metrics, see List * the available CloudWatch metrics for your instances in the Amazon Elastic * Compute Cloud User Guide. For more information about EBS volume metrics, see * Amazon * CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud * User Guide.
*/ inline void SetFindingReasonCodes(Aws::VectorThe reason for the finding classification of the instance.
Finding * reason codes for instances include:
* CPUOverprovisioned
— The instance’s CPU configuration can be
* sized down while still meeting the performance requirements of your workload.
* This is identified by analyzing the CPUUtilization
metric of the
* current instance during the look-back period.
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better CPU performance. This is identified by
* analyzing the CPUUtilization
metric of the current instance during
* the look-back period.
MemoryOverprovisioned
* — The instance’s memory configuration can be sized down while still meeting
* the performance requirements of your workload. This is identified by analyzing
* the memory utilization metric of the current instance during the look-back
* period.
MemoryUnderprovisioned
— The
* instance’s memory configuration doesn't meet the performance requirements of
* your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
Memory
* utilization is analyzed only for resources that have the unified CloudWatch
* agent installed on them. For more information, see Enabling
* memory utilization with the Amazon CloudWatch Agent in the Compute
* Optimizer User Guide. On Linux instances, Compute Optimizer analyses the
* mem_used_percent
metric in the CWAgent
namespace, or
* the legacy MemoryUtilization
metric in the
* System/Linux
namespace. On Windows instances, Compute Optimizer
* analyses the Memory % Committed Bytes In Use
metric in the
* CWAgent
namespace.
* EBSThroughputOverprovisioned
— The instance’s EBS throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSThroughputUnderprovisioned
— The instance’s
* EBS throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSIOPSOverprovisioned
— The instance’s EBS IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the VolumeReadOps
* and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS
* configuration doesn't meet the performance requirements of your workload and
* there is an alternative instance type that provides better EBS IOPS performance.
* This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* NetworkBandwidthOverprovisioned
— The instance’s network
* bandwidth configuration can be sized down while still meeting the performance
* requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period.
* NetworkBandwidthUnderprovisioned
— The instance’s network
* bandwidth configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better network
* bandwidth performance. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period. This finding reason happens when the
* NetworkIn
or NetworkOut
performance of an instance is
* impacted.
NetworkPPSOverprovisioned
—
* The instance’s network PPS (packets per second) configuration can be sized down
* while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the
* look-back period.
NetworkPPSUnderprovisioned
* — The instance’s network PPS (packets per second) configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified
* by analyzing the NetworkPacketsIn
and NetworkPacketsIn
* metrics of the current instance during the look-back period.
* DiskIOPSOverprovisioned
— The instance’s disk IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadOps
* and DiskWriteOps
metrics of the current instance during the
* look-back period.
DiskIOPSUnderprovisioned
* — The instance’s disk IOPS configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that
* provides better disk IOPS performance. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current
* instance during the look-back period.
* DiskThroughputOverprovisioned
— The instance’s disk throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadBytes
* and DiskWriteBytes
metrics of the current instance during the
* look-back period.
* DiskThroughputUnderprovisioned
— The instance’s disk
* throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the
* current instance during the look-back period.
For more * information about instance metrics, see List * the available CloudWatch metrics for your instances in the Amazon Elastic * Compute Cloud User Guide. For more information about EBS volume metrics, see * Amazon * CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud * User Guide.
*/ inline InstanceRecommendation& WithFindingReasonCodes(const Aws::VectorThe reason for the finding classification of the instance.
Finding * reason codes for instances include:
* CPUOverprovisioned
— The instance’s CPU configuration can be
* sized down while still meeting the performance requirements of your workload.
* This is identified by analyzing the CPUUtilization
metric of the
* current instance during the look-back period.
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better CPU performance. This is identified by
* analyzing the CPUUtilization
metric of the current instance during
* the look-back period.
MemoryOverprovisioned
* — The instance’s memory configuration can be sized down while still meeting
* the performance requirements of your workload. This is identified by analyzing
* the memory utilization metric of the current instance during the look-back
* period.
MemoryUnderprovisioned
— The
* instance’s memory configuration doesn't meet the performance requirements of
* your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
Memory
* utilization is analyzed only for resources that have the unified CloudWatch
* agent installed on them. For more information, see Enabling
* memory utilization with the Amazon CloudWatch Agent in the Compute
* Optimizer User Guide. On Linux instances, Compute Optimizer analyses the
* mem_used_percent
metric in the CWAgent
namespace, or
* the legacy MemoryUtilization
metric in the
* System/Linux
namespace. On Windows instances, Compute Optimizer
* analyses the Memory % Committed Bytes In Use
metric in the
* CWAgent
namespace.
* EBSThroughputOverprovisioned
— The instance’s EBS throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSThroughputUnderprovisioned
— The instance’s
* EBS throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSIOPSOverprovisioned
— The instance’s EBS IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the VolumeReadOps
* and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS
* configuration doesn't meet the performance requirements of your workload and
* there is an alternative instance type that provides better EBS IOPS performance.
* This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* NetworkBandwidthOverprovisioned
— The instance’s network
* bandwidth configuration can be sized down while still meeting the performance
* requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period.
* NetworkBandwidthUnderprovisioned
— The instance’s network
* bandwidth configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better network
* bandwidth performance. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period. This finding reason happens when the
* NetworkIn
or NetworkOut
performance of an instance is
* impacted.
NetworkPPSOverprovisioned
—
* The instance’s network PPS (packets per second) configuration can be sized down
* while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the
* look-back period.
NetworkPPSUnderprovisioned
* — The instance’s network PPS (packets per second) configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified
* by analyzing the NetworkPacketsIn
and NetworkPacketsIn
* metrics of the current instance during the look-back period.
* DiskIOPSOverprovisioned
— The instance’s disk IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadOps
* and DiskWriteOps
metrics of the current instance during the
* look-back period.
DiskIOPSUnderprovisioned
* — The instance’s disk IOPS configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that
* provides better disk IOPS performance. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current
* instance during the look-back period.
* DiskThroughputOverprovisioned
— The instance’s disk throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadBytes
* and DiskWriteBytes
metrics of the current instance during the
* look-back period.
* DiskThroughputUnderprovisioned
— The instance’s disk
* throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the
* current instance during the look-back period.
For more * information about instance metrics, see List * the available CloudWatch metrics for your instances in the Amazon Elastic * Compute Cloud User Guide. For more information about EBS volume metrics, see * Amazon * CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud * User Guide.
*/ inline InstanceRecommendation& WithFindingReasonCodes(Aws::VectorThe reason for the finding classification of the instance.
Finding * reason codes for instances include:
* CPUOverprovisioned
— The instance’s CPU configuration can be
* sized down while still meeting the performance requirements of your workload.
* This is identified by analyzing the CPUUtilization
metric of the
* current instance during the look-back period.
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better CPU performance. This is identified by
* analyzing the CPUUtilization
metric of the current instance during
* the look-back period.
MemoryOverprovisioned
* — The instance’s memory configuration can be sized down while still meeting
* the performance requirements of your workload. This is identified by analyzing
* the memory utilization metric of the current instance during the look-back
* period.
MemoryUnderprovisioned
— The
* instance’s memory configuration doesn't meet the performance requirements of
* your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
Memory
* utilization is analyzed only for resources that have the unified CloudWatch
* agent installed on them. For more information, see Enabling
* memory utilization with the Amazon CloudWatch Agent in the Compute
* Optimizer User Guide. On Linux instances, Compute Optimizer analyses the
* mem_used_percent
metric in the CWAgent
namespace, or
* the legacy MemoryUtilization
metric in the
* System/Linux
namespace. On Windows instances, Compute Optimizer
* analyses the Memory % Committed Bytes In Use
metric in the
* CWAgent
namespace.
* EBSThroughputOverprovisioned
— The instance’s EBS throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSThroughputUnderprovisioned
— The instance’s
* EBS throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSIOPSOverprovisioned
— The instance’s EBS IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the VolumeReadOps
* and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS
* configuration doesn't meet the performance requirements of your workload and
* there is an alternative instance type that provides better EBS IOPS performance.
* This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* NetworkBandwidthOverprovisioned
— The instance’s network
* bandwidth configuration can be sized down while still meeting the performance
* requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period.
* NetworkBandwidthUnderprovisioned
— The instance’s network
* bandwidth configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better network
* bandwidth performance. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period. This finding reason happens when the
* NetworkIn
or NetworkOut
performance of an instance is
* impacted.
NetworkPPSOverprovisioned
—
* The instance’s network PPS (packets per second) configuration can be sized down
* while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the
* look-back period.
NetworkPPSUnderprovisioned
* — The instance’s network PPS (packets per second) configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified
* by analyzing the NetworkPacketsIn
and NetworkPacketsIn
* metrics of the current instance during the look-back period.
* DiskIOPSOverprovisioned
— The instance’s disk IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadOps
* and DiskWriteOps
metrics of the current instance during the
* look-back period.
DiskIOPSUnderprovisioned
* — The instance’s disk IOPS configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that
* provides better disk IOPS performance. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current
* instance during the look-back period.
* DiskThroughputOverprovisioned
— The instance’s disk throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadBytes
* and DiskWriteBytes
metrics of the current instance during the
* look-back period.
* DiskThroughputUnderprovisioned
— The instance’s disk
* throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the
* current instance during the look-back period.
For more * information about instance metrics, see List * the available CloudWatch metrics for your instances in the Amazon Elastic * Compute Cloud User Guide. For more information about EBS volume metrics, see * Amazon * CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud * User Guide.
*/ inline InstanceRecommendation& AddFindingReasonCodes(const InstanceRecommendationFindingReasonCode& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes.push_back(value); return *this; } /** *The reason for the finding classification of the instance.
Finding * reason codes for instances include:
* CPUOverprovisioned
— The instance’s CPU configuration can be
* sized down while still meeting the performance requirements of your workload.
* This is identified by analyzing the CPUUtilization
metric of the
* current instance during the look-back period.
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better CPU performance. This is identified by
* analyzing the CPUUtilization
metric of the current instance during
* the look-back period.
MemoryOverprovisioned
* — The instance’s memory configuration can be sized down while still meeting
* the performance requirements of your workload. This is identified by analyzing
* the memory utilization metric of the current instance during the look-back
* period.
MemoryUnderprovisioned
— The
* instance’s memory configuration doesn't meet the performance requirements of
* your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
Memory
* utilization is analyzed only for resources that have the unified CloudWatch
* agent installed on them. For more information, see Enabling
* memory utilization with the Amazon CloudWatch Agent in the Compute
* Optimizer User Guide. On Linux instances, Compute Optimizer analyses the
* mem_used_percent
metric in the CWAgent
namespace, or
* the legacy MemoryUtilization
metric in the
* System/Linux
namespace. On Windows instances, Compute Optimizer
* analyses the Memory % Committed Bytes In Use
metric in the
* CWAgent
namespace.
* EBSThroughputOverprovisioned
— The instance’s EBS throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSThroughputUnderprovisioned
— The instance’s
* EBS throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS
* volumes attached to the current instance during the look-back period.
EBSIOPSOverprovisioned
— The instance’s EBS IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the VolumeReadOps
* and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS
* configuration doesn't meet the performance requirements of your workload and
* there is an alternative instance type that provides better EBS IOPS performance.
* This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
* NetworkBandwidthOverprovisioned
— The instance’s network
* bandwidth configuration can be sized down while still meeting the performance
* requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period.
* NetworkBandwidthUnderprovisioned
— The instance’s network
* bandwidth configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better network
* bandwidth performance. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current
* instance during the look-back period. This finding reason happens when the
* NetworkIn
or NetworkOut
performance of an instance is
* impacted.
NetworkPPSOverprovisioned
—
* The instance’s network PPS (packets per second) configuration can be sized down
* while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the
* look-back period.
NetworkPPSUnderprovisioned
* — The instance’s network PPS (packets per second) configuration doesn't
* meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified
* by analyzing the NetworkPacketsIn
and NetworkPacketsIn
* metrics of the current instance during the look-back period.
* DiskIOPSOverprovisioned
— The instance’s disk IOPS
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadOps
* and DiskWriteOps
metrics of the current instance during the
* look-back period.
DiskIOPSUnderprovisioned
* — The instance’s disk IOPS configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that
* provides better disk IOPS performance. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current
* instance during the look-back period.
* DiskThroughputOverprovisioned
— The instance’s disk throughput
* configuration can be sized down while still meeting the performance requirements
* of your workload. This is identified by analyzing the DiskReadBytes
* and DiskWriteBytes
metrics of the current instance during the
* look-back period.
* DiskThroughputUnderprovisioned
— The instance’s disk
* throughput configuration doesn't meet the performance requirements of your
* workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the
* current instance during the look-back period.
For more * information about instance metrics, see List * the available CloudWatch metrics for your instances in the Amazon Elastic * Compute Cloud User Guide. For more information about EBS volume metrics, see * Amazon * CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud * User Guide.
*/ inline InstanceRecommendation& AddFindingReasonCodes(InstanceRecommendationFindingReasonCode&& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes.push_back(std::move(value)); return *this; } /** *An array of objects that describe the utilization metrics of the * instance.
*/ inline const Aws::VectorAn array of objects that describe the utilization metrics of the * instance.
*/ inline bool UtilizationMetricsHasBeenSet() const { return m_utilizationMetricsHasBeenSet; } /** *An array of objects that describe the utilization metrics of the * instance.
*/ inline void SetUtilizationMetrics(const Aws::VectorAn array of objects that describe the utilization metrics of the * instance.
*/ inline void SetUtilizationMetrics(Aws::VectorAn array of objects that describe the utilization metrics of the * instance.
*/ inline InstanceRecommendation& WithUtilizationMetrics(const Aws::VectorAn array of objects that describe the utilization metrics of the * instance.
*/ inline InstanceRecommendation& WithUtilizationMetrics(Aws::VectorAn array of objects that describe the utilization metrics of the * instance.
*/ inline InstanceRecommendation& AddUtilizationMetrics(const UtilizationMetric& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.push_back(value); return *this; } /** *An array of objects that describe the utilization metrics of the * instance.
*/ inline InstanceRecommendation& AddUtilizationMetrics(UtilizationMetric&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.push_back(std::move(value)); return *this; } /** *The number of days for which utilization metrics were analyzed for the * instance.
*/ inline double GetLookBackPeriodInDays() const{ return m_lookBackPeriodInDays; } /** *The number of days for which utilization metrics were analyzed for the * instance.
*/ inline bool LookBackPeriodInDaysHasBeenSet() const { return m_lookBackPeriodInDaysHasBeenSet; } /** *The number of days for which utilization metrics were analyzed for the * instance.
*/ inline void SetLookBackPeriodInDays(double value) { m_lookBackPeriodInDaysHasBeenSet = true; m_lookBackPeriodInDays = value; } /** *The number of days for which utilization metrics were analyzed for the * instance.
*/ inline InstanceRecommendation& WithLookBackPeriodInDays(double value) { SetLookBackPeriodInDays(value); return *this;} /** *An array of objects that describe the recommendation options for the * instance.
*/ inline const Aws::VectorAn array of objects that describe the recommendation options for the * instance.
*/ inline bool RecommendationOptionsHasBeenSet() const { return m_recommendationOptionsHasBeenSet; } /** *An array of objects that describe the recommendation options for the * instance.
*/ inline void SetRecommendationOptions(const Aws::VectorAn array of objects that describe the recommendation options for the * instance.
*/ inline void SetRecommendationOptions(Aws::VectorAn array of objects that describe the recommendation options for the * instance.
*/ inline InstanceRecommendation& WithRecommendationOptions(const Aws::VectorAn array of objects that describe the recommendation options for the * instance.
*/ inline InstanceRecommendation& WithRecommendationOptions(Aws::VectorAn array of objects that describe the recommendation options for the * instance.
*/ inline InstanceRecommendation& AddRecommendationOptions(const InstanceRecommendationOption& value) { m_recommendationOptionsHasBeenSet = true; m_recommendationOptions.push_back(value); return *this; } /** *An array of objects that describe the recommendation options for the * instance.
*/ inline InstanceRecommendation& AddRecommendationOptions(InstanceRecommendationOption&& value) { m_recommendationOptionsHasBeenSet = true; m_recommendationOptions.push_back(std::move(value)); return *this; } /** *An array of objects that describe the source resource of the * recommendation.
*/ inline const Aws::VectorAn array of objects that describe the source resource of the * recommendation.
*/ inline bool RecommendationSourcesHasBeenSet() const { return m_recommendationSourcesHasBeenSet; } /** *An array of objects that describe the source resource of the * recommendation.
*/ inline void SetRecommendationSources(const Aws::VectorAn array of objects that describe the source resource of the * recommendation.
*/ inline void SetRecommendationSources(Aws::VectorAn array of objects that describe the source resource of the * recommendation.
*/ inline InstanceRecommendation& WithRecommendationSources(const Aws::VectorAn array of objects that describe the source resource of the * recommendation.
*/ inline InstanceRecommendation& WithRecommendationSources(Aws::VectorAn array of objects that describe the source resource of the * recommendation.
*/ inline InstanceRecommendation& AddRecommendationSources(const RecommendationSource& value) { m_recommendationSourcesHasBeenSet = true; m_recommendationSources.push_back(value); return *this; } /** *An array of objects that describe the source resource of the * recommendation.
*/ inline InstanceRecommendation& AddRecommendationSources(RecommendationSource&& value) { m_recommendationSourcesHasBeenSet = true; m_recommendationSources.push_back(std::move(value)); return *this; } /** *The timestamp of when the instance recommendation was last generated.
*/ inline const Aws::Utils::DateTime& GetLastRefreshTimestamp() const{ return m_lastRefreshTimestamp; } /** *The timestamp of when the instance recommendation was last generated.
*/ inline bool LastRefreshTimestampHasBeenSet() const { return m_lastRefreshTimestampHasBeenSet; } /** *The timestamp of when the instance recommendation was last generated.
*/ inline void SetLastRefreshTimestamp(const Aws::Utils::DateTime& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = value; } /** *The timestamp of when the instance recommendation was last generated.
*/ inline void SetLastRefreshTimestamp(Aws::Utils::DateTime&& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = std::move(value); } /** *The timestamp of when the instance recommendation was last generated.
*/ inline InstanceRecommendation& WithLastRefreshTimestamp(const Aws::Utils::DateTime& value) { SetLastRefreshTimestamp(value); return *this;} /** *The timestamp of when the instance recommendation was last generated.
*/ inline InstanceRecommendation& WithLastRefreshTimestamp(Aws::Utils::DateTime&& value) { SetLastRefreshTimestamp(std::move(value)); return *this;} /** *The risk of the current instance not meeting the performance needs of its * workloads. The higher the risk, the more likely the current instance cannot meet * the performance requirements of its workload.
*/ inline const CurrentPerformanceRisk& GetCurrentPerformanceRisk() const{ return m_currentPerformanceRisk; } /** *The risk of the current instance not meeting the performance needs of its * workloads. The higher the risk, the more likely the current instance cannot meet * the performance requirements of its workload.
*/ inline bool CurrentPerformanceRiskHasBeenSet() const { return m_currentPerformanceRiskHasBeenSet; } /** *The risk of the current instance not meeting the performance needs of its * workloads. The higher the risk, the more likely the current instance cannot meet * the performance requirements of its workload.
*/ inline void SetCurrentPerformanceRisk(const CurrentPerformanceRisk& value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = value; } /** *The risk of the current instance not meeting the performance needs of its * workloads. The higher the risk, the more likely the current instance cannot meet * the performance requirements of its workload.
*/ inline void SetCurrentPerformanceRisk(CurrentPerformanceRisk&& value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = std::move(value); } /** *The risk of the current instance not meeting the performance needs of its * workloads. The higher the risk, the more likely the current instance cannot meet * the performance requirements of its workload.
*/ inline InstanceRecommendation& WithCurrentPerformanceRisk(const CurrentPerformanceRisk& value) { SetCurrentPerformanceRisk(value); return *this;} /** *The risk of the current instance not meeting the performance needs of its * workloads. The higher the risk, the more likely the current instance cannot meet * the performance requirements of its workload.
*/ inline InstanceRecommendation& WithCurrentPerformanceRisk(CurrentPerformanceRisk&& value) { SetCurrentPerformanceRisk(std::move(value)); return *this;} /** *An object that describes the effective recommendation preferences for the * instance.
*/ inline const EffectiveRecommendationPreferences& GetEffectiveRecommendationPreferences() const{ return m_effectiveRecommendationPreferences; } /** *An object that describes the effective recommendation preferences for the * instance.
*/ inline bool EffectiveRecommendationPreferencesHasBeenSet() const { return m_effectiveRecommendationPreferencesHasBeenSet; } /** *An object that describes the effective recommendation preferences for the * instance.
*/ inline void SetEffectiveRecommendationPreferences(const EffectiveRecommendationPreferences& value) { m_effectiveRecommendationPreferencesHasBeenSet = true; m_effectiveRecommendationPreferences = value; } /** *An object that describes the effective recommendation preferences for the * instance.
*/ inline void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferences&& value) { m_effectiveRecommendationPreferencesHasBeenSet = true; m_effectiveRecommendationPreferences = std::move(value); } /** *An object that describes the effective recommendation preferences for the * instance.
*/ inline InstanceRecommendation& WithEffectiveRecommendationPreferences(const EffectiveRecommendationPreferences& value) { SetEffectiveRecommendationPreferences(value); return *this;} /** *An object that describes the effective recommendation preferences for the * instance.
*/ inline InstanceRecommendation& WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferences&& value) { SetEffectiveRecommendationPreferences(std::move(value)); return *this;} /** *The applications that might be running on the instance as inferred by Compute * Optimizer.
Compute Optimizer can infer if one of the following * applications might be running on the instance:
* AmazonEmr
- Infers that Amazon EMR might be running on the
* instance.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instance.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instance.
Memcached
- Infers that Memcached
* might be running on the instance.
NGINX
- Infers
* that NGINX might be running on the instance.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instance.
Redis
- Infers that Redis might be
* running on the instance.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instance as inferred by Compute * Optimizer.
Compute Optimizer can infer if one of the following * applications might be running on the instance:
* AmazonEmr
- Infers that Amazon EMR might be running on the
* instance.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instance.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instance.
Memcached
- Infers that Memcached
* might be running on the instance.
NGINX
- Infers
* that NGINX might be running on the instance.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instance.
Redis
- Infers that Redis might be
* running on the instance.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instance as inferred by Compute * Optimizer.
Compute Optimizer can infer if one of the following * applications might be running on the instance:
* AmazonEmr
- Infers that Amazon EMR might be running on the
* instance.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instance.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instance.
Memcached
- Infers that Memcached
* might be running on the instance.
NGINX
- Infers
* that NGINX might be running on the instance.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instance.
Redis
- Infers that Redis might be
* running on the instance.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instance as inferred by Compute * Optimizer.
Compute Optimizer can infer if one of the following * applications might be running on the instance:
* AmazonEmr
- Infers that Amazon EMR might be running on the
* instance.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instance.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instance.
Memcached
- Infers that Memcached
* might be running on the instance.
NGINX
- Infers
* that NGINX might be running on the instance.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instance.
Redis
- Infers that Redis might be
* running on the instance.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instance as inferred by Compute * Optimizer.
Compute Optimizer can infer if one of the following * applications might be running on the instance:
* AmazonEmr
- Infers that Amazon EMR might be running on the
* instance.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instance.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instance.
Memcached
- Infers that Memcached
* might be running on the instance.
NGINX
- Infers
* that NGINX might be running on the instance.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instance.
Redis
- Infers that Redis might be
* running on the instance.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instance as inferred by Compute * Optimizer.
Compute Optimizer can infer if one of the following * applications might be running on the instance:
* AmazonEmr
- Infers that Amazon EMR might be running on the
* instance.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instance.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instance.
Memcached
- Infers that Memcached
* might be running on the instance.
NGINX
- Infers
* that NGINX might be running on the instance.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instance.
Redis
- Infers that Redis might be
* running on the instance.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instance as inferred by Compute * Optimizer.
Compute Optimizer can infer if one of the following * applications might be running on the instance:
* AmazonEmr
- Infers that Amazon EMR might be running on the
* instance.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instance.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instance.
Memcached
- Infers that Memcached
* might be running on the instance.
NGINX
- Infers
* that NGINX might be running on the instance.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instance.
Redis
- Infers that Redis might be
* running on the instance.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instance as inferred by Compute * Optimizer.
Compute Optimizer can infer if one of the following * applications might be running on the instance:
* AmazonEmr
- Infers that Amazon EMR might be running on the
* instance.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instance.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instance.
Memcached
- Infers that Memcached
* might be running on the instance.
NGINX
- Infers
* that NGINX might be running on the instance.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instance.
Redis
- Infers that Redis might be
* running on the instance.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The state of the instance when the recommendation was generated.
*/ inline const InstanceState& GetInstanceState() const{ return m_instanceState; } /** *The state of the instance when the recommendation was generated.
*/ inline bool InstanceStateHasBeenSet() const { return m_instanceStateHasBeenSet; } /** *The state of the instance when the recommendation was generated.
*/ inline void SetInstanceState(const InstanceState& value) { m_instanceStateHasBeenSet = true; m_instanceState = value; } /** *The state of the instance when the recommendation was generated.
*/ inline void SetInstanceState(InstanceState&& value) { m_instanceStateHasBeenSet = true; m_instanceState = std::move(value); } /** *The state of the instance when the recommendation was generated.
*/ inline InstanceRecommendation& WithInstanceState(const InstanceState& value) { SetInstanceState(value); return *this;} /** *The state of the instance when the recommendation was generated.
*/ inline InstanceRecommendation& WithInstanceState(InstanceState&& value) { SetInstanceState(std::move(value)); return *this;} /** *A list of tags assigned to your Amazon EC2 instance recommendations.
*/ inline const Aws::VectorA list of tags assigned to your Amazon EC2 instance recommendations.
*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *A list of tags assigned to your Amazon EC2 instance recommendations.
*/ inline void SetTags(const Aws::VectorA list of tags assigned to your Amazon EC2 instance recommendations.
*/ inline void SetTags(Aws::VectorA list of tags assigned to your Amazon EC2 instance recommendations.
*/ inline InstanceRecommendation& WithTags(const Aws::VectorA list of tags assigned to your Amazon EC2 instance recommendations.
*/ inline InstanceRecommendation& WithTags(Aws::VectorA list of tags assigned to your Amazon EC2 instance recommendations.
*/ inline InstanceRecommendation& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *A list of tags assigned to your Amazon EC2 instance recommendations.
*/ inline InstanceRecommendation& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *An object that describes Compute Optimizer's integration status with your * external metrics provider.
*/ inline const ExternalMetricStatus& GetExternalMetricStatus() const{ return m_externalMetricStatus; } /** *An object that describes Compute Optimizer's integration status with your * external metrics provider.
*/ inline bool ExternalMetricStatusHasBeenSet() const { return m_externalMetricStatusHasBeenSet; } /** *An object that describes Compute Optimizer's integration status with your * external metrics provider.
*/ inline void SetExternalMetricStatus(const ExternalMetricStatus& value) { m_externalMetricStatusHasBeenSet = true; m_externalMetricStatus = value; } /** *An object that describes Compute Optimizer's integration status with your * external metrics provider.
*/ inline void SetExternalMetricStatus(ExternalMetricStatus&& value) { m_externalMetricStatusHasBeenSet = true; m_externalMetricStatus = std::move(value); } /** *An object that describes Compute Optimizer's integration status with your * external metrics provider.
*/ inline InstanceRecommendation& WithExternalMetricStatus(const ExternalMetricStatus& value) { SetExternalMetricStatus(value); return *this;} /** *An object that describes Compute Optimizer's integration status with your * external metrics provider.
*/ inline InstanceRecommendation& WithExternalMetricStatus(ExternalMetricStatus&& value) { SetExternalMetricStatus(std::move(value)); return *this;} private: Aws::String m_instanceArn; bool m_instanceArnHasBeenSet = false; Aws::String m_accountId; bool m_accountIdHasBeenSet = false; Aws::String m_instanceName; bool m_instanceNameHasBeenSet = false; Aws::String m_currentInstanceType; bool m_currentInstanceTypeHasBeenSet = false; Finding m_finding; bool m_findingHasBeenSet = false; Aws::Vector