sysmon/shared/src/main/java/sysmon/shared/MetricResult.java

117 lines
3.0 KiB
Java
Raw Normal View History

2021-05-21 09:08:43 +00:00
package sysmon.shared;
2021-04-25 13:25:20 +00:00
import java.io.Serializable;
2021-04-25 13:25:20 +00:00
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
2021-04-25 13:25:20 +00:00
public class MetricResult implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private String hostname;
private Long timestamp; // epoch milli
private List<Measurement> measurements;
public MetricResult() {
}
2021-04-25 13:25:20 +00:00
public MetricResult(String name) {
this.name = name;
this.timestamp = Instant.now().toEpochMilli();
2021-04-25 13:25:20 +00:00
}
public MetricResult(String name, Measurement measurement) {
this.name = name;
this.timestamp = Instant.now().toEpochMilli();
this.measurements = new ArrayList<Measurement>() {{
add(measurement);
}};
}
public MetricResult(String name, List<Measurement> measurements) {
this.name = name;
this.timestamp = Instant.now().toEpochMilli();
this.measurements = measurements;
2021-04-25 13:25:20 +00:00
}
public void setMeasurement(Measurement measurement) {
this.measurements = new ArrayList<Measurement>() {{
add(measurement);
}};
}
public void setMeasurements(List<Measurement> measurements) {
this.measurements = measurements;
}
2021-04-25 13:25:20 +00:00
public void setHostname(String hostname) {
this.hostname = hostname;
}
public void setName(String name) {
this.name = name;
}
public void setTimestamp(Long timestamp) {
this.timestamp = timestamp;
}
public String getName() {
return name;
}
public Long getTimestamp() {
return timestamp;
}
public String getHostname() {
return hostname;
}
public Measurement getMeasurement() {
if(measurements != null && measurements.size() > 0) {
return measurements.get(0);
}
return null;
}
public List<Measurement> getMeasurements() {
if(measurements != null && measurements.size() > 0) {
return measurements;
}
return null;
}
2021-04-25 13:25:20 +00:00
public String toString() {
StringBuilder sb = new StringBuilder(String.format("%s - %s => ", timestamp.toString(), name));
if(measurements != null && measurements.size() > 0) {
sb.append("{");
for(Measurement m : measurements) {
if(m != null && m.getTags() != null) {
for (Map.Entry<String, String> entry : m.getTags().entrySet())
sb.append(" [").append(entry.getKey()).append(": ").append(entry.getValue()).append("]");
}
if(m != null && m.getFields() != null) {
for (Map.Entry<String,Object> entry : m.getFields().entrySet())
sb.append(" [").append(entry.getKey()).append(": ").append(entry.getValue()).append("]");
}
}
sb.append("},");
2021-04-25 13:25:20 +00:00
}
return sb.append(" }").toString();
2021-04-25 13:25:20 +00:00
}
}