Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HTTPConfig ¶
type Service ¶
type Service struct {
// Unique ID for entity
ID uint64 `gorm:"primary_key;auto_increment" json:"id"`
// Human-readable service name
Name string `gorm:"size:255;not null" json:"name"`
// Human-readable service description
Description string `gorm:"size:255" json:"description"`
PublicDescription string `gorm:"size:255" json:"publicDescription"`
Public *bool `gorm:"default:false" json:"public"`
// Host to check, for example 192.168.1.44 or https://google.com
Host string `gorm:"size:255;not null" json:"host"`
// Type for check, for now is TCP or HTTP or something else
Type string `gorm:"size:255;not null" json:"type"`
Config *ServiceTypeCheckConfig `gorm:"serializer:json;column:type_config" json:"typeConfig"`
Statuses []Status `gorm:"foreignkey:ServiceID" json:"statuses"`
}
func (Service) CalculateUptimePercent ¶
func (Service) CountLastStatuses ¶
func (s Service) CountLastStatuses(status StatusCode) uint
type ServiceTypeCheckConfig ¶
type ServiceTypeCheckConfig struct {
Version string `json:"version"`
HTTPConfig *HTTPConfig `json:"httpConfig"`
// MaxFails - max "ping" fails, after with the service marked as unavailable
MaxFails uint8 `json:"maxFails"`
// Interval - interval between "ping" in seconds
Interval uint64 `json:"interval"`
// Timeout - interval after which the task will be canceled
Timeout uint64 `json:"timeout"`
}
type Status ¶
type Status struct {
ID uint64 `gorm:"primary_key;auto_increment" json:"-"`
ServiceID uint64 `json:"-"`
Status StatusCode `gorm:"size:255;not null" json:"status"`
Description *string `gorm:"size:255" json:"description"`
CreatedAt time.Time `json:"createdAt"`
ResponseTime uint64 `json:"responseTime"`
}
type StatusCode ¶
type StatusCode string
const ( StatusOK StatusCode = "ok" // Means - response ok, service is alive StatusFailed StatusCode = "failed" // Means - response failed, all tries failed, service down StatusWarn StatusCode = "warn" // Means - response failed after N tries and still watched StatusUncheck StatusCode = "uncheck" )
Click to show internal directories.
Click to hide internal directories.