Documentation
¶
Index ¶
- Constants
- Variables
- func CapturePanic()
- func CheckTuningSpec(tuning Tuning) error
- func GenNodeToken(hostname, advertiseAddr string) string
- func GenerateNodeHashByMacAddr() (string, error)
- func GetEmailRecipients() ([]email.Recipient, error)
- func GetEmailSenders() ([]email.Sender, error)
- func GetLicenseSearcher() bleve.Index
- func GetLocalTunings() *sync.Map
- func GetMacAddr(interfaceName string) (string, error)
- func GetNodeSearcher() bleve.Index
- func GetRadosGatewayUrl() string
- func GetSlackChannels() ([]slack.Channel, error)
- func GetSystemSerial() (string, error)
- func GetTuningSearcher() bleve.Index
- func GetTuningSpecs() *sync.Map
- func HealthDB() string
- func HostnameNodeMap() (map[string]Node, error)
- func InitLicenseSearchIndex() error
- func InitNodeSearchIndex() error
- func InitTuningSearchIndex() error
- func IsLocalNode(hostname string) bool
- func IsPageRequired(pageNum, pageSize string) bool
- func RepairCollection() string
- func SetLocalTuning(tuning Tuning)
- func SetTuningSpec(name string, spec *TuningSpec)
- func SettingsDB() string
- func SeverityFullName(severity string) string
- func SeverityShortName(severity string) string
- func ShouldIHandleTheTuning(name string) bool
- func SyncRoleNodes()
- func TimPastRFC3339(duration time.Duration) string
- func TimeISO8601Z(t time.Time) string
- func TimeLocal() string
- func TimeLocalISO8601(t time.Time) string
- func TimeLocalRFC3339(t time.Time) string
- func TimeNowRFC3339() string
- func TimeNowRFC3339Z() string
- func TimePastRFC3339Z(duration time.Duration) string
- func TimeRFC3339(duration time.Duration) string
- func TimeRFC3339Z(t time.Time) string
- func TimeUTC(t time.Time) string
- func TitlePrefixCollection() string
- func TuningCollection(name string) string
- func TuningDB() string
- func TuningReqCollection() string
- type Additional
- type BlockDevice
- type ComputeStatistic
- type Dashboard
- type DataCenter
- type DataCenterUsage
- type Event
- type EventFilter
- type EventStat
- type Expiry
- type Health
- type Host
- type HostFilter
- type HostNetworkPacket
- type HostPercentageUsage
- type HostUsage
- type InstanceFilter
- type Integration
- type Issue
- type Label
- type License
- type Limit
- type ListTuningOptions
- type MetricRank
- type Module
- type NetworkInterface
- type Node
- func (n *Node) CreateSupportFileUrl(file support.File) string
- func (n *Node) GenAuthHeader() (string, string)
- func (n *Node) GetBearerToken() string
- func (n *Node) GetMetricUrl(metric, view string) string
- func (n *Node) GetNodeDetailsUrl() string
- func (n *Node) GetSupportFileUrl() string
- func (n *Node) GetTuningUrl() string
- func (n *Node) IsLocal() bool
- func (n *Node) PatchSupportFileTaskUrl(file support.File) string
- func (n *Node) PatchTriggerTaskUrl(trigger trigger.Options) string
- func (n *Node) PatchTuningTaskUrl(tuning Tuning) string
- func (n *Node) PatchTuningUrl(tuning Tuning) string
- type Page
- type Period
- type Product
- type Quantity
- type RankPoint
- type RawBlockDevice
- type RawLicense
- type Role
- type Selector
- type Service
- type ServiceLevelAgreement
- type Setting
- type SpaceStatistic
- type StorageIopsSeries
- type StorageLatencySeries
- type StorageTimeSeries
- type SystemFilter
- type TimeBytesPoint
- type TimeMillisecondPoint
- type TimeOpsPoint
- type TimePacketsPoint
- type TimeUsedPercent
- type TimeValue
- type TitlePrefix
- type TrafficStatistic
- type Tuning
- func (t *Tuning) Bytes() ([]byte, error)
- func (t *Tuning) CopyAndOverrideHost(node Node) Tuning
- func (t *Tuning) GenTaskUpdate() Tuning
- func (t *Tuning) GenerateId() string
- func (t *Tuning) IncludeHost(hostname string) bool
- func (t *Tuning) IncludeHosts(hosts []string) bool
- func (t *Tuning) InitHosts(hosts []string)
- func (t *Tuning) InitOkStatus()
- func (t *Tuning) InitResetStatus()
- func (t *Tuning) InitStatus(current, desired string)
- func (t *Tuning) InitUpdateStatus()
- func (t *Tuning) JoinHosts() string
- func (t *Tuning) SearchKey() string
- func (t *Tuning) SetCompleted()
- func (t *Tuning) SetDesired(status string)
- func (t *Tuning) SetError()
- func (t *Tuning) SetNodeInfo(role, address string)
- func (t *Tuning) SetUpdated()
- func (t *Tuning) SetUpdating()
- func (t *Tuning) StrValue() string
- type TuningLimitation
- type TuningPolicy
- type TuningReset
- type TuningSpec
- type TuningToggle
- type TuningUpdate
- type User
- type VmDiskIopsUsage
- type VmMetricsUsage
- type VmNetworkTrafficUsage
- type VmPercentageUsage
- type VmUsage
Constants ¶
View Source
const ( Tokens = "tokens" Logout = "logout" )
View Source
const ( Summary = "summary" Metrics = "metrics" )
View Source
const ( Nodes = "nodes" DataCenterHelpUrl = "https://www.bigstack.co/contact-us" )
View Source
const ( RoleControl = "control" RoleCompute = "compute" RoleStorage = "storage" RoleControlConverged = "control-converged" RoleModerator = "moderator" RoleEdgeCore = "edge-core" )
View Source
const ( ISO8601 = "2006-01-02T15:04:05" ISO8601Z = "2006-01-02T15:04:05+00:00" RFC3339 = time.RFC3339 RFC3339Z = "2006-01-02T15:04:05Z07:00" )
View Source
const ( Tunings = "tunings" TuningRecordTTL = 3600 )
View Source
const (
ApiDoc = "api-doc"
)
View Source
const (
DataCenters = "datacenters"
)
View Source
const (
Events = "events"
)
View Source
const (
Grafana = "grafana"
)
View Source
const (
Healths = "healths"
)
View Source
const (
Integrations = "integrations"
)
View Source
const (
Licenses = "licenses"
)
View Source
const (
Me = "me"
)
View Source
const (
NetMajorInterface = "eth0"
)
View Source
const (
RadosGatewayPort = 8888
)
View Source
const (
RegionAuto = "auto"
)
View Source
const (
Services = "services"
)
View Source
const (
Settings = "settings"
)
View Source
const (
Triggers = "triggers"
)
Variables ¶
View Source
var ( DefaultKeycloakRealm = "master" DefaultIdpSamlMetadataPath = fmt.Sprintf("/auth/realms/%s/protocol/saml/descriptor", DefaultKeycloakRealm) DefaultSpSamlMetadataPath = "/saml/metadata" DefaultApiServerKey = "/var/www/certs/server.key" DefaultApiServerCert = "/var/www/certs/server.cert" DefaultIdentifierFormat = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" DefaultOidcClientId = "token-connect" DefaultOidcClientSecret = "" DefaultOidcClientOpts = gocloak.Client{ ClientID: gocloak.StringP(DefaultOidcClientId), Protocol: gocloak.StringP("openid-connect"), PublicClient: gocloak.BoolP(false), ClientAuthenticatorType: gocloak.StringP("client-secret"), StandardFlowEnabled: gocloak.BoolP(true), DirectAccessGrantsEnabled: gocloak.BoolP(true), Attributes: &map[string]string{ "access.token.lifespan": "7200", }, } DefaultNodeToken = "" LogoutRedirectUrl = "" )
View Source
var ( HostID string Hostname string DataCenterName string DataCenterVersion string DataCenterNumericVersion string DataCenterVip string ListenIp string ListenAddr string ListenPort int AdvertiseIp string AdvertiseAddr string AdvertisePort int MgmtNet string MgmtIP string IsHaEnabled bool IsGpuEnabled bool )
View Source
var ( CurrentRole string Roles = []string{RoleControl, RoleCompute, RoleStorage, RoleControlConverged, RoleModerator, RoleEdgeCore} ControlRole = newControlRole() ComputeRole = newComputeRole() StorageRole = newStorageRole() ControlConvergedRole = newControlConvergeRole() ModeratorRole = newModeratorRole() EdgeCoreRole = newEdgeCoreRole() AllRoles = []*Role{ ControlRole, ComputeRole, StorageRole, ControlConvergedRole, ModeratorRole, EdgeCoreRole, } AllGeneralRoles = []*Role{ ControlRole, ComputeRole, StorageRole, ControlConvergedRole, } ControlRoles = []*Role{ ControlRole, ControlConvergedRole, } ComputeRoles = []*Role{ ComputeRole, ControlConvergedRole, EdgeCoreRole, } )
View Source
var ( Day = 24 * time.Hour LocalTimeZone = "+00:00" LocalTimeZoneSeconds = 0 LocalTimeFixedZone = time.FixedZone("", LocalTimeZoneSeconds) )
View Source
var (
CreateRecordIfNotExist = options.Update().SetUpsert(true)
)
View Source
var (
SerialNumber = ""
)
View Source
var (
V1ApiDocUrl = ""
)
Functions ¶
func CapturePanic ¶
func CapturePanic()
func CheckTuningSpec ¶
func GenNodeToken ¶
func GetEmailRecipients ¶
func GetEmailSenders ¶
func GetLicenseSearcher ¶
func GetLicenseSearcher() bleve.Index
func GetLocalTunings ¶
func GetMacAddr ¶
func GetNodeSearcher ¶
func GetNodeSearcher() bleve.Index
func GetRadosGatewayUrl ¶
func GetRadosGatewayUrl() string
func GetSlackChannels ¶
func GetSystemSerial ¶
func GetTuningSearcher ¶
func GetTuningSearcher() bleve.Index
func GetTuningSpecs ¶
func HostnameNodeMap ¶
func InitLicenseSearchIndex ¶
func InitLicenseSearchIndex() error
func InitNodeSearchIndex ¶
func InitNodeSearchIndex() error
func InitTuningSearchIndex ¶
func InitTuningSearchIndex() error
func IsLocalNode ¶
func IsPageRequired ¶
func RepairCollection ¶
func RepairCollection() string
func SetLocalTuning ¶
func SetLocalTuning(tuning Tuning)
func SetTuningSpec ¶
func SetTuningSpec(name string, spec *TuningSpec)
func SettingsDB ¶
func SettingsDB() string
func SeverityFullName ¶
func SeverityShortName ¶
func ShouldIHandleTheTuning ¶
func SyncRoleNodes ¶
func SyncRoleNodes()
func TimPastRFC3339 ¶
func TimeISO8601Z ¶
func TimeLocalISO8601 ¶
func TimeLocalRFC3339 ¶
func TimeNowRFC3339 ¶
func TimeNowRFC3339() string
func TimeNowRFC3339Z ¶
func TimeNowRFC3339Z() string
func TimePastRFC3339Z ¶
func TimeRFC3339 ¶
func TimeRFC3339Z ¶
func TitlePrefixCollection ¶
func TitlePrefixCollection() string
func TuningCollection ¶
func TuningReqCollection ¶
func TuningReqCollection() string
Types ¶
type Additional ¶
type BlockDevice ¶
type ComputeStatistic ¶
type DataCenter ¶
type DataCenter struct { Id string `json:"id,omitempty" bson:"id"` Name string `json:"name" bson:"name"` Version string `json:"version" bson:"version"` VirtualIp string `json:"virtualIp" bson:"virtualIp"` IsLocal bool `json:"isLocal" bson:"isLocal"` IsHaEnabled bool `json:"isHaEnabled" bson:"isHaEnabled"` UtcTimeZone string `json:"utcTimeZone,omitempty" bson:"utcTimeZone"` Additional `json:"additional,omitempty" bson:"additional"` }
func (*DataCenter) SetDetailsByInitedInfo ¶
func (d *DataCenter) SetDetailsByInitedInfo()
M1 TODO: have to think about if we 1). need to add the Id of datacenter 2). if (1) is true, then what's factor to generate the Id
type DataCenterUsage ¶
type DataCenterUsage struct { Cpu ComputeStatistic `json:"cpu"` Memory SpaceStatistic `json:"memory"` }
type Event ¶
type Event struct { Type string `json:"type"` Severity string `json:"severity"` Id string `json:"id"` Description string `json:"description"` Host string `json:"host"` Category string `json:"category"` Service string `json:"service"` Metadata map[string]any `json:"metadata"` Time string `json:"time"` }
type EventFilter ¶
type EventFilter struct { System SystemFilter `json:"system"` Instance InstanceFilter `json:"instance"` Host HostFilter `json:"host"` }
type Host ¶
type HostFilter ¶
type HostNetworkPacket ¶
type HostNetworkPacket struct { Id string `json:"id"` Name string `json:"name"` Packets float64 `json:"packets"` History []TimePacketsPoint `json:"history"` }
type HostPercentageUsage ¶
type HostPercentageUsage struct { Id string `json:"id"` Name string `json:"name"` UsedPercent float64 `json:"usedPercent"` History []TimeUsedPercent `json:"history"` }
type HostUsage ¶
type HostUsage struct { Cpu ComputeStatistic `json:"cpu"` Memory SpaceStatistic `json:"memory"` }
type InstanceFilter ¶
type Integration ¶
type License ¶
type License struct { Type string `json:"type" yaml:"type" bson:"type"` Hostname string `json:"hostname,omitzero" yaml:"hostname" bson:"hostname"` Hosts []string `json:"hosts,omitempty" yaml:"hosts" bson:"hosts"` Serial string `json:"serial" yaml:"serial" bson:"serial"` Product `json:"product" yaml:"product" bson:"product"` Issue `json:"issue" yaml:"issue" bson:"issue"` Quantity `json:"quantity" yaml:"quantity" bson:"quantity"` ServiceLevelAgreement `json:"serviceLevelAgreement" yaml:"sla" bson:"serviceLevelAgreement"` Expiry `json:"expiry" yaml:"expiry" bson:"expiry"` Status status.License `json:"status" yaml:"status" bson:"status"` }
type ListTuningOptions ¶
type ListTuningOptions struct {
AllNodes bool
}
type MetricRank ¶
type NetworkInterface ¶
type NetworkInterface struct { Label string `json:"label" yaml:"label" bson:"label"` BusIdSlaves string `json:"busIdSlaves" yaml:"busIdSlaves" bson:"busIdSlaves"` Driver string `json:"driver" yaml:"driver" bson:"driver"` State string `json:"state" yaml:"state" bson:"state"` Speed string `json:"speed" yaml:"speed" bson:"speed"` }
type Node ¶
type Node struct { Id string `json:"id" yaml:"id"` SerialNumber string `json:"serialNumber" yaml:"serialNumber"` DataCenter string `json:"dataCenter" yaml:"dataCenter"` Hostname string `json:"hostname" yaml:"hostname"` Role string `json:"role" yaml:"role"` Protocol string `json:"protocol,omitempty" yaml:"protocol,omitempty" bson:"protocol,omitempty"` Address string `json:"address" yaml:"address"` Ip string `json:"ip" yaml:"ip"` ManagementIP string `json:"managementIP" yaml:"managementIP"` License `json:"license" yaml:"license,omitempty" bson:"license,omitempty"` Status string `json:"status" yaml:"status"` CpuSpec string `json:"cpuSpec" yaml:"cpuSpec" bson:"cpuSpec"` NetworkInterfaces []NetworkInterface `json:"networkInterfaces" yaml:"networkInterfaces" bson:"networkInterfaces"` BlockDevices []BlockDevice `json:"blockDevices" yaml:"blockDevices" bson:"blockDevices"` Vcpu ComputeStatistic `json:"vcpu" yaml:"vcpu" bson:"vcpu"` Memory SpaceStatistic `json:"memory" yaml:"memory" bson:"memory"` Storage SpaceStatistic `json:"storage" yaml:"storage" bson:"storage"` UptimeSeconds float64 `json:"uptimeSeconds" yaml:"uptimeSeconds" bson:"uptimeSeconds"` Token string `json:"-" yaml:"-" bson:"-"` Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty" bson:"labels,omitempty"` }
func GetControllerNodes ¶
func GetNodeByHostname ¶
func GetNodesByRole ¶
func GetOneOfControllerNode ¶
func (*Node) GenAuthHeader ¶
func (*Node) GetBearerToken ¶
func (*Node) GetMetricUrl ¶
func (*Node) GetNodeDetailsUrl ¶
func (*Node) GetSupportFileUrl ¶
func (*Node) GetTuningUrl ¶
func (*Node) PatchSupportFileTaskUrl ¶
func (*Node) PatchTriggerTaskUrl ¶
func (*Node) PatchTuningTaskUrl ¶
func (*Node) PatchTuningUrl ¶
type Page ¶
type Page struct { Total int64 `json:"total"` Number int `json:"number"` Size int `json:"size"` TotalItemCount int64 `json:"totalItemCount"` }
func (Page) IsRequired ¶
type RawBlockDevice ¶
type RawLicense ¶
type RawLicense struct { Type string `json:"type" yaml:"type" bson:"type"` Hostname string `json:"hostname" yaml:"hostname" bson:"hostname"` Product `json:"product" yaml:"product" bson:"product"` Quantity `json:"quantity" yaml:"quantity" bson:"quantity"` ServiceLevelAgreement `json:"serviceLevelAgreement" yaml:"sla" bson:"serviceLevelAgreement"` Serial string `json:"serial" yaml:"serial" bson:"serial"` Check int `json:"check" yaml:"check" bson:"check"` IssueBy string `json:"issueby" yaml:"issueby" bson:"issueby"` IssueTo string `json:"issueto" yaml:"issueto" bson:"issueto"` Hardware string `json:"hardware" yaml:"hardware" bson:"hardware"` Expiry string `json:"expiry" yaml:"expiry" bson:"expiry"` Date string `json:"date" yaml:"date" bson:"date"` Days int `json:"days" yaml:"days" bson:"days"` }
type Role ¶
type Role struct { Name string `json:"name" bson:"name"` Hosts []Host `json:"hosts" bson:"hosts"` Nodes []*Node `json:"-"` }
func GetComputeRole ¶
func GetComputeRole() *Role
func GetControlConvergeRole ¶
func GetControlConvergeRole() *Role
func GetControlRole ¶
func GetControlRole() *Role
func GetControlRoles ¶
func GetControlRoles() []*Role
func GetEdgeCoreRole ¶
func GetEdgeCoreRole() *Role
func GetModeratorRole ¶
func GetModeratorRole() *Role
func GetRolesToHandleTuning ¶
func GetStorageRole ¶
func GetStorageRole() *Role
func (*Role) IsNodeEmpty ¶
type Service ¶
type Service struct { Name string `json:"name" bson:"name"` Category string `json:"category" bson:"category"` Status *status.Details `json:"status,omitempty" bson:"status,omitempty"` Modules []Module `json:"modules" bson:"modules"` IsInternalViewOnly bool `json:"-" bson:"isInternalViewOnly"` }
func (Service) CopyModuleEmptyStruct ¶
type ServiceLevelAgreement ¶
type ServiceLevelAgreement struct { Uptime float32 `json:"uptime" yaml:"uptime" bson:"uptime"` Period string `json:"period" yaml:"period" bson:"period"` MeanTimeBetweenFailure string `json:"meanTimeBetweenFailure" yaml:"meanTimeBetweenFailure" bson:"meanTimeBetweenFailure"` MeanTimeToRecovery string `json:"meanTimeToRecovery" yaml:"meanTimeToRecovery" bson:"meanTimeToRecovery"` }
type SpaceStatistic ¶
type StorageIopsSeries ¶
type StorageIopsSeries struct { Unit string `json:"unit"` Read []TimeOpsPoint `json:"read"` Write []TimeOpsPoint `json:"write"` }
type StorageLatencySeries ¶
type StorageLatencySeries struct { Read []TimeMillisecondPoint `json:"read"` Write []TimeMillisecondPoint `json:"write"` }
type StorageTimeSeries ¶
type SystemFilter ¶
type TimeBytesPoint ¶
type TimeMillisecondPoint ¶
type TimeOpsPoint ¶
type TimePacketsPoint ¶
type TimeUsedPercent ¶
type TitlePrefix ¶
type TitlePrefix struct {
Value string `json:"value" bson:"value"`
}
type TrafficStatistic ¶
type Tuning ¶
type Tuning struct { Id string `json:"id,omitempty" yaml:"-" bson:"id"` Name string `json:"name" yaml:"name" bson:"name"` Value any `json:"value" yaml:"value" bson:"value"` Description string `json:"description" yaml:"-" bson:"-"` Enabled bool `json:"enabled" yaml:"enabled" bson:"enabled"` IsModified bool `json:"isModified" yaml:"-" bson:"-"` Limitation TuningLimitation `json:"limitation" yaml:"-" bson:"-"` *Node `json:"node,omitempty" yaml:"-" bson:"-"` Hosts []Host `json:"hosts" yaml:"-" bson:"-"` Roles []Role `json:"roles,omitempty" yaml:"-" bson:"-"` Status *status.Tuning `json:"status,omitempty" yaml:"-" bson:"status,omitempty"` }
func GetLocalTuning ¶
func ListLocalTunings ¶
func ListLocalTunings() []Tuning
func (*Tuning) CopyAndOverrideHost ¶
func (*Tuning) GenTaskUpdate ¶
func (*Tuning) GenerateId ¶
func (*Tuning) IncludeHost ¶
func (*Tuning) IncludeHosts ¶
func (*Tuning) InitOkStatus ¶
func (t *Tuning) InitOkStatus()
func (*Tuning) InitResetStatus ¶
func (t *Tuning) InitResetStatus()
func (*Tuning) InitStatus ¶
func (*Tuning) InitUpdateStatus ¶
func (t *Tuning) InitUpdateStatus()
func (*Tuning) SetCompleted ¶
func (t *Tuning) SetCompleted()
func (*Tuning) SetDesired ¶
func (*Tuning) SetNodeInfo ¶
func (*Tuning) SetUpdated ¶
func (t *Tuning) SetUpdated()
func (*Tuning) SetUpdating ¶
func (t *Tuning) SetUpdating()
type TuningLimitation ¶
type TuningPolicy ¶
type TuningPolicy struct { Name string `json:"name" yaml:"name"` Version string `json:"version" yaml:"version"` Enabled bool `json:"enabled" yaml:"enabled"` Tunings []Tuning `json:"tunings" yaml:"tunings"` }
func (*TuningPolicy) AppendTuning ¶
func (t *TuningPolicy) AppendTuning(tuning Tuning)
func (*TuningPolicy) AppendTunings ¶
func (t *TuningPolicy) AppendTunings(tunings []Tuning)
func (*TuningPolicy) DeleteTuning ¶
func (t *TuningPolicy) DeleteTuning(name string)
func (*TuningPolicy) HasMatchedTuning ¶
func (t *TuningPolicy) HasMatchedTuning(tuning Tuning) bool
func (*TuningPolicy) UpdateOrAppendTuning ¶
func (t *TuningPolicy) UpdateOrAppendTuning(tuning Tuning)
type TuningReset ¶
type TuningReset struct {
Hosts []string `json:"hosts"`
}
type TuningSpec ¶
type TuningSpec struct { Name string `json:"name"` Description string `json:"description"` Limitation TuningLimitation `json:"limitation"` Roles []*Role `json:"roles"` Selector `json:"-"` }
func GetTuningSpec ¶
func GetTuningSpec(name string) (*TuningSpec, error)
func ListTuningSpecs ¶
func ListTuningSpecs() []TuningSpec
func (*TuningSpec) IsInLimitedRange ¶
func (t *TuningSpec) IsInLimitedRange(value int) bool
type TuningToggle ¶
type TuningUpdate ¶
type VmDiskIopsUsage ¶
type VmDiskIopsUsage struct { Id string `json:"id"` Name string `json:"name"` Device string `json:"device,omitempty"` Ops float64 `json:"ops"` History []TimeOpsPoint `json:"history"` }
type VmMetricsUsage ¶
type VmMetricsUsage struct { Id string `json:"id"` Name string `json:"name"` Device string `json:"device,omitempty"` UsedPercent float64 `json:"usedPercent"` History []TimeUsedPercent `json:"history"` }
type VmNetworkTrafficUsage ¶
type VmNetworkTrafficUsage struct { Id string `json:"id"` Name string `json:"name"` Device string `json:"device,omitempty"` Packets float64 `json:"packets"` History []TimePacketsPoint `json:"history"` }
type VmPercentageUsage ¶
type VmPercentageUsage struct { Id string `json:"id"` Name string `json:"name"` UsedPercent float64 `json:"usedPercent"` History []TimeUsedPercent `json:"history"` }
type VmUsage ¶
type VmUsage struct { Vcpu ComputeStatistic `json:"vcpu"` Memory SpaceStatistic `json:"memory"` Storage SpaceStatistic `json:"storage"` }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.