Systems: Analysis Details

Systems: Analysis Details

#340810

Description

The /systems/<id>/analysis-details/ resource is used to return instance type details of the specified system as well as details of the optimal target instance type. Additional targets are listed based on the optional spend and effort tolerance parameters.

See Systems for details of attribute management using the /systems endpoint.

Resource

/systems/<id>/analysis-details?target=<target value>

Supported Operations

Table: Supported Operation

Operation

HTTP Method

Input

Output

Description

Get a system's instance type details

GET /systems/<id>/analysis-details

Path Parameters:

Response for each supplied system ID.

Provides instance type details of the specified system as well as details of the recommended, optimal instance for this workload.

Additional targets are listed based on the mandatory target parameter and the optional spend and effort tolerance parameters.

Parameters

Path Parameters

Table: Path Parameter

Parameter Name

Type

Description

id

string

The unique entity ID of the instance for which you want to review recommendation details.

target

string

Target is mandatory and you can optionally specify one or both of spend and effort tolerance.

Specify details of the target instance type. Details are returned in the last section of the response. Possible values are:

  • "all_instances"—The optimal instance type is returned as well as the targets array containing all target instance types. Depending on the cloud provider, this can be 700+ instance types.
  • "compatible_instances"—The returned array contains only, instance types that have compatibility of "OK".
  • "incompatible_instances"—The returned array contains instance types that all have compatibility NOT equal to "OK";
  • "optimal_instance"—Returns the single optimal instance. The empty targets array is not returned.
  • Specific instance type name—Specify an instance type name, if different from the optimal instance type. i.e. m6i.large. The returned array contains details of the single, specified instance type.
  • You do not need to specify the manufacturer’s exact instance type name. Densify will map the entry to the provider's cloud catalog.

spend tolerance

string

Specify a decimal, limit value that when exceeded makes the instance incompatible. i.e. a value of "1.2" means that target instance types that cost 20% more than the current instance type cost are considered compatible.

Specifying a spend tolerance affects the compatibility value of instance types, that may have been considered compatible, based only on resource allocation. i.e. if the instance is compatible but outside spend tolerance, the compatibility value changes from "OK" to "Outside Spend Tolerance".

Specifying the spend tolerance does not reduce the number of instance types returned in the targets array. The spend tolerance value impacts the compatibility value of the instance types listed in the in the targets array.

effort tolerance

string

Specify the effort level, above which an instance type is considered incompatible. i.e. a value of "moderate" means that target instance types with effort level of low or very low will be considered compatible.

Specifying an effort tolerance affects the compatibility value of instance types that may have been considered compatible, based only on resource allocation. i.e. if the instance type is compatible but exceeds the effort tolerance, the "OK" becomes "Outside Effort Tolerance".

Possible values are:

  • "very_low"—Only instances with very low effort or no effort ("none") are considered compatible."
  • "low"—Only instances with low, very low or no effort required are considered compatible.
  • "moderate"—Only instances with moderate, low, very low effort" or no effort required are considered compatible.
  • "high"—Only instances with high, medium, moderate, low or very low effort are considered compatible. All instances other than those that are impossible are considered compatible.

As indicated above, specifying an effort tolerance does not reduce the number of instance types returned in the targets array.

The analysis uses the following priority to exclude target instance types from the list of compatible options.

  1. Insufficient Resources (Highest priority)
  2. Technically Incompatible
  3. Outside Spend Tolerance
  4. Outside Effort Tolerance
  5. OK

For example, if you have a target instance type that exceeds both spend tolerance and the effort tolerance, Densify returns "Outside Spend Tolerance" for the compatibility value since it has a higher priority.

Also, as indicated above, specifying an effort and /or spend tolerance affects the compatibility value of instance types that may have been considered compatible, based only on resource allocation. i.e. if the instance is compatible but exceeds the effort or spend tolerance, the "OK" becomes Outside Effort | Spend Tolerance. See the second example below.

Response

The response consists of a JSON structure with 3 sections for each specified entity ID.

  • Current instance type details;
  • Optimal instance type details;
  • Nested array with details of the additional targets based on query inputs

