Files
core/http/api/about.go
2024-08-21 20:31:22 +02:00

48 lines
1.9 KiB
Go

package api
// About is some general information about the API
type About struct {
App string `json:"app"`
Auths []string `json:"auths"`
Name string `json:"name"`
ID string `json:"id"`
CreatedAt string `json:"created_at"` // RFC3339
Uptime uint64 `json:"uptime_seconds"`
Version AboutVersion `json:"version"`
Resources AboutResources `json:"resources"`
}
// AboutVersion is some information about the binary
type AboutVersion struct {
Number string `json:"number"`
Commit string `json:"repository_commit"`
Branch string `json:"repository_branch"`
Build string `json:"build_date"` // RFC3339
Arch string `json:"arch"`
Compiler string `json:"compiler"`
}
// AboutResources holds information about the current resource usage
type AboutResources struct {
IsThrottling bool `json:"is_throttling"` // Whether this core is currently throttling
NCPU float64 `json:"ncpu"` // Number of CPU on this node
CPU float64 `json:"cpu_used"` // Current CPU load, 0-100*ncpu
CPULimit float64 `json:"cpu_limit"` // Defined CPU load limit, 0-100*ncpu
CPUCore float64 `json:"cpu_core"` // Current CPU load of the core itself, 0-100*ncpu
Mem uint64 `json:"memory_used_bytes"` // Currently used memory in bytes
MemLimit uint64 `json:"memory_limit_bytes"` // Defined memory limit in bytes
MemTotal uint64 `json:"memory_total_bytes"` // Total available memory in bytes
MemCore uint64 `json:"memory_core_bytes"` // Current used memory of the core itself in bytes
}
// MinimalAbout is the minimal information about the API
type MinimalAbout struct {
App string `json:"app"`
Auths []string `json:"auths"`
Version AboutVersionMinimal `json:"version"`
}
type AboutVersionMinimal struct {
Number string `json:"number"`
}