49 lines
1.2 KiB
Java
49 lines
1.2 KiB
Java
package io.wdd.rpc.status;
|
|
|
|
import io.wdd.common.utils.TimeUtils;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Data;
|
|
import lombok.NoArgsConstructor;
|
|
import lombok.experimental.SuperBuilder;
|
|
import oshi.software.os.OperatingSystem;
|
|
|
|
import java.time.Instant;
|
|
import java.time.LocalDateTime;
|
|
import java.time.ZoneId;
|
|
|
|
@Data
|
|
@AllArgsConstructor
|
|
@NoArgsConstructor
|
|
@SuperBuilder(toBuilder = true)
|
|
public class AgentSystemInfo {
|
|
|
|
String osInfo;
|
|
|
|
String family;
|
|
|
|
String manufacturer;
|
|
|
|
String bootTime;
|
|
|
|
String upTime;
|
|
|
|
public static AgentSystemInfo mapFromOHSISystem(OperatingSystem os) {
|
|
|
|
return AgentSystemInfo.builder()
|
|
.osInfo(String.valueOf(os.getVersionInfo()))
|
|
.family(os.getFamily())
|
|
.manufacturer(os.getManufacturer())
|
|
.bootTime(TimeUtils.localDateTimeString(
|
|
LocalDateTime.ofInstant(
|
|
Instant.ofEpochSecond(os.getSystemBootTime()),
|
|
ZoneId.of("UTC+8")
|
|
)
|
|
))
|
|
.upTime(TimeUtils.toRelative(os.getSystemUptime()*1000, 3))
|
|
.build();
|
|
|
|
}
|
|
|
|
|
|
}
|