You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2021/05/14 17:45:53 UTC
[cloudstack] branch 4.15 updated: api/server: cpu,
memory values with overprovisioning in metrics response (#4795)
This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch 4.15
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.15 by this push:
new 7557910 api/server: cpu, memory values with overprovisioning in metrics response (#4795)
7557910 is described below
commit 755791089d793751e8d21a91ff0ced005e8b508a
Author: Abhishek Kumar <ab...@gmail.com>
AuthorDate: Fri May 14 23:15:35 2021 +0530
api/server: cpu, memory values with overprovisioning in metrics response (#4795)
* metrics: operprovisioned host cpu allocated
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* changes
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* remove unused
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
---
.../cloudstack/api/response/HostResponse.java | 8 ++---
.../cloudstack/metrics/MetricsServiceImpl.java | 15 ++++----
.../cloudstack/response/HostMetricsResponse.java | 41 +++++++++++-----------
.../com/cloud/api/query/dao/HostJoinDaoImpl.java | 14 ++++----
4 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/api/src/main/java/org/apache/cloudstack/api/response/HostResponse.java b/api/src/main/java/org/apache/cloudstack/api/response/HostResponse.java
index 79e3d4b..526dffa 100644
--- a/api/src/main/java/org/apache/cloudstack/api/response/HostResponse.java
+++ b/api/src/main/java/org/apache/cloudstack/api/response/HostResponse.java
@@ -347,10 +347,6 @@ public class HostResponse extends BaseResponse {
this.cpuSpeed = cpuSpeed;
}
- public String getCpuAllocated() {
- return cpuAllocated;
- }
-
public void setCpuAllocated(String cpuAllocated) {
this.cpuAllocated = cpuAllocated;
}
@@ -622,6 +618,10 @@ public class HostResponse extends BaseResponse {
return cpuUsed;
}
+ public String getCpuAllocated() {
+ return cpuAllocated;
+ }
+
public Double getAverageLoad() {
return cpuloadaverage;
}
diff --git a/plugins/metrics/src/main/java/org/apache/cloudstack/metrics/MetricsServiceImpl.java b/plugins/metrics/src/main/java/org/apache/cloudstack/metrics/MetricsServiceImpl.java
index 14ee29c..5307f4b 100644
--- a/plugins/metrics/src/main/java/org/apache/cloudstack/metrics/MetricsServiceImpl.java
+++ b/plugins/metrics/src/main/java/org/apache/cloudstack/metrics/MetricsServiceImpl.java
@@ -264,9 +264,6 @@ public class MetricsServiceImpl extends ComponentLifecycleBase implements Metric
final Double memoryThreshold = AlertManager.MemoryCapacityThreshold.valueIn(clusterId);
final Float cpuDisableThreshold = DeploymentClusterPlanner.ClusterCPUCapacityDisableThreshold.valueIn(clusterId);
final Float memoryDisableThreshold = DeploymentClusterPlanner.ClusterMemoryCapacityDisableThreshold.valueIn(clusterId);
- // Over commit ratios
- final Double cpuOvercommitRatio = findRatioValue(ApiDBUtils.findClusterDetails(clusterId, "cpuOvercommitRatio"));
- final Double memoryOvercommitRatio = findRatioValue(ApiDBUtils.findClusterDetails(clusterId, "memoryOvercommitRatio"));
Long upInstances = 0L;
Long totalInstances = 0L;
@@ -283,11 +280,11 @@ public class MetricsServiceImpl extends ComponentLifecycleBase implements Metric
}
metricsResponse.setPowerState(hostResponse.getOutOfBandManagementResponse().getPowerState());
metricsResponse.setInstances(upInstances, totalInstances);
- metricsResponse.setCpuTotal(hostResponse.getCpuNumber(), hostResponse.getCpuSpeed(), cpuOvercommitRatio);
+ metricsResponse.setCpuTotal(hostResponse.getCpuNumber(), hostResponse.getCpuSpeed());
metricsResponse.setCpuUsed(hostResponse.getCpuUsed(), hostResponse.getCpuNumber(), hostResponse.getCpuSpeed());
metricsResponse.setCpuAllocated(hostResponse.getCpuAllocated(), hostResponse.getCpuNumber(), hostResponse.getCpuSpeed());
metricsResponse.setLoadAverage(hostResponse.getAverageLoad());
- metricsResponse.setMemTotal(hostResponse.getMemoryTotal(), memoryOvercommitRatio);
+ metricsResponse.setMemTotal(hostResponse.getMemoryTotal());
metricsResponse.setMemAllocated(hostResponse.getMemoryAllocated());
metricsResponse.setMemUsed(hostResponse.getMemoryUsed());
metricsResponse.setNetworkRead(hostResponse.getNetworkKbsRead());
@@ -295,13 +292,13 @@ public class MetricsServiceImpl extends ComponentLifecycleBase implements Metric
// CPU thresholds
metricsResponse.setCpuUsageThreshold(hostResponse.getCpuUsed(), cpuThreshold);
metricsResponse.setCpuUsageDisableThreshold(hostResponse.getCpuUsed(), cpuDisableThreshold);
- metricsResponse.setCpuAllocatedThreshold(hostResponse.getCpuAllocated(), cpuOvercommitRatio, cpuThreshold);
- metricsResponse.setCpuAllocatedDisableThreshold(hostResponse.getCpuAllocated(), cpuOvercommitRatio, cpuDisableThreshold);
+ metricsResponse.setCpuAllocatedThreshold(hostResponse.getCpuAllocated(), cpuThreshold);
+ metricsResponse.setCpuAllocatedDisableThreshold(hostResponse.getCpuAllocated(), cpuDisableThreshold);
// Memory thresholds
metricsResponse.setMemoryUsageThreshold(hostResponse.getMemoryUsed(), hostResponse.getMemoryTotal(), memoryThreshold);
metricsResponse.setMemoryUsageDisableThreshold(hostResponse.getMemoryUsed(), hostResponse.getMemoryTotal(), memoryDisableThreshold);
- metricsResponse.setMemoryAllocatedThreshold(hostResponse.getMemoryAllocated(), hostResponse.getMemoryTotal(), memoryOvercommitRatio, memoryThreshold);
- metricsResponse.setMemoryAllocatedDisableThreshold(hostResponse.getMemoryAllocated(), hostResponse.getMemoryTotal(), memoryOvercommitRatio, memoryDisableThreshold);
+ metricsResponse.setMemoryAllocatedThreshold(hostResponse.getMemoryAllocated(), hostResponse.getMemoryTotal(), memoryThreshold);
+ metricsResponse.setMemoryAllocatedDisableThreshold(hostResponse.getMemoryAllocated(), hostResponse.getMemoryTotal(), memoryDisableThreshold);
metricsResponses.add(metricsResponse);
}
return metricsResponses;
diff --git a/plugins/metrics/src/main/java/org/apache/cloudstack/response/HostMetricsResponse.java b/plugins/metrics/src/main/java/org/apache/cloudstack/response/HostMetricsResponse.java
index 484cd06..05e2f5f 100644
--- a/plugins/metrics/src/main/java/org/apache/cloudstack/response/HostMetricsResponse.java
+++ b/plugins/metrics/src/main/java/org/apache/cloudstack/response/HostMetricsResponse.java
@@ -17,11 +17,12 @@
package org.apache.cloudstack.response;
-import com.cloud.serializer.Param;
-import com.google.gson.annotations.SerializedName;
import org.apache.cloudstack.api.response.HostResponse;
import org.apache.cloudstack.outofbandmanagement.OutOfBandManagement;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+
public class HostMetricsResponse extends HostResponse {
@SerializedName("powerstate")
@Param(description = "out-of-band management power state")
@@ -109,9 +110,9 @@ public class HostMetricsResponse extends HostResponse {
}
}
- public void setCpuTotal(final Integer cpuNumber, final Long cpuSpeed, final Double overcommitRatio) {
- if (cpuNumber != null && cpuSpeed != null && overcommitRatio != null) {
- this.cpuTotal = String.format("%.2f Ghz (x %.1f)", cpuNumber * cpuSpeed / 1000.0, overcommitRatio);
+ public void setCpuTotal(final Integer cpuNumber, final Long cpuSpeed) {
+ if (cpuNumber != null && cpuSpeed != null) {
+ this.cpuTotal = String.format("%.2f Ghz", cpuNumber * cpuSpeed / 1000.0);
}
}
@@ -133,9 +134,9 @@ public class HostMetricsResponse extends HostResponse {
}
}
- public void setMemTotal(final Long memTotal, final Double overcommitRatio) {
- if (memTotal != null && overcommitRatio != null) {
- this.memTotal = String.format("%.2f GB (x %.1f)", memTotal / (1024.0 * 1024.0 * 1024.0), overcommitRatio);
+ public void setMemTotal(final Long memTotal) {
+ if (memTotal != null) {
+ this.memTotal = String.format("%.2f GB", memTotal / (1024.0 * 1024.0 * 1024.0));
}
}
@@ -175,15 +176,15 @@ public class HostMetricsResponse extends HostResponse {
}
}
- public void setCpuAllocatedThreshold(final String cpuAllocated, final Double overCommitRatio, final Double threshold) {
- if (cpuAllocated != null && overCommitRatio != null && threshold != null) {
- this.cpuAllocatedThresholdExceeded = Double.valueOf(cpuAllocated.replace("%", "")) > (100.0 * threshold * overCommitRatio);
+ public void setCpuAllocatedThreshold(final String cpuAllocated, final Double threshold) {
+ if (cpuAllocated != null && threshold != null) {
+ this.cpuAllocatedThresholdExceeded = Double.valueOf(cpuAllocated.replace("%", "")) > (100.0 * threshold );
}
}
- public void setCpuAllocatedDisableThreshold(final String cpuAllocated, final Double overCommitRatio, final Float threshold) {
- if (cpuAllocated != null && overCommitRatio != null && threshold != null) {
- this.cpuAllocatedDisableThresholdExceeded = Double.valueOf(cpuAllocated.replace("%", "")) > (100.0 * threshold * overCommitRatio);
+ public void setCpuAllocatedDisableThreshold(final String cpuAllocated, final Float threshold) {
+ if (cpuAllocated != null && threshold != null) {
+ this.cpuAllocatedDisableThresholdExceeded = Double.valueOf(cpuAllocated.replace("%", "")) > (100.0 * threshold);
}
}
@@ -199,15 +200,15 @@ public class HostMetricsResponse extends HostResponse {
}
}
- public void setMemoryAllocatedThreshold(final Long memAllocated, final Long memTotal, final Double overCommitRatio, final Double threshold) {
- if (memAllocated != null && memTotal != null && overCommitRatio != null && threshold != null) {
- this.memoryAllocatedThresholdExceeded = memAllocated > (memTotal * threshold * overCommitRatio);
+ public void setMemoryAllocatedThreshold(final Long memAllocated, final Long memTotal, final Double threshold) {
+ if (memAllocated != null && memTotal != null && threshold != null) {
+ this.memoryAllocatedThresholdExceeded = memAllocated > (memTotal * threshold);
}
}
- public void setMemoryAllocatedDisableThreshold(final Long memAllocated, final Long memTotal, final Double overCommitRatio, final Float threshold) {
- if (memAllocated != null && memTotal != null && overCommitRatio != null && threshold != null) {
- this.memoryAllocatedDisableThresholdExceeded = memAllocated > (memTotal * threshold * overCommitRatio);
+ public void setMemoryAllocatedDisableThreshold(final Long memAllocated, final Long memTotal, final Float threshold) {
+ if (memAllocated != null && memTotal != null && threshold != null) {
+ this.memoryAllocatedDisableThresholdExceeded = memAllocated > (memTotal * threshold);
}
}
diff --git a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java
index de87a0a..3223609 100644
--- a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java
+++ b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java
@@ -163,13 +163,15 @@ public class HostJoinDaoImpl extends GenericDaoBase<HostJoinVO, Long> implements
DecimalFormat decimalFormat = new DecimalFormat("#.##");
if (host.getType() == Host.Type.Routing) {
+ float cpuOverprovisioningFactor = ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId());
+ hostResponse.setCpuNumber((int)(host.getCpus() * cpuOverprovisioningFactor));
if (details.contains(HostDetails.all) || details.contains(HostDetails.capacity)) {
// set allocated capacities
Long mem = host.getMemReservedCapacity() + host.getMemUsedCapacity();
Long cpu = host.getCpuReservedCapacity() + host.getCpuUsedCapacity();
- hostResponse.setMemoryTotal(host.getTotalMemory());
Float memWithOverprovisioning = host.getTotalMemory() * ApiDBUtils.getMemOverprovisioningFactor(host.getClusterId());
+ hostResponse.setMemoryTotal(memWithOverprovisioning.longValue());
hostResponse.setMemWithOverprovisioning(decimalFormat.format(memWithOverprovisioning));
hostResponse.setMemoryAllocated(mem);
hostResponse.setMemoryAllocatedBytes(mem);
@@ -188,12 +190,12 @@ public class HostJoinDaoImpl extends GenericDaoBase<HostJoinVO, Long> implements
hostResponse.setHypervisorVersion(host.getHypervisorVersion());
+ float cpuWithOverprovisioning = host.getCpus() * host.getSpeed() * cpuOverprovisioningFactor;
hostResponse.setCpuAllocatedValue(cpu);
- String cpuAlloc = decimalFormat.format(((float)cpu / (float)(host.getCpus() * host.getSpeed())) * 100f) + "%";
- hostResponse.setCpuAllocated(cpuAlloc);
- hostResponse.setCpuAllocatedPercentage(cpuAlloc);
- float cpuWithOverprovisioning = host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId());
- hostResponse.setCpuAllocatedWithOverprovisioning(calculateResourceAllocatedPercentage(cpu, cpuWithOverprovisioning));
+ String cpuAllocated = calculateResourceAllocatedPercentage(cpu, cpuWithOverprovisioning);
+ hostResponse.setCpuAllocated(cpuAllocated);
+ hostResponse.setCpuAllocatedPercentage(cpuAllocated);
+ hostResponse.setCpuAllocatedWithOverprovisioning(cpuAllocated);
hostResponse.setCpuWithOverprovisioning(decimalFormat.format(cpuWithOverprovisioning));
}