package com.arms.api.admin.monitoring.model.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class NodeStatsVO {
    private String nodeName;
    private String nodeId;
    private String ip;
    private String nodeRole;
    private Boolean isMaster;

    // JVM
    private Long heapUsedBytes;
    private Long heapMaxBytes;
    private Integer heapUsedPercent;

    // CPU
    private Integer cpuPercent;
    private Double loadAverage1m;
    private Double loadAverage5m;
    private Double loadAverage15m;

    // Disk
    private Long diskTotalBytes;
    private Long diskFreeBytes;
    private Long diskUsedBytes;
    private Integer diskUsedPercent;

    // 장애 판단
    private Boolean isHealthy;
    private String healthMessage;
}