Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package org.apache.hadoop.ozone.recon.api;

import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.container.placement.metrics.SCMNodeStat;
import org.apache.hadoop.hdds.scm.node.NodeStatus;
import org.apache.hadoop.hdds.scm.server.OzoneStorageContainerManager;
Expand Down Expand Up @@ -97,6 +98,8 @@ public Response getClusterState() {
int totalMissingContainerCount = unhealthyContainers.size() ==
MISSING_CONTAINER_COUNT_LIMIT ?
MISSING_CONTAINER_COUNT_LIMIT : unhealthyContainers.size();
int openContainersCount = this.containerManager.getContainerStateCount(
HddsProtos.LifeCycleState.OPEN);
int healthyDatanodes =
nodeManager.getNodeCount(NodeStatus.inServiceHealthy()) +
nodeManager.getNodeCount(NodeStatus.inServiceHealthyReadOnly());
Expand Down Expand Up @@ -139,6 +142,7 @@ public Response getClusterState() {
.setMissingContainers(totalMissingContainerCount)
.setTotalDatanodes(datanodeDetails.size())
.setHealthyDatanodes(healthyDatanodes)
.setOpenContainers(openContainersCount)
.build();
return Response.ok(response).build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@ public final class ClusterStateResponse {
@JsonProperty("missingContainers")
private int missingContainers;

/**
* Total count of open containers in the cluster.
*/
@JsonProperty("openContainers")
private int openContainers;

/**
* Total count of volumes in the cluster.
*/
Expand Down Expand Up @@ -97,6 +103,7 @@ private ClusterStateResponse(Builder b) {
this.storageReport = b.storageReport;
this.containers = b.containers;
this.missingContainers = b.missingContainers;
this.openContainers = b.openContainers;
}

/**
Expand All @@ -110,6 +117,7 @@ public static final class Builder {
private DatanodeStorageReport storageReport;
private int containers;
private int missingContainers;
private int openContainers;
private long volumes;
private long buckets;
private long keys;
Expand All @@ -118,6 +126,7 @@ public Builder() {
// Default values
this.containers = 0;
this.missingContainers = 0;
this.openContainers = 0;
this.volumes = 0;
this.buckets = 0;
this.keys = 0;
Expand Down Expand Up @@ -156,6 +165,11 @@ public Builder setMissingContainers(int missingContainers) {
return this;
}

public Builder setOpenContainers(int openContainers) {
this.openContainers = openContainers;
return this;
}

public Builder setVolumes(long volumes) {
this.volumes = volumes;
return this;
Expand Down Expand Up @@ -206,6 +220,10 @@ public int getMissingContainers() {
return missingContainers;
}

public int getOpenContainers() {
return openContainers;
}

public long getBuckets() {
return buckets;
}
Expand Down
Loading