package sysmon.shared; import java.io.Serializable; import java.time.Instant; import java.util.ArrayList; import java.util.Map; public class MetricResult implements Serializable { private static final long serialVersionUID = 1L; private String name; private String hostname; private Long timestamp; // epoch milli private ArrayList measurements; public MetricResult() { } public MetricResult(String name) { this.name = name; this.timestamp = Instant.now().toEpochMilli(); } public MetricResult(String name, Measurement measurement) { this.name = name; this.timestamp = Instant.now().toEpochMilli(); this.measurements = new ArrayList() {{ add(measurement); }}; } public MetricResult(String name, ArrayList measurements) { this.name = name; this.timestamp = Instant.now().toEpochMilli(); this.measurements = measurements; } public void setMeasurement(Measurement measurement) { this.measurements = new ArrayList() {{ add(measurement); }}; } public void setMeasurements(ArrayList measurements) { this.measurements = measurements; } 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 ArrayList getMeasurements() { return measurements; } public String toString() { StringBuilder sb = new StringBuilder(String.format("From %s: ", name)); if(measurements != null && !measurements.isEmpty()) { sb.append(String.format("%d measurement(s) ", measurements.size())); for(Measurement m : measurements) { sb.append(String.format("{ tags: %d, fields: %d } ", m.getTags().size(), m.getFields().size())); } } return sb.toString(); } }