package gojobs import ( "context" "github.com/go-redis/redis/v9" "github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/host" "go.dtapp.net/goip" "go.dtapp.net/golog" "go.mongodb.org/mongo-driver/version" "log" "runtime" ) type systemResult struct { SystemHostname string // 主机名 SystemOs string // 系统类型 SystemVersion string // 系统版本 SystemKernel string // 系统内核 SystemKernelVersion string // 系统内核版本 SystemUpTime uint64 // 系统运行时间 SystemBootTime uint64 // 系统开机时间 CpuCores int // CPU核数 CpuModelName string // CPU型号名称 CpuMhz float64 // CPU兆赫 } func getSystem() (result systemResult) { hInfo, err := host.Info() if err != nil { log.Printf("getSystem.host.Info:%s\n", err) } result.SystemHostname = hInfo.Hostname result.SystemOs = hInfo.OS result.SystemVersion = hInfo.PlatformVersion result.SystemKernel = hInfo.KernelArch result.SystemKernelVersion = hInfo.KernelVersion result.SystemUpTime = hInfo.Uptime if hInfo.BootTime != 0 { result.SystemBootTime = hInfo.BootTime } hCpu, err := cpu.Times(true) if err != nil { log.Printf("getSystem.cpu.Times:%s\n", err) } result.CpuCores = len(hCpu) cInfo, err := cpu.Info() if err != nil { log.Printf("getSystem.cpu.Info:%s\n", err) } if len(cInfo) > 0 { result.CpuModelName = cInfo[0].ModelName result.CpuMhz = cInfo[0].Mhz } return result } func (c *Client) setConfig(ctx context.Context) { info := getSystem() c.config.systemHostname = info.SystemHostname c.config.systemOs = info.SystemOs c.config.systemVersion = info.SystemVersion c.config.systemKernel = info.SystemKernel c.config.systemKernelVersion = info.SystemKernelVersion c.config.systemBootTime = info.SystemBootTime c.config.cpuCores = info.CpuCores c.config.cpuModelName = info.CpuModelName c.config.cpuMhz = info.CpuMhz c.config.systemInsideIp = goip.GetInsideIp(ctx) c.config.sdkVersion = Version c.config.goVersion = runtime.Version() c.config.mongoSdkVersion = version.Driver c.config.redisSdkVersion = redis.Version() c.config.logVersion = golog.Version }