Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
admin-backend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Odysseus
admin-backend
Commits
3523fcea
Commit
3523fcea
authored
May 22, 2024
by
brent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add explorer api
parent
186813b2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
82 additions
and
15 deletions
+82
-15
client.go
controllers/client.go
+4
-4
explorer.go
controllers/explorer.go
+69
-11
explorer.go
models/explorer.go
+9
-0
No files found.
controllers/client.go
View file @
3523fcea
...
...
@@ -24,10 +24,10 @@ type ClientController struct {
}
func
(
server
*
ClientController
)
GlobalStatistics
()
{
body
:=
server
.
Ctx
.
Input
.
RequestBody
appRequest
:=
models
.
AppRequest
{}
err
:=
json
.
Unmarshal
(
body
,
&
appRequest
)
//解析body中数据
logs
.
Debug
(
"appRequest"
,
appRequest
)
//
body := server.Ctx.Input.RequestBody
//
appRequest := models.AppRequest{}
//
err := json.Unmarshal(body, &appRequest) //解析body中数据
//
logs.Debug("appRequest", appRequest)
//if err != nil {
// server.respond(models.NoRequestBody, err.Error())
// return
...
...
controllers/explorer.go
View file @
3523fcea
...
...
@@ -10,6 +10,8 @@ import (
"fmt"
"github.com/beego/beego/orm"
"github.com/beego/beego/v2/core/logs"
"github.com/odysseus/service-registry/query"
registor
"github.com/odysseus/service-registry/registry"
"net/http"
"strconv"
"time"
...
...
@@ -20,14 +22,14 @@ type ExplorerController struct {
}
func
(
server
*
ExplorerController
)
Statistics
()
{
body
:=
server
.
Ctx
.
Input
.
RequestBody
appRequest
:=
models
.
AppRequest
{}
err
:=
json
.
Unmarshal
(
body
,
&
appRequest
)
//解析body中数据
logs
.
Debug
(
"appRequest"
,
appRequest
)
if
err
!=
nil
{
server
.
respond
(
models
.
NoRequestBody
,
err
.
Error
())
return
}
//
body := server.Ctx.Input.RequestBody
//
appRequest := models.AppRequest{}
//
err := json.Unmarshal(body, &appRequest) //解析body中数据
//
logs.Debug("appRequest", appRequest)
//
if err != nil {
//
server.respond(models.NoRequestBody, err.Error())
//
return
//
}
//if appRequest.WorkerAcc == "" {
// server.respond(models.MissingParameter, "Missing worker_acc parameter")
// return
...
...
@@ -51,18 +53,52 @@ func (server *ExplorerController) Statistics() {
workload
=
task
.
Workload
}
_
,
total
,
_
:=
registry
.
NodeManagersByPage
(
0
,
10
)
//_, total, _ := registry.NodeManagersByPage(0, 10)
total
:=
0
totalCPU
:=
0
totalGPU
:=
0
totalRAM
:=
int64
(
0
)
nodesString
,
err
:=
registry
.
Workers
()
if
err
==
nil
{
total
=
len
(
nodesString
)
//var nodes []models.Worker
for
_
,
node
:=
range
nodesString
{
registryInfo
:=
registor
.
RegistryInfo
{}
if
err
=
json
.
Unmarshal
([]
byte
(
node
),
&
registryInfo
);
err
!=
nil
{
server
.
respond
(
models
.
NoRequestBody
,
err
.
Error
())
return
}
worker
:=
query
.
WorkerInfo
{}
if
err
=
json
.
Unmarshal
([]
byte
(
registryInfo
.
Detail
),
&
worker
);
err
!=
nil
{
server
.
respond
(
models
.
NoRequestBody
,
err
.
Error
())
return
}
totalCPU
=
totalCPU
+
worker
.
CpuCore
totalRAM
=
totalRAM
+
worker
.
RamTotal
//worker.Timestamp = registryInfo.Timestamp
//worker.Instance = registryInfo.Instance
//worker.Status = registryInfo.Status
//nodes = append(nodes, worker)
}
}
responseData
:=
struct
{
TotalWorkload
int64
`json:"total_workload"`
TotalTask
int64
`json:"total_task"`
TotalCalls
int64
`json:"total_calls"`
NodeNums
int
`json:"node_nums"`
TotalGPU
int
`json:"total_GPU"`
TotalCPU
int
`json:"total_CPU"`
TotalRAM
int64
`json:"total_RAM"`
}{
TotalWorkload
:
workload
,
TotalTask
:
count
,
TotalCalls
:
count
,
NodeNums
:
total
,
TotalGPU
:
totalGPU
,
TotalRAM
:
totalRAM
,
TotalCPU
:
totalCPU
,
}
server
.
respond
(
http
.
StatusOK
,
""
,
responseData
)
}
...
...
@@ -113,17 +149,34 @@ func (server *ExplorerController) NodeByPage() {
if
appRequest
.
Size
==
0
{
appRequest
.
Size
=
10
}
data
,
total
,
err
:=
registry
.
NodeManag
ersByPage
(
int
(
appRequest
.
Size
),
int
(
appRequest
.
Page
))
data
,
total
,
err
:=
registry
.
Work
ersByPage
(
int
(
appRequest
.
Size
),
int
(
appRequest
.
Page
))
if
err
!=
nil
{
server
.
respond
(
models
.
BusinessFailed
,
err
.
Error
())
return
}
var
nodes
[]
models
.
Worker
for
_
,
node
:=
range
data
{
registryInfo
:=
registor
.
RegistryInfo
{}
if
err
=
json
.
Unmarshal
([]
byte
(
node
),
&
registryInfo
);
err
!=
nil
{
server
.
respond
(
models
.
NoRequestBody
,
err
.
Error
())
return
}
worker
:=
models
.
Worker
{}
if
err
=
json
.
Unmarshal
([]
byte
(
registryInfo
.
Detail
),
&
worker
);
err
!=
nil
{
server
.
respond
(
models
.
NoRequestBody
,
err
.
Error
())
return
}
worker
.
UpdateTime
=
registryInfo
.
Timestamp
worker
.
TaskList
=
nil
nodes
=
append
(
nodes
,
worker
)
}
responseData
:=
struct
{
Total
int64
`json:"total"`
Data
interface
{}
`json:"data,omitempty"`
}{
Total
:
int64
(
total
),
Data
:
data
,
Data
:
nodes
,
}
server
.
respond
(
http
.
StatusOK
,
""
,
responseData
)
}
...
...
@@ -167,6 +220,7 @@ func (server *ExplorerController) Tasks() {
Id
string
`json:"id,omitempty"`
Type
string
`json:"type,omitempty"`
ProfitAcc
string
`json:"profit_acc,omitempty"`
WorkerAcc
string
`json:"worker_acc,omitempty"`
Result
string
`json:"result,omitempty"`
Workload
int64
`json:"workload,omitempty"`
Time
time
.
Time
`json:"time,omitempty"`
...
...
@@ -232,6 +286,10 @@ func (server *ExplorerController) Tasks() {
BaseModel
:
baseModel
,
Workload
:
task
.
Workload
,
ProfitAcc
:
task
.
ProfitAcc
,
WorkerAcc
:
task
.
WorkerAcc
,
}
if
taskId
==
998
{
reTask
.
Type
=
"base task"
}
responseTasks
=
append
(
responseTasks
,
reTask
)
}
...
...
models/explorer.go
0 → 100644
View file @
3523fcea
package
models
import
"github.com/odysseus/service-registry/query"
type
Worker
struct
{
// worker specific info
query
.
WorkerInfo
UpdateTime
int64
`json:"update_time"`
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment