/**
* Copyright (C) 2013 Arman Gal
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.clevermore.monitor.shared.servers;
import java.io.Serializable;
import java.util.Arrays;
import org.clevermore.monitor.shared.runtime.MemoryUsageLight;
/**
* Class represents one connected server that hold all the relevant information for client representation.
*
* @author armang
*/
public class ConnectedServer
implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private Integer serverCode;
private String ip;
private Integer jmxPort;
private Boolean status;
private MemoryUsageLight memoryUsage;
private Double[] gcHistories;
private long upTime;
private double cpuUsage;
private double systemLoadAverage;
private String moreInfo;
private String toolTip;
public ConnectedServer() {}
public ConnectedServer(String name,
Integer serverCode,
String ip,
Integer jmxPort,
Boolean status,
MemoryUsageLight memoryUsage,
Double[] gcHistories,
long upTime,
double cpuUsage,
double systemLoadAverage,
String moreInfo,
String toolTip) {
this(name, serverCode, toolTip, jmxPort, status, memoryUsage, gcHistories, upTime, cpuUsage, systemLoadAverage);
this.moreInfo = "IP: " + getIp() + ", jmxPort:" + getJmxPort() + ", cpu usage:" + cpuUsage + "%, SLA:" + systemLoadAverage + "%" + moreInfo;
this.toolTip = toolTip;
}
public ConnectedServer(String name,
Integer serverCode,
String ip,
Integer jmxPort,
Boolean status,
MemoryUsageLight memoryUsage,
Double[] gcHistories,
long upTime,
double cpuUsage,
double systemLoadAverage) {
super();
this.name = name;
this.serverCode = serverCode;
this.ip = ip;
this.jmxPort = jmxPort;
this.status = status;
this.memoryUsage = memoryUsage;
this.gcHistories = gcHistories;
this.upTime = upTime;
this.cpuUsage = cpuUsage;
this.systemLoadAverage = systemLoadAverage;
this.toolTip = "JMX >> " + getIp() + ":" + getJmxPort() + "\nClick for more info";
this.moreInfo = "IP: " + getIp() + ", jmxPort:" + getJmxPort() + ", cpu usage:" + cpuUsage + "%, SLA:" + systemLoadAverage + "%";
}
public String getName() {
return name;
}
public Integer getServerCode() {
return serverCode;
}
public String getIp() {
return ip;
}
public Integer getJmxPort() {
return jmxPort;
}
public Boolean getStatus() {
return status;
}
public MemoryUsageLight getMemoryUsage() {
return memoryUsage;
}
public Double[] getGcHistories() {
return gcHistories;
}
public long getUpTime() {
return upTime;
}
public double getCpuUsage() {
return cpuUsage;
}
public double getSystemLoadAverage() {
return systemLoadAverage;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("ConnectedServer [n=")
.append(name)
.append(", sc=")
.append(serverCode)
.append(", ip=")
.append(ip)
.append(", jp=")
.append(jmxPort)
.append(", st=")
.append(status)
.append(", mul=")
.append(memoryUsage)
.append(", gc=")
.append(Arrays.toString(gcHistories))
.append(", ut=")
.append(upTime)
.append(", cp=")
.append(cpuUsage)
.append(", sla=")
.append(systemLoadAverage)
.append("]");
return builder.toString();
}
public String getToolTip() {
return toolTip;
}
public String getMoreInfo() {
return moreInfo;
}
}