Commit f9fd9a12 authored by Your Name's avatar Your Name

update interface param

parent d9cbd940
......@@ -15,45 +15,58 @@ import (
// "github.com/spf13/cobra"
)
type Cpus struct {
TotalUtil int64 `json:"total_util"`
List []Cpu `json:"list"`
}
// cpu{
// seq integer($int64)
// model string
// addr
// thread integer($int64)
// core integer($int64)
// }
type Cpu struct {
Seq int64 `json:"seq"`
Model string `json:"model"`
Thread int64 `json:"thread"`
Core int64 `json:"core"`
Model string `json:"model"`
Number int64 `json:"number"`
Cores int64 `json:"cores"`
Threads int64 `json:"threads"`
Usage int64 `json:"usage"`
}
// type Cpu struct {
// Seq int64 `json:"seq"`
// Model string `json:"model"`
// Thread int64 `json:"thread"`
// Core int64 `json:"core"`
// }
// Gpu
func (c *ProApi) Cpus() (Cpus, error) {
func (c *ProApi) Cpus() (Cpu, error) {
totalUtil, err := c.CpuTotalUtil()
if err != nil {
return Cpus{}, err
return Cpu{}, err
}
// inCpus := make(map[string]Cpu)
modelname, core, thread, err := c.CpuItems()
if err != nil {
return Cpus{}, err
return Cpu{}, err
}
res := make([]Cpu, 0, 1)
res = append(res, Cpu{
Model: modelname,
Thread: int64(thread) + 1,
Core: int64(core) + 1,
})
result := Cpus{
TotalUtil: totalUtil,
List: res,
// res := make([]Cpu, 0, 1)
// res = append(res, Cpu{
// Model: modelname,
// Threads: int64(thread) + 1,
// Cores: int64(core) + 1,
// })
result := Cpu{
Usage: totalUtil,
Model: modelname,
Threads: int64(thread) + 1,
Cores: int64(core) + 1,
}
return result, nil
......
......@@ -74,11 +74,12 @@ paths:
schema:
type: object
properties:
data:
hardware:
$ref: "#/components/schemas/hw"
code:
type: integer
format: int64
format: int64
enum: [200, 500]
msg:
type: string
components:
......@@ -104,37 +105,41 @@ components:
hw:
type: object
properties:
gpus:
type: array
items:
$ref: "#/components/schemas/gpu"
cpus:
CPU:
type: object
properties:
total_util:
model:
type: string
number:
type: integer
format: int64
list:
type: array
items:
$ref: "#/components/schemas/cpu"
mem:
format: int64
cores:
type: integer
format: int64
threads:
type: integer
format: int64
usage:
type: integer
format: int64
GPU:
type: array
items:
$ref: "#/components/schemas/gpu"
RAM:
type: object
properties:
mem_total:
total:
type: integer
format: int64
mem_free:
free:
type: integer
format: int64
mem_util:
type: integer
format: int64
disk:
DISK:
type: array
items:
$ref: "#/components/schemas/filesystem"
networks:
NET:
type: array
items:
$ref: "#/components/schemas/network"
......@@ -174,27 +179,31 @@ components:
seq:
type: integer
format: int64
uuid:
type: string
model:
type: string
mem_util:
performance:
type: integer
format: int64
gpu_util:
format: int64
power_rating:
type: integer
format: int64
format: int64
mem_total:
type: integer
format: int64
mem_free:
type: integer
format: int64
power:
format: int64
usage:
type: integer
format: int64
gpu_temp:
format: int64
temp:
type: integer
format: int64
power_rt:
type: integer
format: int64
cpu:
type: object
properties:
......
......@@ -11,15 +11,48 @@ import (
"github.com/prometheus/common/model"
)
// seq:
// type: integer
// format: int64
// uuid:
// type: string
// model:
// type: string
// performance:
// type: integer
// format: int64
// power_rating:
// type: integer
// format: int64
// mem_total:
// type: integer
// format: int64
// mem_free:
// type: integer
// format: int64
// usage:
// type: integer
// format: int64
// temp:
// type: integer
// format: int64
// power_rt:
// type: integer
// format: int64
type Gpu struct {
Seq int `json:"seq"`
Model string `json:"model"`
MemUtil int64 `json:"mem_util"`
GpuUtil int64 `json:"gpu_util"`
MemTotal int64 `json:"mem_total"`
MemFree int64 `json:"mem_free"`
Power int64 `json:"power"`
GpuTemp int64 `json:"gpu_temp"`
Seq int `json:"seq"`
UUIDStr string `json:"uuid"`
Model string `json:"model"`
Performance int64 `json:"performance"`
PowerRating int64 `json:"power_rating"`
MemTotal int64 `json:"mem_total"`
MemFree int64 `json:"mem_free"`
//performance
GpuUtil int64 `json:"usage"`
GpuTemp int64 `json:"temp"`
// MemUtil int64 `json:"mem_util"`
Power int64 `json:"power_rt"`
}
// Gpu
......@@ -33,13 +66,13 @@ func (c *ProApi) Gpus() ([]Gpu, error) {
return nil, err
}
gpuMemUtil, err := c.GpuMemUtil(gpuUtil)
// gpuMemUtil, err := c.GpuMemUtil(gpuUtil)
if err != nil {
return nil, err
}
// if err != nil {
// return nil, err
// }
powerUsage, err := c.GpuPowerUsage(gpuMemUtil)
powerUsage, err := c.GpuPowerUsage(gpuUtil)
if err != nil {
return nil, err
......@@ -63,7 +96,8 @@ func (c *ProApi) Gpus() ([]Gpu, error) {
res := make([]Gpu, 0, 8)
for _, gpu := range gpuMemFree {
for uuidStr, gpu := range gpuMemFree {
gpu.UUIDStr = uuidStr
res = append(res, gpu)
}
......@@ -140,67 +174,67 @@ func (c *ProApi) GpuUtil(inGpus map[string]Gpu) (map[string]Gpu, error) {
return inGpus, nil
}
func (c *ProApi) GpuMemUtil(inGpus map[string]Gpu) (map[string]Gpu, error) {
// func (c *ProApi) GpuMemUtil(inGpus map[string]Gpu) (map[string]Gpu, error) {
// outGpus := make(map[string]Gpu, 8)
// // outGpus := make(map[string]Gpu, 8)
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
// ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
// defer cancel()
gpuResult, gpuWarnings, err := c.API.Query(ctx, "DCGM_FI_DEV_MEM_COPY_UTIL", time.Now(), v1.WithTimeout(5*time.Second))
if err != nil {
return nil, err
}
if len(gpuWarnings) > 0 {
fmt.Printf("Warnings: %v\n", gpuWarnings)
}
// gpuResult, gpuWarnings, err := c.API.Query(ctx, "DCGM_FI_DEV_MEM_COPY_UTIL", time.Now(), v1.WithTimeout(5*time.Second))
// if err != nil {
// return nil, err
// }
// if len(gpuWarnings) > 0 {
// fmt.Printf("Warnings: %v\n", gpuWarnings)
// }
switch {
case gpuResult.Type() == model.ValVector:
// switch {
// case gpuResult.Type() == model.ValVector:
vectorVal := gpuResult.(model.Vector)
// vectorVal := gpuResult.(model.Vector)
for _, elem := range vectorVal {
// for _, elem := range vectorVal {
uuidStr := ""
// uuidStr := ""
if uuid, ok := elem.Metric["UUID"]; ok {
uuidStr = string(uuid)
} else {
continue
}
// if uuid, ok := elem.Metric["UUID"]; ok {
// uuidStr = string(uuid)
// } else {
// continue
// }
gpu := Gpu{}
if oldV, ok := inGpus[uuidStr]; ok {
gpu = oldV
} else {
// gpu := Gpu{}
// if oldV, ok := inGpus[uuidStr]; ok {
// gpu = oldV
// } else {
if idxAsStr, ok := elem.Metric["gpu"]; ok {
seq, err := strconv.Atoi(string(idxAsStr))
if err != nil {
return nil, err
}
gpu.Seq = seq
} else {
continue
}
// if idxAsStr, ok := elem.Metric["gpu"]; ok {
// seq, err := strconv.Atoi(string(idxAsStr))
// if err != nil {
// return nil, err
// }
// gpu.Seq = seq
// } else {
// continue
// }
if modelName, ok := elem.Metric["modelName"]; ok {
gpu.Model = string(modelName)
} else {
continue
}
}
// if modelName, ok := elem.Metric["modelName"]; ok {
// gpu.Model = string(modelName)
// } else {
// continue
// }
// }
gpu.MemUtil = int64(elem.Value)
// gpu.MemUtil = int64(elem.Value)
inGpus[uuidStr] = gpu
// inGpus[uuidStr] = gpu
}
}
// }
// }
return inGpus, nil
}
// return inGpus, nil
// }
func (c *ProApi) GpuPowerUsage(inGpus map[string]Gpu) (map[string]Gpu, error) {
......
......@@ -48,7 +48,7 @@ func main() {
if err != nil {
fmt.Println("gpu error", err.Error())
res.Msg = err.Error()
res.Code = 2
res.Code = 500
}
res.Data.Gpus = gpus
......@@ -58,7 +58,7 @@ func main() {
if err != nil {
fmt.Println("cpu error", err.Error())
res.Msg = err.Error()
res.Code = 2
res.Code = 500
}
res.Data.Cpus = cpus
......@@ -68,7 +68,7 @@ func main() {
if err != nil {
fmt.Println("network error", err.Error())
res.Msg = err.Error()
res.Code = 2
res.Code = 500
}
res.Data.Networks = networks
......@@ -78,7 +78,7 @@ func main() {
if err != nil {
fmt.Println("disks error", err.Error())
res.Msg = err.Error()
res.Code = 2
res.Code = 500
}
res.Data.Disk = filesystems
......@@ -88,12 +88,12 @@ func main() {
if err != nil {
fmt.Println("mem error", err.Error())
res.Msg = err.Error()
res.Code = 2
res.Code = 500
}
res.Data.Mem = mem
res.Code = 1
res.Code = 200
return c.JSON(&res)
})
......@@ -295,9 +295,9 @@ type NewResponse struct {
}
type Data struct {
Gpus []Gpu `json:"gpus"`
Cpus Cpus `json:"cpus"`
Disk []FileSystem `json:"disk"`
Networks []Network `json:"networks"`
Mem Mem `json:"mem"`
Cpus Cpu `json:"CPU"`
Gpus []Gpu `json:"GPU"`
Disk []FileSystem `json:"DISK"`
Networks []Network `json:"NET"`
Mem Mem `json:"RAM"`
}
......@@ -14,9 +14,9 @@ import (
)
type Mem struct {
Total int64 `json:"mem_total"`
Free int64 `json:"mem_free"`
Util int64 `json:"mem_util"`
Total int64 `json:"total"`
Free int64 `json:"free"`
// Util int64 `json:"mem_util"`
}
func (c *ProApi) Mem() (Mem, error) {
......@@ -32,16 +32,16 @@ func (c *ProApi) Mem() (Mem, error) {
if err != nil {
return Mem{}, err
}
util, err := c.MemUtil()
// util, err := c.MemUtil()
if err != nil {
return Mem{}, err
}
// if err != nil {
// return Mem{}, err
// }
return Mem{
Total: total,
Free: free,
Util: util,
// Util: util,
}, nil
}
......
......@@ -73,18 +73,18 @@ func (c *ProApi) Networks() ([]Network, error) {
res = append(res, n)
}
winRes, err := GetNics("ipconfig")
if err != nil {
return nil, err
}
for _, v := range winRes {
res = append(res, Network{
Device: v.Device,
Mac: v.MAC,
})
}
// winRes, err := GetNics("ipconfig")
// if err != nil {
// return nil, err
// }
// for _, v := range winRes {
// res = append(res, Network{
// Device: v.Device,
// Mac: v.MAC,
// })
// }
// 定义排序函数
sortByDevice := func(i, j int) bool {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment