 Documentation
      ¶
      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 GetLocalTunings() *sync.Map
- func GetMacAddr(interfaceName string) (string, error)
- func GetSlackChannels() ([]slack.Channel, error)
- func GetTuningSearcher() bleve.Index
- func GetTuningSpecs() *sync.Map
- func HealthDB() string
- 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 ComputeStatistic
- type DataCenter
- type DataCenterUsage
- type Event
- type EventFilter
- type EventStat
- type Expiry
- type Feature
- 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 Node
- func (n *Node) GenAuthHeader() (string, string)
- func (n *Node) GetBearerToken() string
- func (n *Node) GetMetricUrl(metric, view string) string
- func (n *Node) GetTuningUrl() string
- func (n *Node) IsLocal() bool
- 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 RawLicense
- type Role
- func GetComputeRole() *Role
- func GetControlConvergeRole() *Role
- func GetControlRole() *Role
- func GetControlRoles() []*Role
- func GetEdgeCoreRole() *Role
- func GetModeratorRole() *Role
- func GetNetworkRole() *Role
- func GetRolesToHandleTuning(tuningName string) ([]*Role, bool)
- func GetStorageRole() *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) InitHosts(hosts []string)
- func (t *Tuning) InitResetStatus()
- func (t *Tuning) InitStatus(current, desired string)
- func (t *Tuning) InitUpdateStatus()
- 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" RoleNetwork = "network" 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 (
	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 (
	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 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, RoleNetwork, RoleControlConverged, RoleModerator, RoleEdgeCore} ControlRole = newControlRole() ComputeRole = newComputeRole() StorageRole = newStorageRole() NetworkRole = newNetworkRole() ControlConvergedRole = newControlConvergeRole() ModeratorRole = newModeratorRole() EdgeCoreRole = newEdgeCoreRole() AllRoles = []*Role{ ControlRole, ComputeRole, StorageRole, NetworkRole, ControlConvergedRole, ModeratorRole, EdgeCoreRole, } AllGeneralRoles = []*Role{ ControlRole, ComputeRole, StorageRole, NetworkRole, ControlConvergedRole, } ControlRoles = []*Role{ ControlRole, ControlConvergedRole, } ComputeRoles = []*Role{ ComputeRole, ControlConvergedRole, EdgeCoreRole, } )
      View Source
      
  
    var ( LocalTimeZone = "+00:00" LocalTimeZoneSeconds = 0 LocalTimeFixedZone = time.FixedZone("", LocalTimeZoneSeconds) )
      View Source
      
  
    var (
	CreateRecordIfNotExist = options.Update().SetUpsert(true)
)
    
      View Source
      
  
var (
	V1ApiDocUrl = ""
)
    Functions ¶
func CapturePanic ¶
func CapturePanic()
func CheckTuningSpec ¶
func GenNodeToken ¶
func GetEmailRecipients ¶
func GetEmailSenders ¶
func GetLocalTunings ¶
func GetMacAddr ¶
func GetSlackChannels ¶
func GetTuningSearcher ¶
func GetTuningSearcher() bleve.Index
func GetTuningSpecs ¶
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 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]interface{} `json:"metadata"`
	Time        string                 `json:"time"`
}
    type EventFilter ¶
type EventFilter struct {
	System   SystemFilter   `json:"system"`
	Instance InstanceFilter `json:"instance"`
	Host     HostFilter     `json:"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" yaml:"hostname" bson:"hostname"`
	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"`
}
    type ListTuningOptions ¶
type ListTuningOptions struct {
	AllNodes bool
}
    type MetricRank ¶
type Node ¶
type Node struct {
	Id            string `json:"id" yaml:"id"`
	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,omitempty" yaml:"license,omitempty" bson:"license,omitempty"`
	Status        string            `json:"status" yaml:"status"`
	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) GetTuningUrl ¶
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 RawLicense ¶
type RawLicense struct {
	Type     string `json:"type" yaml:"type" bson:"type"`
	Hostname string `json:"hostname" yaml:"hostname" bson:"hostname"`
	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 GetNetworkRole ¶
func GetNetworkRole() *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) 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
      ¶
      Source Files
      ¶
    
   Click to show internal directories. 
   Click to hide internal directories.