结构调整

This commit is contained in:
Shikong 2023-07-15 23:29:03 +08:00
parent 7bed9df928
commit 5ec921bf41
12 changed files with 249 additions and 50 deletions

View File

@ -36,6 +36,38 @@ export namespace cpu {
this.microcode = source["microcode"];
}
}
export class TimesStat {
cpu: string;
user: number;
system: number;
idle: number;
nice: number;
iowait: number;
irq: number;
softirq: number;
steal: number;
guest: number;
guestNice: number;
static createFrom(source: any = {}) {
return new TimesStat(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.cpu = source["cpu"];
this.user = source["user"];
this.system = source["system"];
this.idle = source["idle"];
this.nice = source["nice"];
this.iowait = source["iowait"];
this.irq = source["irq"];
this.softirq = source["softirq"];
this.steal = source["steal"];
this.guest = source["guest"];
this.guestNice = source["guestNice"];
}
}
}
@ -92,6 +124,121 @@ export namespace disk {
}
export namespace mem {
export class SwapMemoryStat {
total: number;
used: number;
free: number;
usedPercent: number;
sin: number;
sout: number;
pgin: number;
pgout: number;
pgfault: number;
pgmajfault: number;
static createFrom(source: any = {}) {
return new SwapMemoryStat(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.total = source["total"];
this.used = source["used"];
this.free = source["free"];
this.usedPercent = source["usedPercent"];
this.sin = source["sin"];
this.sout = source["sout"];
this.pgin = source["pgin"];
this.pgout = source["pgout"];
this.pgfault = source["pgfault"];
this.pgmajfault = source["pgmajfault"];
}
}
export class VirtualMemoryStat {
total: number;
available: number;
used: number;
usedPercent: number;
free: number;
active: number;
inactive: number;
wired: number;
laundry: number;
buffers: number;
cached: number;
writeback: number;
dirty: number;
writebacktmp: number;
shared: number;
slab: number;
sreclaimable: number;
sunreclaim: number;
pagetables: number;
swapcached: number;
commitlimit: number;
committedas: number;
hightotal: number;
highfree: number;
lowtotal: number;
lowfree: number;
swaptotal: number;
swapfree: number;
mapped: number;
vmalloctotal: number;
vmallocused: number;
vmallocchunk: number;
hugepagestotal: number;
hugepagesfree: number;
hugepagesize: number;
static createFrom(source: any = {}) {
return new VirtualMemoryStat(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.total = source["total"];
this.available = source["available"];
this.used = source["used"];
this.usedPercent = source["usedPercent"];
this.free = source["free"];
this.active = source["active"];
this.inactive = source["inactive"];
this.wired = source["wired"];
this.laundry = source["laundry"];
this.buffers = source["buffers"];
this.cached = source["cached"];
this.writeback = source["writeback"];
this.dirty = source["dirty"];
this.writebacktmp = source["writebacktmp"];
this.shared = source["shared"];
this.slab = source["slab"];
this.sreclaimable = source["sreclaimable"];
this.sunreclaim = source["sunreclaim"];
this.pagetables = source["pagetables"];
this.swapcached = source["swapcached"];
this.commitlimit = source["commitlimit"];
this.committedas = source["committedas"];
this.hightotal = source["hightotal"];
this.highfree = source["highfree"];
this.lowtotal = source["lowtotal"];
this.lowfree = source["lowfree"];
this.swaptotal = source["swaptotal"];
this.swapfree = source["swapfree"];
this.mapped = source["mapped"];
this.vmalloctotal = source["vmalloctotal"];
this.vmallocused = source["vmallocused"];
this.vmallocchunk = source["vmallocchunk"];
this.hugepagestotal = source["hugepagestotal"];
this.hugepagesfree = source["hugepagesfree"];
this.hugepagesize = source["hugepagesize"];
}
}
}
export namespace net {
export class Addr {
@ -155,3 +302,20 @@ export namespace net {
}
export namespace process {
export class Process {
pid: number;
static createFrom(source: any = {}) {
return new Process(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.pid = source["pid"];
}
}
}

View File

@ -3,14 +3,30 @@
import {cpu} from '../models';
import {disk} from '../models';
import {net} from '../models';
import {process} from '../models';
import {mem} from '../models';
import {system} from '../models';
export function GetAllProcessPid():Promise<Array<number>>;
export function GetCpuInfo():Promise<Array<cpu.InfoStat>>;
export function GetCpuTimes():Promise<Array<cpu.TimesStat>>;
export function GetCpuUsage():Promise<Array<number>>;
export function GetDiskPartitions():Promise<Array<disk.PartitionStat>>;
export function GetDiskUsage(arg1:string):Promise<disk.UsageStat>;
export function GetIOCounters():Promise<{[key: string]: disk.IOCountersStat}>;
export function GetNetWorkConnection():Promise<Array<net.ConnectionStat>>;
export function GetProcessInfo(arg1:number):Promise<process.Process>;
export function GetSwapMemory():Promise<mem.SwapMemoryStat>;
export function GetVirtualMemory():Promise<mem.VirtualMemoryStat>;
export function ScanDir(arg1:string):Promise<Array<system.FileEntry>>;

View File

@ -2,10 +2,22 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export function GetAllProcessPid() {
return window['go']['system']['InfoUtils']['GetAllProcessPid']();
}
export function GetCpuInfo() {
return window['go']['system']['InfoUtils']['GetCpuInfo']();
}
export function GetCpuTimes() {
return window['go']['system']['InfoUtils']['GetCpuTimes']();
}
export function GetCpuUsage() {
return window['go']['system']['InfoUtils']['GetCpuUsage']();
}
export function GetDiskPartitions() {
return window['go']['system']['InfoUtils']['GetDiskPartitions']();
}
@ -14,10 +26,26 @@ export function GetDiskUsage(arg1) {
return window['go']['system']['InfoUtils']['GetDiskUsage'](arg1);
}
export function GetIOCounters() {
return window['go']['system']['InfoUtils']['GetIOCounters']();
}
export function GetNetWorkConnection() {
return window['go']['system']['InfoUtils']['GetNetWorkConnection']();
}
export function GetProcessInfo(arg1) {
return window['go']['system']['InfoUtils']['GetProcessInfo'](arg1);
}
export function GetSwapMemory() {
return window['go']['system']['InfoUtils']['GetSwapMemory']();
}
export function GetVirtualMemory() {
return window['go']['system']['InfoUtils']['GetVirtualMemory']();
}
export function ScanDir(arg1) {
return window['go']['system']['InfoUtils']['ScanDir'](arg1);
}

View File

@ -9,6 +9,7 @@ require (
github.com/go-playground/locales v0.14.1
github.com/go-playground/universal-translator v0.18.1
github.com/go-playground/validator/v10 v10.14.1
github.com/gookit/goutil v0.6.11
github.com/mutecomm/go-sqlcipher/v4 v4.4.2
github.com/pelletier/go-toml/v2 v2.0.8
github.com/shirou/gopsutil v2.21.11+incompatible

View File

@ -162,6 +162,9 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gookit/color v1.5.3 h1:twfIhZs4QLCtimkP7MOxlF3A0U/5cDPseRT9M/+2SCE=
github.com/gookit/goutil v0.6.11 h1:615nIGRpQHFmgJ1oaA48q/z7bTx6KzMvHmKTsp21T2E=
github.com/gookit/goutil v0.6.11/go.mod h1:bU9ghaM9uW23x2+jB0WcywRsFGbIP0hvdIKYl2OMiog=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
@ -494,6 +497,7 @@ github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4X
github.com/wailsapp/wails/v2 v2.5.1 h1:mfG+2kWqQXYOwdgI43HEILjOZDXbk5woPYI3jP2b+js=
github.com/wailsapp/wails/v2 v2.5.1/go.mod h1:jbOZbcr/zm79PxXxAjP8UoVlDd9wLW3uDs+isIthDfs=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw=

View File

@ -2,9 +2,20 @@ package system
import (
"github.com/shirou/gopsutil/cpu"
"time"
)
func GetCpuInfo() []cpu.InfoStat {
func (i *InfoUtils) GetCpuInfo() []cpu.InfoStat {
infoStats, _ := cpu.Info()
return infoStats
}
func (i *InfoUtils) GetCpuUsage() []float64 {
info, _ := cpu.Percent(time.Second, false)
return info
}
func (i *InfoUtils) GetCpuTimes() []cpu.TimesStat {
info, _ := cpu.Times(false)
return info
}

View File

@ -7,19 +7,17 @@ import (
"time"
)
const TypeDisk = "disk"
func GetDiskPartitions() []disk.PartitionStat {
func (i *InfoUtils) GetDiskPartitions() []disk.PartitionStat {
partitions, _ := disk.Partitions(true)
return partitions
}
func GetDiskUsage(diskPath string) *disk.UsageStat {
func (i *InfoUtils) GetDiskUsage(diskPath string) *disk.UsageStat {
usageStat, _ := disk.Usage(diskPath)
return usageStat
}
func GetIOCounters() map[string]disk.IOCountersStat {
func (i *InfoUtils) GetIOCounters() map[string]disk.IOCountersStat {
info, _ := disk.IOCounters()
return info
}
@ -33,7 +31,7 @@ type FileEntry struct {
Size int64
}
func ScanDir(path string) ([]*FileEntry, error) {
func (i *InfoUtils) ScanDir(path string) ([]*FileEntry, error) {
entries, err := os.ReadDir(path)
data := make([]*FileEntry, 0, len(entries))
for _, entry := range entries {

View File

@ -2,12 +2,12 @@ package system
import "github.com/shirou/gopsutil/mem"
func GetVirtualMemory() *mem.VirtualMemoryStat {
func (i *InfoUtils) GetVirtualMemory() *mem.VirtualMemoryStat {
stat, _ := mem.VirtualMemory()
return stat
}
func GetSwapMemory() *mem.SwapMemoryStat {
func (i *InfoUtils) GetSwapMemory() *mem.SwapMemoryStat {
stat, _ := mem.SwapMemory()
return stat
}

View File

@ -2,7 +2,7 @@ package system
import "github.com/shirou/gopsutil/net"
func GetNetWorkConnection() []net.ConnectionStat {
func (i *InfoUtils) GetNetWorkConnection() []net.ConnectionStat {
info, _ := net.Connections("all")
return info
}

View File

@ -2,12 +2,12 @@ package system
import "github.com/shirou/gopsutil/process"
func GetAllProcessPid() []int32 {
func (i *InfoUtils) GetAllProcessPid() []int32 {
pidList, _ := process.Pids()
return pidList
}
func GetProcessInfo(pid int32) *process.Process {
func (i *InfoUtils) GetProcessInfo(pid int32) *process.Process {
info, _ := process.NewProcess(pid)
return info
}

View File

@ -1,30 +1,4 @@
package system
import (
"github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/disk"
"github.com/shirou/gopsutil/net"
)
type InfoUtils struct {
}
func (i *InfoUtils) GetCpuInfo() []cpu.InfoStat {
return GetCpuInfo()
}
func (i *InfoUtils) GetDiskPartitions() []disk.PartitionStat {
return GetDiskPartitions()
}
func (i *InfoUtils) GetDiskUsage(diskPath string) *disk.UsageStat {
return GetDiskUsage(diskPath)
}
func (i *InfoUtils) ScanDir(path string) ([]*FileEntry, error) {
return ScanDir(path)
}
func (i *InfoUtils) GetNetWorkConnection() []net.ConnectionStat {
return GetNetWorkConnection()
}

View File

@ -2,37 +2,39 @@ package system
import (
"fmt"
"github.com/gookit/goutil/jsonutil"
"path/filepath"
"skapp/backend/utils"
"testing"
)
var i = &InfoUtils{}
func TestCpu(t *testing.T) {
fmt.Println(GetCpuInfo())
fmt.Println(i.GetCpuInfo())
}
func TestMemory(t *testing.T) {
fmt.Println(GetVirtualMemory())
fmt.Println(GetSwapMemory())
fmt.Println(i.GetVirtualMemory())
fmt.Println(i.GetSwapMemory())
}
func TestDisk(t *testing.T) {
partitions := GetDiskPartitions()
partitions := i.GetDiskPartitions()
fmt.Println(partitions)
for _, partition := range partitions {
fmt.Println(GetDiskUsage(partition.Device))
fmt.Println(i.GetDiskUsage(partition.Device))
}
fmt.Println(GetIOCounters())
fmt.Println(i.GetIOCounters())
}
func TestNetwork(t *testing.T) {
fmt.Println(GetNetWorkConnection())
fmt.Println(i.GetNetWorkConnection())
}
func TestProcess(t *testing.T) {
processList := GetAllProcessPid()
processList := i.GetAllProcessPid()
for _, pid := range processList {
fmt.Println(GetProcessInfo(pid))
fmt.Println(i.GetProcessInfo(pid))
}
}
@ -43,12 +45,13 @@ func TestScanDir(t *testing.T) {
fmt.Println(err)
}
data, err := ScanDir(path)
data, err := i.ScanDir(path)
if err != nil {
fmt.Println(err)
}
for _, entry := range data {
fmt.Printf("%+v\n", utils.Json(entry))
str, _ := jsonutil.Encode(entry)
fmt.Printf("%+v\n", str)
}
}