From 87b55a899bc1b4bc7d5a0f8d6ad1a1ede233ebd1 Mon Sep 17 00:00:00 2001
From: qixiaoning <jony.kee@outlook.com>
Date: 星期四, 04 九月 2025 17:35:24 +0800
Subject: [PATCH] 系统监控模型进程统计实时监控摄像机名称为空问题修复
---
sysinfo-service/service/proc.go | 129 ++++++++++++++++++++++++++++++------------
1 files changed, 91 insertions(+), 38 deletions(-)
diff --git a/sysinfo-service/service/proc.go b/sysinfo-service/service/proc.go
index 482e4a9..bfe0d51 100644
--- a/sysinfo-service/service/proc.go
+++ b/sysinfo-service/service/proc.go
@@ -1,11 +1,11 @@
package service
import (
- "basic.com/pubsub/protomsg.git"
- "basic.com/valib/bhomedbapi.git"
- "regexp"
"strings"
"vamicro/sysinfo-service/models/gogpu"
+
+ "basic.com/pubsub/protomsg.git"
+ "basic.com/valib/bhomedbapi.git"
"github.com/shirou/gopsutil/process"
)
@@ -13,21 +13,27 @@
const ProcName = "sysinfo-service"
var BasicProc = map[string]string{
- "analysis": "绠楁硶澶勭悊鍗曞厓",
+ // "analysis": "绠楁硶澶勭悊鍗曞厓",
"apiserver": "basic鎺ュ彛鏈嶅姟",
"decoder": "瑙嗛瑙g爜鏈嶅姟",
"elasticsearch": "鍒嗗竷寮忔暟鎹悳绱㈠紩鎿�",
- "faceDetect": "浜鸿劯璇嗗埆鏈嶅姟",
- "file-service": "鏂囦欢鏈嶅姟",
- "pollcontrol": "杞绠$悊",
- "ruleServer": "瑙勫垯澶勭悊鍗曞厓",
- "dataProcess": "瑙勫垯澶勭悊鍗曞厓",
- "schedule": "璋冨害杩涚▼",
- "sdkCompare": "浜鸿劯姣斿鏈嶅姟",
- "sshd": "ssh鏈嶅姟绔�",
- "videopublish": "瀹炴椂瑙嗛鎺ㄦ祦鏈嶅姟",
- "videosvr.out": "鍥芥爣涓婄骇鏈嶅姟",
- "weed": "鍒嗗竷寮忔枃浠剁郴缁�",
+ // "faceDetect": "浜鸿劯璇嗗埆鏈嶅姟",
+ "file-service": "鏂囦欢鏈嶅姟",
+ "pollcontrol": "杞绠$悊",
+ "pushServer": "瑙勫垯澶勭悊鍗曞厓",
+ // "dataProcess": "瑙勫垯澶勭悊鍗曞厓",
+ "schedule": "璋冨害杩涚▼",
+ // "sdkCompare": "浜鸿劯姣斿鏈嶅姟",
+ "sshd": "ssh鏈嶅姟绔�",
+ "videopublish": "瀹炴椂瑙嗛鎺ㄦ祦鏈嶅姟",
+ "videosvr.out": "鍥芥爣涓婄骇鏈嶅姟",
+ "weed": "鍒嗗竷寮忔枃浠剁郴缁�",
+}
+
+var ModleProc = map[string]string{
+ "python smart_detect.py": "鐩爣妫�娴嬫ā鍨�",
+ "/usr/bin/python qwen_detect.py": "鍥剧墖瑙f瀽妯″瀷",
+ "python app.py": "瀵硅瘽妫�绱㈡ā鍨�",
}
type UsedMap map[int]int64
@@ -51,10 +57,9 @@
Net int32 `json:"net"`
}
-func CollectAlgoProcess() []Proc {
- var procs []Proc
+func CollectAlgoProcess() (rsp []Proc) {
var gpuMemTotal int64
- var re = regexp.MustCompile(`-sdk=(\S+)`)
+ // 缁熻gpu
gpuPer := UsedMap{}
gpuInfo, err := gogpu.Info()
@@ -74,35 +79,83 @@
ps, _ := process.Processes()
- // 缁熻绠楁硶淇℃伅
- for _, p := range ps {
- if name, err := p.Name(); err == nil {
- if name == "analysis" {
- cmdLine, _ := p.Cmdline()
- if len(cmdLine) > 0 {
- match := re.FindAllStringSubmatch(cmdLine, -1)
- if len(match) > 0 && len(match[0]) > 1 {
- proc := Proc{
- Name: match[0][1],
- Pid: p.Pid,
- Desc: match[0][1],
- }
+ for k, v := range ModleProc {
+ proc := Proc{
+ Name: k,
+ Desc: v,
+ }
- proc.Cpu, _ = p.CPUPercent()
- proc.Mem, _ = p.MemoryPercent()
- proc.Gpu = gpuPer.Get(int(p.Pid))
-
- procs = append(procs, proc)
- }
+ for _, p := range ps {
+ if name, err := p.Cmdline(); err == nil {
+ if name == k {
+ proc.Pid = p.Pid
+ proc.Cpu, _ = p.CPUPercent()
+ proc.Mem, _ = p.MemoryPercent()
+ proc.Gpu = gpuPer.Get(int(p.Pid))
+ break
}
}
}
+ rsp = append(rsp, proc)
}
- return procs
+ return
+
}
+// func CollectAlgoProcess() []Proc {
+// var procs []Proc
+// var gpuMemTotal int64
+// var re = regexp.MustCompile(`-sdk=(\S+)`)
+// gpuPer := UsedMap{}
+
+// gpuInfo, err := gogpu.Info()
+// if err == nil {
+// for _, gpu := range gpuInfo.Info {
+// gpuMemTotal = gpuMemTotal + gpu.GpuMemoryTotal
+// }
+
+// for _, proc := range gpuInfo.Processes {
+// if _, ok := gpuPer[proc.Pid]; ok {
+// gpuPer[proc.Pid] = gpuPer[proc.Pid] + int64(proc.UsedMem)
+// } else {
+// gpuPer[proc.Pid] = int64(proc.UsedMem)
+// }
+// }
+// }
+
+// ps, _ := process.Processes()
+
+// // 缁熻绠楁硶淇℃伅
+// for _, p := range ps {
+// if name, err := p.Name(); err == nil {
+// if name == "analysis" {
+// cmdLine, _ := p.Cmdline()
+// if len(cmdLine) > 0 {
+// match := re.FindAllStringSubmatch(cmdLine, -1)
+// if len(match) > 0 && len(match[0]) > 1 {
+// proc := Proc{
+// Name: match[0][1],
+// Pid: p.Pid,
+// Desc: match[0][1],
+// }
+
+// proc.Cpu, _ = p.CPUPercent()
+// proc.Mem, _ = p.MemoryPercent()
+// proc.Gpu = gpuPer.Get(int(p.Pid))
+
+// procs = append(procs, proc)
+// }
+// }
+// }
+// }
+
+// }
+
+// return procs
+// }
+
func CollectAppProcess() []Proc {
var procs []Proc
var gpuMemTotal int64
--
Gitblit v1.8.0