From 566bcbc02428643750a7aa1a5efab5a04ae6a2b9 Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Mon, 23 Oct 2023 15:51:20 +0800 Subject: [PATCH] define the function of agentmanager.getrunningagentnumber() --- server/agentmanager/mach_agent.go | 18 ++++++++++++++++++ server/meta/node.go | 3 ++- server/processor/processor.go | 10 +--------- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/server/agentmanager/mach_agent.go b/server/agentmanager/mach_agent.go index ce0069e..94501dd 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 94c0b16..d583141 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 ad69f98..3cc0ba0 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() -- Gitee