diff --git a/server/agentmanager/mach_agent.go b/server/agentmanager/mach_agent.go index ce0069eb95769deb882aa7799343ceab5c80db1b..94501dd4f0277c1a584aa9d9db98a8de3ee75c14 100644 --- a/server/agentmanager/mach_agent.go +++ b/server/agentmanager/mach_agent.go @@ -42,3 +42,21 @@ func (t *Topoclient) DeleteAgent(uuid string) { t.ErrCh <- err } } + +// 获取运行状态agent的数目 +func (t *Topoclient) GetRunningAgentNumber() int { + var agent_count int + + agent_count = 0 + + Topo.AgentMap.Range(func(key, value interface{}) bool { + agent := value.(*Agent_m) + if agent.Host_2 != nil { + agent_count++ + } + + return true + }) + + return agent_count +} diff --git a/server/meta/node.go b/server/meta/node.go index 94c0b16bf586cefb61962186d39da168c76d79a7..d583141a5a5edb403f9251541efebb90f75660a8 100755 --- a/server/meta/node.go +++ b/server/meta/node.go @@ -8,7 +8,7 @@ import ( type Nodes struct { Lookup map[string]*Node - LookupByType map[string][]*Node + LookupByType map[string][]*Node LookupByUUID map[string][]*Node Nodes []*Node } @@ -55,6 +55,7 @@ func (ns *Nodes) Remove(node *Node) error { for j, n := range ns.LookupByUUID[ns.Nodes[i].UUID] { if n.ID == node.ID { ns.LookupByUUID[ns.Nodes[i].Type] = append(ns.LookupByUUID[ns.Nodes[i].UUID][:j], ns.LookupByUUID[ns.Nodes[i].UUID][j+1:]...) + break } } diff --git a/server/processor/processor.go b/server/processor/processor.go index ad69f9837cfa028ec0d9e60c639ea6a5c376f85e..3cc0ba07375c289542bd2e429c330244560aa99f 100644 --- a/server/processor/processor.go +++ b/server/processor/processor.go @@ -36,7 +36,6 @@ func (d *DataProcesser) Process_data() (*meta.Nodes, *meta.Edges, []error, []err } var wg sync.WaitGroup - agent_count := 0 create_node_rwlock := &sync.RWMutex{} agent_node_count = 0 agent_node_count_rwlock = &sync.RWMutex{} @@ -44,14 +43,7 @@ func (d *DataProcesser) Process_data() (*meta.Nodes, *meta.Edges, []error, []err var process_errorlist []error // 获取运行状态agent的数目 - agentmanager.Topo.AgentMap.Range(func(key, value interface{}) bool { - agent := value.(*agentmanager.Agent_m) - if agent.Host_2 != nil { - agent_count++ - } - - return true - }) + agent_count := agentmanager.Topo.GetRunningAgentNumber() datacollector := collector.CreateDataCollector() collect_errorlist = datacollector.Collect_instant_data()