Table: Response—Current Instance Type Details

Element

Type

Filter/Sort

Description

entityID

string

 

The unique instance identifier.

When a new analysis is requested from the /analyze resource, the entity ID will not be available until after data collection completes and the analysis entity is created.

 

displayName

string

 

The cloud provider account name (e.g. AWS account name).

 

resourceID

string

 

The cloud provider-assigned identifier for this instance.

azureId

string

 

The unique identifier for the analysis entity in Densify.

Provided for Azure instances only.

resourceGroup

string

 

The resource group, to which this instance belongs.

Provided for Azure instances only.

currentInstanceType

string

 

The current instance type.

blendedScore

string

 

The blended score that is used to determine compatibility.

compatibility

string

 

The compatibility value.

Table: Response—Optimal Instance Type Details

Element

Type

Filter/Sort

Description

instanceType

string

 

The optimal instance type as determined by the Densify analysis.

An instance type value is not returned for terminate recommendations.

blendedScore

string

 

The blended score that is used to determine compatibility.

The blended score is set to -1 for terminate recommendations.

compatibility

string

The value that determines whether or not the instance type is compatible to move the workload from the current instance type. Possible values are:

  • Insufficient Resources—Blended Score = 0;
  • Technically Incompatible—Blended Score < 50;
  • OK—Blended Score ≥ 50
  • Outside Spend Tolerance—Blended Score ≥ 50 but cost exceeds the defined spend tolerance.
  • Outside Effort Tolerance—Blended Score ≥ 50 but effort exceeds the defined effort tolerance.

A compatibility value is not returned for terminate recommendations.

recommendationType

string

 

The recommendation generated by the Densify analysis.

Table: Response—Additional Instance Details

Element

Type

Output Section

Description

instanceType

string

 

Other compatible instance type as determined by the Densify analysis.

cpuModel

string

All

The CPU architecture for this instance type. For terminate this value will be set to N/A, in the optimal section.

numCpus

integer

All

The number of CPUs for this instance type. For terminate this value will be set to -1, in the optimal section.

memory

decimal/float

All

The total_memory, in GB for this instance type. For terminate this value will be set to -1, in the optimal section.

generation

integer

All

The instance's generation. For terminate this value will be set to -1, in the optimal section.

catalogCost

decimal/float

All

The cost of the instance type without considering the uptime. For terminate this value will be set to -1, in the optimal section.

blendedScore

string

 

The blended score that is used to determine compatibility.

compatibility

string

 

The compatibility value.

predictedUptime

decimal/float

Current only

The predicted uptime (%) for the system is based on the percentage of hours CPU utilization data is present in the workload range specified in the policy settings.

Predicted uptime % for new systems started mid-way within the workload range is calculated from the time/date that the system was started, as opposed to the beginning of the interval resulting, in more accurate prediction for the future.

percentOptimalCost

decimal/float

Current and Targets

The cost of the current instance type divided by the optimal cost or the cost of the target instance type divided by the optimal cost

effortEstimate

string

Optimal and Targets

The effort required to make the change.

Table: Response—Status Details

Element

Type

Filter/Sort

Description

message

string

 

The informational message returned with the status response.

status

number

 

The HTTP response code of the request. Possible status values include:

  • 200—OK;
  • 200—Entity Not Analyzed—The specified entity type is not supported for the analysis used to generate the catalog map. i.e. AWS ASGs and GCP instance types are not currently supported.
  • 200—Instance Type Analysis is Disabled—Publishing of the required data has been disabled. Contact [email protected] to enable this feature.
  • 400—Invalid parameter;
  • 401—Unauthorized;
  • 404—Entity not found;
  • 500—Internal server error.

Examples

Example: Return Compatible Targets within Spend Tolerance

The following example shows you how to obtain a list of only compatible targets within the spend tolerance. The cost must be within 30% of the current instance type:

Example: Return Compatible Targets within Spend and Effort Tolerance

The following example shows you how to obtain a list of all compatible targets within the spend tolerance. The cost must be within 50% of the current instance type. The effort must be equal to or lower than the value specified in the request.