[ Agent ] [ Status ] - accomplish agent info part
This commit is contained in:
@@ -26,18 +26,26 @@ type AgentMetric struct {
|
||||
CPUMetric *CPUMetric
|
||||
MemoryMetric *MemoryMetric
|
||||
NetworkMetric []NetworkMetric
|
||||
DiskInfo []DiskInfo
|
||||
HostInfo *HostInfo
|
||||
DiskMetric []DiskInfo
|
||||
DockerMetric *DockerMetric
|
||||
}
|
||||
|
||||
type AgentInfo struct {
|
||||
CPUInfo *CPUInfo
|
||||
MemoryInfo *MemoryInfo
|
||||
NetworkInfo []NetworkInfo
|
||||
DiskInfo []DiskInfo
|
||||
HostInfo *HostInfo
|
||||
DockerInfo *DockerMetric
|
||||
}
|
||||
|
||||
func Ping() string {
|
||||
return "PONG"
|
||||
}
|
||||
|
||||
func ReportAgentMetric() *AgentMetric {
|
||||
|
||||
lenOfAgentMetric := 6
|
||||
lenOfAgentMetric := 5
|
||||
waitResultChan := make(chan string, lenOfAgentMetric)
|
||||
timeout := time.After(5 * time.Second)
|
||||
var err error
|
||||
@@ -81,19 +89,6 @@ func ReportAgentMetric() *AgentMetric {
|
||||
log.ErrorF("[ReportAgentMetric] - GetDiskInfo exec error => %v", err)
|
||||
}
|
||||
|
||||
var hostInfo *HostInfo
|
||||
err = pool.Submit(func() {
|
||||
hostInfo, err = GetHostInfo()
|
||||
if err != nil {
|
||||
log.ErrorF("获取Agent的状态出现错误! 请检查 => %v", err)
|
||||
waitResultChan <- "GetHostInfo error !"
|
||||
}
|
||||
waitResultChan <- "hostInfo success !"
|
||||
})
|
||||
if err != nil {
|
||||
log.ErrorF("[ReportAgentMetric] - hostInfo exec error => %v", err)
|
||||
}
|
||||
|
||||
var networkMetric []NetworkMetric
|
||||
err = pool.Submit(func() {
|
||||
networkMetric, err = GetNetworkMetric()
|
||||
@@ -133,13 +128,118 @@ func ReportAgentMetric() *AgentMetric {
|
||||
CPUMetric: cpuMetric,
|
||||
MemoryMetric: memoryMetric,
|
||||
NetworkMetric: networkMetric,
|
||||
DiskInfo: diskInfoList,
|
||||
HostInfo: hostInfo,
|
||||
DiskMetric: diskInfoList,
|
||||
DockerMetric: dockerMetric,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func ReportAgentInfo() *AgentInfo {
|
||||
|
||||
lenOfAgentMetric := 6
|
||||
waitResultChan := make(chan string, lenOfAgentMetric)
|
||||
timeout := time.After(5 * time.Second)
|
||||
var err error
|
||||
|
||||
var cpuInfo *CPUInfo
|
||||
err = pool.Submit(func() {
|
||||
cpuInfo, err = GetCPUInfo()
|
||||
if err != nil {
|
||||
log.ErrorF("获取Agent的状态出现错误! 请检查 => %v", err)
|
||||
waitResultChan <- "GetCPUInfo error !"
|
||||
}
|
||||
waitResultChan <- "GetCPUInfo success !"
|
||||
})
|
||||
if err != nil {
|
||||
log.ErrorF("[ReportAgentInfo] - GetCPUInfo exec error => %v", err)
|
||||
}
|
||||
|
||||
var memoryInfo *MemoryInfo
|
||||
err = pool.Submit(func() {
|
||||
memoryInfo, err = GetMemoryInfo()
|
||||
if err != nil {
|
||||
log.ErrorF("获取Agent的状态出现错误! 请检查 => %v", err)
|
||||
waitResultChan <- "GetMemoryInfo error !"
|
||||
}
|
||||
waitResultChan <- "GetMemoryInfo success !"
|
||||
})
|
||||
if err != nil {
|
||||
log.ErrorF("[ReportAgentInfo] - GetMemoryInfo exec error => %v", err)
|
||||
}
|
||||
|
||||
var diskInfoList []DiskInfo
|
||||
err = pool.Submit(func() {
|
||||
diskInfoList, err = GetDiskInfo()
|
||||
if err != nil {
|
||||
log.ErrorF("获取Agent的状态出现错误! 请检查 => %v", err)
|
||||
waitResultChan <- "GetDiskInfo error !"
|
||||
}
|
||||
waitResultChan <- "GetDiskInfo success !"
|
||||
})
|
||||
if err != nil {
|
||||
log.ErrorF("[ReportAgentInfo] - GetDiskInfo exec error => %v", err)
|
||||
}
|
||||
|
||||
var hostInfo *HostInfo
|
||||
err = pool.Submit(func() {
|
||||
hostInfo, err = GetHostInfo()
|
||||
if err != nil {
|
||||
log.ErrorF("获取Agent的状态出现错误! 请检查 => %v", err)
|
||||
waitResultChan <- "GetHostInfo error !"
|
||||
}
|
||||
waitResultChan <- "hostInfo success !"
|
||||
})
|
||||
if err != nil {
|
||||
log.ErrorF("[ReportAgentInfo] - hostInfo exec error => %v", err)
|
||||
}
|
||||
|
||||
var networkInfo []NetworkInfo
|
||||
err = pool.Submit(func() {
|
||||
networkInfo, err = GetNetworkInfo()
|
||||
if err != nil {
|
||||
log.ErrorF("获取Agent的状态出现错误! 请检查 => %v", err)
|
||||
waitResultChan <- "GetNetworkInfo error !"
|
||||
}
|
||||
waitResultChan <- "GetNetworkInfo success !"
|
||||
})
|
||||
if err != nil {
|
||||
log.ErrorF("[ReportAgentInfo] - GetNetworkInfo exec error => %v", err)
|
||||
}
|
||||
|
||||
var dockerMetric *DockerMetric
|
||||
err = pool.Submit(func() {
|
||||
dockerMetric, err = GetDockerMetric()
|
||||
if err != nil {
|
||||
log.ErrorF("获取Agent的状态出现错误! 请检查 => %v", err)
|
||||
waitResultChan <- "GetDockerMetric error !"
|
||||
}
|
||||
waitResultChan <- "GetDockerMetric success !"
|
||||
})
|
||||
if err != nil {
|
||||
log.ErrorF("[ReportAgentInfo] - GetDockerMetric exec error => %v", err)
|
||||
}
|
||||
|
||||
for i := 0; i < lenOfAgentMetric; i++ {
|
||||
select {
|
||||
case result := <-waitResultChan:
|
||||
log.DebugF("[ReportAgentInfo] - metric received => %s", result)
|
||||
case <-timeout:
|
||||
fmt.Println("[ReportAgentInfo] - Timeout! Not all results received.")
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return &AgentInfo{
|
||||
CPUInfo: cpuInfo,
|
||||
MemoryInfo: memoryInfo,
|
||||
NetworkInfo: networkInfo,
|
||||
DiskInfo: diskInfoList,
|
||||
HostInfo: hostInfo,
|
||||
DockerInfo: dockerMetric,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func ConvertToFormat(eventData float64) string {
|
||||
duration := time.Duration(eventData) * time.Second
|
||||
|
||||
|
||||
Reference in New Issue
Block a user