diff --git a/plugins/integrations/prometheus/src/main/java/org/apache/cloudstack/metrics/PrometheusExporterImpl.java b/plugins/integrations/prometheus/src/main/java/org/apache/cloudstack/metrics/PrometheusExporterImpl.java index 68be69f7df6..4b8f19c6608 100644 --- a/plugins/integrations/prometheus/src/main/java/org/apache/cloudstack/metrics/PrometheusExporterImpl.java +++ b/plugins/integrations/prometheus/src/main/java/org/apache/cloudstack/metrics/PrometheusExporterImpl.java @@ -117,9 +117,10 @@ public class PrometheusExporterImpl extends ManagerBase implements PrometheusExp continue; } total++; - if (host.getStatus() == Status.Up) { + if (host.getStatus() == Status.Up && !host.isInMaintenanceStates()) { up++; - } else if (host.getStatus() == Status.Disconnected || host.getStatus() == Status.Down) { + } else if (host.getStatus() == Status.Disconnected || host.getStatus() == Status.Down || + host.isInMaintenanceStates()) { down++; } diff --git a/server/src/main/java/com/cloud/api/query/vo/HostJoinVO.java b/server/src/main/java/com/cloud/api/query/vo/HostJoinVO.java index 2afe1910964..d7a3bfee132 100644 --- a/server/src/main/java/com/cloud/api/query/vo/HostJoinVO.java +++ b/server/src/main/java/com/cloud/api/query/vo/HostJoinVO.java @@ -16,6 +16,7 @@ // under the License. package com.cloud.api.query.vo; +import java.util.Arrays; import java.util.Date; import javax.persistence.Column; @@ -402,4 +403,10 @@ public class HostJoinVO extends BaseViewVO implements InternalIdentity, Identity public boolean isAnnotated() { return StringUtils.isNotBlank(annotation); } + + public boolean isInMaintenanceStates() { + return Arrays.asList( + ResourceState.Maintenance, ResourceState.ErrorInMaintenance, ResourceState.PrepareForMaintenance) + .contains(getResourceState()); + } }