package status import ( logger2 "agent-go/logger" "fmt" "time" ) var log = logger2.Log type StatusMessage struct { /** * which kind of status should be return * metric => short time message * all => all agent status message * healthy => check for healthy * */ Type string `json:"type,omitempty"` AgentTopicName string `json:"agent_topic_name,omitempty"` MetricRepeatCount int `json:"metric_repeat_count,omitempty"` metricRepeatPinch int `json:"metric_repeat_pinch,omitempty"` } type AgentStatus struct { CPUStatus *CPUStatus MemoryStatus *MemoryStatus NetworkStatus *NetworkStatus DiskStatus *DiskStatus } func ConvertToFormat(eventData float64) string { duration := time.Duration(eventData) * time.Second fmt.Println(duration) hours := int(duration.Hours()) minutes := int(duration.Minutes()) % 60 seconds := int(duration.Seconds()) % 60 milliseconds := duration.Milliseconds() % 1000 return fmt.Sprintf("%02d:%02d:%02d,%03d", hours, minutes, seconds, milliseconds) } func Ping() string { return "PONG" } func ReportAppStatus() *AgentStatus { cpuStatus, cpuerr := GetCPUStatus() memoryStatus, memerr := GetMemoryStatus() networkStatus, neterr := GetNetworkStatus() if cpuerr != nil || memerr != nil || neterr != nil { log.ErrorF("获取Agent的状态出现错误! 请检查") return nil } diskStatus := GetDiskStatus() return &AgentStatus{ CPUStatus: cpuStatus, MemoryStatus: memoryStatus, NetworkStatus: networkStatus, DiskStatus: diskStatus, } }