alluxio.util.webui.NodeInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of alluxio-core-common Show documentation
Show all versions of alluxio-core-common Show documentation
Common utilities shared in Alluxio core modules
/*
* The Alluxio Open Foundation licenses this work under the Apache License, version 2.0
* (the "License"). You may not use this work except in compliance with the License, which is
* available at www.apache.org/licenses/LICENSE-2.0
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied, as more fully set forth in the License.
*
* See the NOTICE file distributed with this work for information regarding copyright ownership.
*/
package alluxio.util.webui;
import alluxio.util.CommonUtils;
import alluxio.util.FormatUtils;
import alluxio.wire.WorkerInfo;
import com.google.common.base.Objects;
/**
* Class to make referencing worker nodes more intuitive. Mainly to avoid implicit association by
* array indexes.
*/
public final class NodeInfo implements Comparable {
private final String mHost;
private final int mWebPort;
private final String mLastContactSec;
private final String mWorkerState;
private final long mCapacityBytes;
private final long mUsedBytes;
private final int mFreePercent;
private final int mUsedPercent;
private final String mUptimeClockTime;
private final long mWorkerId;
private final long mBlockCount;
private final String mVersion;
private final String mRevision;
/**
* Instantiates a new Node info.
*
* @param workerInfo the worker info
*/
public NodeInfo(WorkerInfo workerInfo) {
if (!workerInfo.getAddress().getContainerHost().equals("")) {
mHost = String.format("%s (%s)", workerInfo.getAddress().getHost(),
workerInfo.getAddress().getContainerHost());
} else {
mHost = workerInfo.getAddress().getHost();
}
mWebPort = workerInfo.getAddress().getWebPort();
mLastContactSec = Integer.toString(workerInfo.getLastContactSec());
mWorkerState = workerInfo.getState();
mCapacityBytes = workerInfo.getCapacityBytes();
mUsedBytes = workerInfo.getUsedBytes();
if (mCapacityBytes != 0) {
mUsedPercent = (int) (100L * mUsedBytes / mCapacityBytes);
} else {
mUsedPercent = 0;
}
mFreePercent = 100 - mUsedPercent;
mUptimeClockTime =
CommonUtils.convertMsToClockTime(
System.currentTimeMillis() - workerInfo.getStartTimeMs());
mWorkerId = workerInfo.getId();
mBlockCount = workerInfo.getBlockCount();
mVersion = workerInfo.getVersion();
mRevision = workerInfo.getRevision();
}
/**
* Gets capacity.
*
* @return the worker capacity in bytes
*/
public String getCapacity() {
return FormatUtils.getSizeFromBytes(mCapacityBytes);
}
/**
* Gets free space percent.
*
* @return the worker free space as a percentage
*/
public int getFreeSpacePercent() {
return mFreePercent;
}
/**
* Gets last heartbeat.
*
* @return the time of the last worker heartbeat
*/
public String getLastHeartbeat() {
return mLastContactSec;
}
/**
* Gets host.
*
* @return the worker host
*/
public String getHost() {
return mHost;
}
/**
* Gets web port.
*
* @return the worker port
*/
public int getWebPort() {
return mWebPort;
}
/**
* Gets state.
*
* @return the worker state
*/
public String getState() {
return mWorkerState;
}
/**
* Gets uptime clock time.
*
* @return the worker uptime
*/
public String getUptimeClockTime() {
return mUptimeClockTime;
}
/**
* Gets used memory.
*
* @return the worker used capacity in bytes
*/
public String getUsedMemory() {
return FormatUtils.getSizeFromBytes(mUsedBytes);
}
/**
* Gets used space percent.
*
* @return the worker used space as a percentage
*/
public int getUsedSpacePercent() {
return mUsedPercent;
}
/**
* Gets worker id.
*
* @return the worker id
*/
public long getWorkerId() {
return mWorkerId;
}
/**
* Gets worker block count.
*
* @return the worker block count
*/
public long getBlockCount() {
return mBlockCount;
}
/**
* Gets worker version.
*
* @return the worker version
*/
public String getVersion() {
return mVersion;
}
/**
* Gets worker revision.
*
* @return the worker revision
*/
public String getRevision() {
return mRevision;
}
/**
* Compare {@link NodeInfo} by lexicographical order of their associated host.
*
* @param o the comparison term
* @return a positive value if {@code this.getHost} is lexicographically "bigger" than
* {@code o.getHost}, 0 if the hosts are equal, a negative value otherwise.
*/
@Override
public int compareTo(NodeInfo o) {
if (o == null) {
return 1;
} else {
return this.getHost().compareTo(o.getHost());
}
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof NodeInfo)) {
return false;
}
return this.getHost().equals(((NodeInfo) o).getHost());
}
@Override
public int hashCode() {
return Objects.hashCode(this.getHost());
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy