models

package
v1.0.54 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2023 License: Apache-2.0 Imports: 17 Imported by: 40

Documentation

Index

Constants

View Source
const (
	StatusRunning  = "RUNNING"
	StatusFinished = "FINISHED"
)
View Source
const TimeFormat = "2006-01-02T15:04:05"

Variables

This section is empty.

Functions

This section is empty.

Types

type Canary added in v1.0.15

type Canary struct {
	ID        uuid.UUID `gorm:"default:generate_ulid()"`
	Spec      types.JSON
	Labels    types.JSONStringMap
	Source    string
	Name      string
	Namespace string
	Checks    types.JSONStringMap `gorm:"-"`
	Schedule  string
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time `json:"deleted_at,omitempty" time_format:"postgres_timestamp"`
}

func (Canary) GetCheckID added in v1.0.15

func (c Canary) GetCheckID(checkName string) string

func (Canary) TableName added in v1.0.21

func (c Canary) TableName() string

type Check added in v1.0.15

type Check struct {
	ID                 uuid.UUID           `json:"id" gorm:"default:generate_ulid()"`
	CanaryID           uuid.UUID           `json:"canary_id"`
	Spec               types.JSON          `json:"-"`
	Type               string              `json:"type"`
	Name               string              `json:"name"`
	CanaryName         string              `json:"canary_name" gorm:"-"`
	Namespace          string              `json:"namespace"  gorm:"-"`
	Labels             types.JSONStringMap `json:"labels" gorm:"type:jsonstringmap"`
	Description        string              `json:"description,omitempty"`
	Status             string              `json:"status,omitempty"`
	Uptime             Uptime              `json:"uptime"  gorm:"-"`
	Latency            Latency             `json:"latency"  gorm:"-"`
	Statuses           []CheckStatus       `json:"checkStatuses"  gorm:"-"`
	Owner              string              `json:"owner,omitempty"`
	Severity           string              `json:"severity,omitempty"`
	Icon               string              `json:"icon,omitempty"`
	DisplayType        string              `json:"display_type,omitempty"  gorm:"-"`
	LastRuntime        *LocalTime          `json:"last_runtime,omitempty"`
	NextRuntime        *time.Time          `json:"next_runtime,omitempty"`
	LastTransitionTime *LocalTime          `json:"last_transition_time,omitempty"`
	CreatedAt          *LocalTime          `json:"created_at,omitempty"`
	UpdatedAt          *LocalTime          `json:"updated_at,omitempty"`
	DeletedAt          *LocalTime          `json:"deleted_at,omitempty"`
	SilencedAt         *LocalTime          `json:"silenced_at,omitempty"`
}

func (Check) GetDescription added in v1.0.15

func (c Check) GetDescription() string

func (Check) ToString added in v1.0.15

func (c Check) ToString() string

type CheckStatus added in v1.0.15

type CheckStatus struct {
	CheckID   uuid.UUID `json:"check_id"`
	Status    bool      `json:"status"`
	Invalid   bool      `json:"invalid,omitempty"`
	Time      string    `json:"time"`
	Duration  int       `json:"duration"`
	Message   string    `json:"message,omitempty"`
	Error     string    `json:"error,omitempty"`
	Detail    any       `json:"-" gorm:"-"`
	CreatedAt time.Time `json:"created_at,omitempty"`
}

func (CheckStatus) GetTime added in v1.0.15

func (s CheckStatus) GetTime() (time.Time, error)

func (CheckStatus) TableName added in v1.0.21

func (CheckStatus) TableName() string

type CheckStatusAggregate1d added in v1.0.44

type CheckStatusAggregate1d struct {
	CheckID   string    `gorm:"column:check_id"`
	CreatedAt time.Time `gorm:"column:created_at"`
	Duration  int       `gorm:"column:duration"`
	Total     int       `gorm:"column:total"`
	Passed    int       `gorm:"column:passed"`
	Failed    int       `gorm:"column:failed"`
}

CheckStatusAggregate1d represents the `check_statuses_1d` table

func (CheckStatusAggregate1d) TableName added in v1.0.44

func (CheckStatusAggregate1d) TableName() string

type CheckStatusAggregate1h added in v1.0.44

type CheckStatusAggregate1h struct {
	CheckID   string    `gorm:"column:check_id"`
	CreatedAt time.Time `gorm:"column:created_at"`
	Duration  int       `gorm:"column:duration"`
	Total     int       `gorm:"column:total"`
	Passed    int       `gorm:"column:passed"`
	Failed    int       `gorm:"column:failed"`
}

CheckStatusAggregate1h represents the `check_statuses_1h` table

func (CheckStatusAggregate1h) TableName added in v1.0.44

func (CheckStatusAggregate1h) TableName() string

type Checks added in v1.0.15

type Checks []*Check

func (Checks) Find added in v1.0.15

func (c Checks) Find(key string) *Check

func (Checks) Len added in v1.0.15

func (c Checks) Len() int

func (Checks) Less added in v1.0.15

func (c Checks) Less(i, j int) bool

func (Checks) Swap added in v1.0.15

func (c Checks) Swap(i, j int)

type Component added in v1.0.15

type Component struct {
	ID               uuid.UUID           `json:"id,omitempty" gorm:"default:generate_ulid()"` //nolint
	SystemTemplateID *uuid.UUID          `json:"system_template_id,omitempty"`
	ExternalId       string              `json:"external_id,omitempty"` //nolint
	ParentId         *uuid.UUID          `json:"parent_id,omitempty"`   //nolint
	Name             string              `json:"name,omitempty"`
	Text             string              `json:"text,omitempty"`
	TopologyType     string              `json:"topology_type,omitempty"`
	Namespace        string              `json:"namespace,omitempty"`
	Labels           types.JSONStringMap `json:"labels,omitempty"`
	Hidden           bool                `json:"hidden,omitempty"`
	Silenced         bool                `json:"silenced,omitempty"`
	Status           ComponentStatus     `json:"status,omitempty"`
	Description      string              `json:"description,omitempty"`
	Lifecycle        string              `json:"lifecycle,omitempty"`
	LogSelectors     types.LogSelectors  `json:"logs,omitempty" gorm:"column:log_selectors"`
	Tooltip          string              `json:"tooltip,omitempty"`
	StatusReason     string              `json:"statusReason,omitempty"`
	Schedule         string              `json:"schedule,omitempty"`
	Icon             string              `json:"icon,omitempty"`
	Type             string              `json:"type,omitempty"`
	Owner            string              `json:"owner,omitempty"`
	Selectors        ResourceSelectors   `json:"selectors,omitempty" gorm:"resourceSelectors" swaggerignore:"true"`
	Configs          types.JSON          `json:"configs,omitempty"`
	Properties       Properties          `json:"properties,omitempty" gorm:"type:properties"`
	Path             string              `json:"path,omitempty"`
	Summary          Summary             `json:"summary,omitempty" gorm:"type:summary"`
	IsLeaf           bool                `json:"is_leaf"`
	CostPerMinute    float64             `json:"cost_per_minute,omitempty" gorm:"column:cost_per_minute"`
	CostTotal1d      float64             `json:"cost_total_1d,omitempty" gorm:"column:cost_total_1d"`
	CostTotal7d      float64             `json:"cost_total_7d,omitempty" gorm:"column:cost_total_7d"`
	CostTotal30d     float64             `json:"cost_total_30d,omitempty" gorm:"column:cost_total_30d"`
	CreatedBy        *uuid.UUID          `json:"created_by,omitempty"`
	CreatedAt        LocalTime           `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
	UpdatedAt        LocalTime           `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
	DeletedAt        *time.Time          `json:"deleted_at,omitempty" time_format:"postgres_timestamp" swaggerignore:"true"`

	// Auxiliary fields
	Checks         Checks     `json:"checks,omitempty" gorm:"-"`
	Components     Components `json:"components,omitempty" gorm:"-"`
	Order          int        `json:"order,omitempty"  gorm:"-"`
	SelectorID     string     `json:"-" gorm:"-"`
	RelationshipID *uuid.UUID `json:"relationship_id,omitempty" gorm:"-"`
}

func (Component) GetAsEnvironment added in v1.0.49

func (component Component) GetAsEnvironment() map[string]interface{}

func (*Component) GetStatus added in v1.0.24

func (c *Component) GetStatus() ComponentStatus

func (*Component) Summarize added in v1.0.24

func (c *Component) Summarize() Summary

type ComponentRelationship added in v1.0.15

type ComponentRelationship struct {
	ComponentID      uuid.UUID  `gorm:"column:component_id" json:"component_id,omitempty"`
	RelationshipID   uuid.UUID  `gorm:"column:relationship_id" json:"relationship_id,omitempty"`
	SelectorID       string     `gorm:"column:selector_id" json:"selector_id,omitempty"`
	RelationshipPath string     `gorm:"column:relationship_path" json:"relationship_path,omitempty"`
	CreatedAt        time.Time  `gorm:"column:created_at" json:"created_at,omitempty"`
	UpdatedAt        time.Time  `gorm:"column:updated_at" json:"updated_at,omitempty"`
	DeletedAt        *time.Time `gorm:"column:deleted_at" json:"deleted_at,omitempty"`
}

func (ComponentRelationship) TableName added in v1.0.15

func (cr ComponentRelationship) TableName() string

type ComponentStatus added in v1.0.15

type ComponentStatus string
const (
	ComponentStatusHealthy   ComponentStatus = "healthy"
	ComponentStatusUnhealthy ComponentStatus = "unhealthy"
	ComponentStatusWarning   ComponentStatus = "warning"
	ComponentStatusError     ComponentStatus = "error"
	ComponentStatusInfo      ComponentStatus = "info"
)

type Components added in v1.0.15

type Components []*Component

func (Components) Map added in v1.0.25

func (components Components) Map(fn func(c *Component))

type ConfigAnalysis added in v1.0.5

type ConfigAnalysis struct {
	ID            uuid.UUID           `gorm:"primaryKey;unique_index;not null;column:id" json:"id"`
	ExternalID    string              `gorm:"-"`
	ExternalType  string              `gorm:"-"`
	ConfigID      uuid.UUID           `gorm:"column:config_id;default:''" json:"config_id"`
	Analyzer      string              `gorm:"column:analyzer" json:"analyzer" faker:"oneof: ec2-instance-no-public-ip, eks-endpoint-no-public-access"`
	Message       string              `gorm:"column:message" json:"message"`
	Summary       string              `gorm:"column:summary;default:null" json:"summary,omitempty"`
	Status        string              `gorm:"column:status;default:null" json:"status,omitempty" faker:"oneof: open, resolved, silenced"`
	Severity      string              `gorm:"column:severity" json:"severity" faker:"oneof: critical, high, medium, low, info"`
	AnalysisType  string              `gorm:"column:analysis_type" json:"change_type" faker:"oneof: availability, compliance, cost, security, performance"`
	Analysis      types.JSONStringMap `gorm:"column:analysis" json:"analysis,omitempty"`
	Source        string              `gorm:"column:source" json:"source,omitempty"`
	FirstObserved *time.Time          `gorm:"column:first_observed;<-:false" json:"first_observed"`
	LastObserved  *time.Time          `gorm:"column:last_observed" json:"last_observed"`
}

func (ConfigAnalysis) String added in v1.0.5

func (a ConfigAnalysis) String() string

func (ConfigAnalysis) TableName added in v1.0.5

func (a ConfigAnalysis) TableName() string

type ConfigChange added in v1.0.5

type ConfigChange struct {
	ExternalID       string     `gorm:"-"`
	ExternalType     string     `gorm:"-"`
	ExternalChangeId string     `gorm:"column:external_change_id" json:"external_change_id"`
	ID               string     `gorm:"primaryKey;unique_index;not null;column:id" json:"id"`
	ConfigID         string     `gorm:"column:config_id;default:''" json:"config_id"`
	ChangeType       string     `gorm:"column:change_type" json:"change_type" faker:"oneof:  RunInstances, diff" `
	Severity         string     `gorm:"column:severity" json:"severity"  faker:"oneof: critical, high, medium, low, info"`
	Source           string     `gorm:"column:source" json:"source"`
	Summary          string     `gorm:"column:summary;default:null" json:"summary,omitempty"`
	Patches          string     `gorm:"column:patches;default:null" json:"patches,omitempty"`
	Details          types.JSON `gorm:"column:details" json:"details,omitempty"`
	CreatedAt        *time.Time `gorm:"column:created_at" json:"created_at"`
}

ConfigChange represents the config change database table

func (ConfigChange) GetExternalID added in v1.0.5

func (c ConfigChange) GetExternalID() ExternalID

func (ConfigChange) String added in v1.0.5

func (c ConfigChange) String() string

func (ConfigChange) TableName added in v1.0.5

func (c ConfigChange) TableName() string

type ConfigComponentRelationship added in v1.0.15

type ConfigComponentRelationship struct {
	ComponentID uuid.UUID  `gorm:"column:component_id" json:"component_id,omitempty"`
	ConfigID    uuid.UUID  `gorm:"column:config_id" json:"config_id,omitempty"`
	SelectorID  string     `gorm:"column:selector_id" json:"selector_id,omitempty"`
	CreatedAt   time.Time  `gorm:"column:created_at" json:"created_at,omitempty"`
	UpdatedAt   time.Time  `gorm:"column:updated_at" json:"updated_at,omitempty"`
	DeletedAt   *time.Time `gorm:"column:deleted_at" json:"deleted_at,omitempty"`
}

func (ConfigComponentRelationship) TableName added in v1.0.15

func (cr ConfigComponentRelationship) TableName() string

type ConfigItem added in v1.0.5

type ConfigItem struct {
	ID            uuid.UUID            `gorm:"primaryKey;unique_index;not null;column:id" json:"id" faker:"uuid_hyphenated"  `
	ScraperID     *string              `gorm:"column:scraper_id;default:null" json:"scraper_id,omitempty"  `
	ConfigType    string               `gorm:"column:config_type;default:''" json:"config_type" faker:"oneof:  File, EC2Instance, KubernetesPod" `
	ExternalID    pq.StringArray       `gorm:"column:external_id;type:[]text" json:"external_id,omitempty" faker:"external_id"  `
	ExternalType  *string              `gorm:"column:external_type;default:null" json:"external_type,omitempty" faker:"oneof:  File, EC2Instance, KubernetesPod"  `
	Name          *string              `gorm:"column:name;default:null" json:"name,omitempty" faker:"name"  `
	Namespace     *string              `gorm:"column:namespace;default:null" json:"namespace,omitempty"  faker:"oneof: default, demo, prod, staging" `
	Description   *string              `gorm:"column:description;default:null" json:"description,omitempty"  `
	Config        *string              `gorm:"column:config;default:null" json:"config,omitempty"  `
	Source        *string              `gorm:"column:source;default:null" json:"source,omitempty"  `
	ParentID      *uuid.UUID           `gorm:"column:parent_id;default:null" json:"parent_id,omitempty" faker:"-"`
	Path          string               `gorm:"column:path;default:null" json:"path,omitempty" faker:"-"`
	CostPerMinute float64              `gorm:"column:cost_per_minute;default:null" json:"cost_per_minute,omitempty"`
	CostTotal1d   float64              `gorm:"column:cost_total_1d;default:null" json:"cost_total_1d,omitempty"`
	CostTotal7d   float64              `gorm:"column:cost_total_7d;default:null" json:"cost_total_7d,omitempty"`
	CostTotal30d  float64              `gorm:"column:cost_total_30d;default:null" json:"cost_total_30d,omitempty"`
	Tags          *types.JSONStringMap `gorm:"column:tags;default:null" json:"tags,omitempty"   faker:"tags"`
	CreatedAt     time.Time            `gorm:"column:created_at" json:"created_at"   `
	UpdatedAt     time.Time            `gorm:"column:updated_at" json:"updated_at"   `
}

ConfigItem represents the config item database table

func (ConfigItem) ConfigJSONStringMap added in v1.0.5

func (ci ConfigItem) ConfigJSONStringMap() (map[string]any, error)

func (*ConfigItem) SetParent added in v1.0.5

func (ci *ConfigItem) SetParent(parent *ConfigItem)

func (ConfigItem) String added in v1.0.5

func (ci ConfigItem) String() string

func (ConfigItem) TableName added in v1.0.5

func (c ConfigItem) TableName() string

type ConfigRelationship added in v1.0.5

type ConfigRelationship struct {
	ConfigID   string     `gorm:"column:config_id" json:"config_id"`
	RelatedID  string     `gorm:"column:related_id" json:"related_id"`
	Relation   string     `gorm:"column:relation" json:"relation"`
	SelectorID string     `gorm:"selector_id" json:"selector_id"`
	CreatedAt  time.Time  `gorm:"column:created_at" json:"created_at,omitempty"`
	UpdatedAt  time.Time  `gorm:"column:updated_at" json:"updated_at,omitempty"`
	DeletedAt  *time.Time `gorm:"column:deleted_at" json:"deleted_at,omitempty"`
}

func (ConfigRelationship) TableName added in v1.0.5

func (cr ConfigRelationship) TableName() string

type ConfigScraper added in v1.0.53

type ConfigScraper struct {
	ID          uuid.UUID  `gorm:"primaryKey;unique_index;not null;column:id" json:"id"`
	Name        string     `json:"name"`
	Description string     `json:"description,omitempty"`
	Spec        string     `json:"spec,omitempty"`
	CreatedBy   *uuid.UUID `json:"created_by,omitempty"`
	CreatedAt   time.Time  `json:"created_at"`
	UpdatedAt   time.Time  `json:"updated_at"`
}

ConfigScraper represents the config_scrapers database table

func (*ConfigScraper) BeforeCreate added in v1.0.53

func (cs *ConfigScraper) BeforeCreate(tx *gorm.DB) error

BeforeCreate GORM hook

func (ConfigScraper) TableName added in v1.0.53

func (c ConfigScraper) TableName() string

type Connection added in v1.0.45

type Connection struct {
	ID          uuid.UUID           `gorm:"primaryKey;unique_index;not null;column:id" json:"id" faker:"uuid_hyphenated"  `
	Name        string              `gorm:"column:name" json:"name" faker:"name"  `
	Type        string              `gorm:"column:type" json:"type" faker:"oneof:  postgres, mysql, aws, gcp, http" `
	URL         string              `gorm:"column:url" json:"url,omitempty" faker:"url" template:"true"`
	Username    string              `gorm:"column:username" json:"username,omitempty" faker:"username"  `
	Password    string              `gorm:"column:password" json:"password,omitempty" faker:"password"  `
	Properties  types.JSONStringMap `gorm:"column:properties" json:"properties,omitempty" faker:"-"  `
	Certificate string              `gorm:"column:certificate" json:"certificate,omitempty" faker:"-"  `
	InsecureTLS bool                `gorm:"column:insecure_tls;default:false" json:"insecure_tls,omitempty" faker:"-"  `
	CreatedAt   time.Time           `gorm:"column:created_at;default:now()" json:"created_at,omitempty" faker:"-"  `
	UpdatedAt   time.Time           `gorm:"column:updated_at;default:now()" json:"updated_at,omitempty" faker:"-"  `
	CreatedBy   *uuid.UUID          `gorm:"column:created_by" json:"created_by,omitempty" faker:"-"  `
}

func (Connection) String added in v1.0.48

func (c Connection) String() string

type Evidence added in v1.0.24

type Evidence struct {
	ID               uuid.UUID     `json:"id"`
	HypothesisID     uuid.UUID     `json:"hypothesis_id"`
	ConfigID         *uuid.UUID    `json:"config_id"`
	ConfigChangeID   *uuid.UUID    `json:"config_change_id"`
	ConfigAnalysisID *uuid.UUID    `json:"config_analysis_id"`
	ComponentID      *uuid.UUID    `json:"component_id"`
	CheckID          *uuid.UUID    `json:"check_id"`
	Description      string        `json:"description"`
	DefinitionOfDone bool          `json:"definition_of_done"`
	Done             bool          `json:"done"`
	Factor           bool          `json:"factor"`
	Mitigator        bool          `json:"mitigator"`
	CreatedBy        uuid.UUID     `json:"created_by"`
	Type             string        `json:"type"`
	Script           string        `json:"script"`
	ScriptResult     string        `json:"script_result"`
	Evidence         types.JSONMap `json:"evidence"`
	Properties       types.JSONMap `json:"properties"`
	CreatedAt        time.Time     `json:"created_at"`
	UpdatedAt        time.Time     `json:"updated_at"`
}

type EvidenceCanaryCheck added in v1.0.24

type EvidenceCanaryCheck struct {
}

type EvidenceComponent added in v1.0.24

type EvidenceComponent struct {
}

type EvidenceConfig added in v1.0.24

type EvidenceConfig struct {
	ID            uuid.UUID           `json:"id"`
	Lines         []string            `json:"lines"`
	SelectedLines types.JSONStringMap `json:"selected_lines"`
}

type EvidenceConfigAnalysis added in v1.0.24

type EvidenceConfigAnalysis struct {
	ID uuid.UUID `json:"id"`
}

type EvidenceConfigChange added in v1.0.24

type EvidenceConfigChange struct {
	ID uuid.UUID `json:"id"`
}

type EvidenceLogs added in v1.0.24

type EvidenceLogs struct {
	Lines []LogLine `json:"lines"`
}

type ExternalID added in v1.0.5

type ExternalID struct {
	ExternalType string
	ExternalID   []string
}

func (ExternalID) CacheKey added in v1.0.5

func (e ExternalID) CacheKey() string

func (ExternalID) IsEmpty added in v1.0.5

func (e ExternalID) IsEmpty() bool

func (ExternalID) String added in v1.0.5

func (e ExternalID) String() string

func (ExternalID) WhereClause added in v1.0.5

func (e ExternalID) WhereClause(db *gorm.DB) *gorm.DB

type Hypothesis added in v1.0.24

type Hypothesis struct {
	ID         uuid.UUID  `json:"id,omitempty" gorm:"default:generate_ulid()"`
	IncidentID uuid.UUID  `json:"incident_id,omitempty"`
	Type       string     `json:"type,omitempty"`
	Title      string     `json:"title,omitempty"`
	Status     string     `json:"status,omitempty"`
	ParentID   *uuid.UUID `json:"parent_id,omitempty"`
	TeamID     *uuid.UUID `json:"team_id,omitempty"`
	Owner      *uuid.UUID `json:"owner,omitempty"`
	CreatedAt  *time.Time `json:"created_at,omitempty"`
	UpdatedAt  *time.Time `json:"updated_at,omitempty"`
	CreatedBy  uuid.UUID  `json:"created_by,omitempty"`
}

func (Hypothesis) TableName added in v1.0.24

func (Hypothesis) TableName() string

type Incident added in v1.0.24

type Incident struct {
	ID             uuid.UUID      `json:"id,omitempty" gorm:"default:generate_ulid()"`
	Title          string         `json:"title,omitempty"`
	Description    string         `json:"description,omitempty"`
	Type           IncidentType   `json:"type,omitempty"`
	Status         IncidentStatus `json:"status,omitempty"`
	Severity       string         `json:"severity,omitempty"`
	CreatedAt      *time.Time     `json:"created_at,omitempty"`
	UpdatedAt      *time.Time     `json:"updated_at,omitempty"`
	Acknowledged   *time.Time     `json:"acknowledged,omitempty"`
	Resolved       *time.Time     `json:"resolved,omitempty"`
	Closed         *time.Time     `json:"closed,omitempty"`
	CreatedBy      uuid.UUID      `json:"created_by,omitempty"`
	IncidentRuleID *uuid.UUID     `json:"incident_rule_id,omitempty"`
	CommanderID    *uuid.UUID     `json:"commander_id,omitempty"`
	CommunicatorID *uuid.UUID     `json:"communicator_id,omitempty"`
}

type IncidentStatus added in v1.0.24

type IncidentStatus string
var (
	IncidentStatusOpen      IncidentStatus = "open"
	IncidentStatusClosed    IncidentStatus = "closed"
	IncidentStatusMitigated IncidentStatus = "mitigated"
	IncidentStatusResolved  IncidentStatus = "resolved"
	IncidentStatusCancelled IncidentStatus = "cancelled"
)

type IncidentType added in v1.0.24

type IncidentType string
var (
	IncidentTypeAvailability  IncidentType = "availability"
	IncidentTypeCost          IncidentType = "cost"
	IncidentTypePerformance   IncidentType = "performance"
	IncidentTypeSecurity      IncidentType = "security"
	IncidentTypeTechnicalDebt IncidentType = "technical_debt"
	IncidentTypeCompliance    IncidentType = "compliance"
	IncidentTypeIntegration   IncidentType = "integration"
)

type JobHistory

type JobHistory struct {
	ID             uuid.UUID `gorm:"default:generate_ulid()"`
	Name           string
	SuccessCount   int
	ErrorCount     int
	Hostname       string
	DurationMillis int64
	ResourceType   string
	ResourceID     string
	Details        types.JSONMap
	Status         string
	TimeStart      time.Time
	TimeEnd        *time.Time
	Errors         []string `gorm:"-"`
}

func NewJobHistory added in v1.0.4

func NewJobHistory(name, resourceType, resourceID string) *JobHistory

func (*JobHistory) AddError

func (h *JobHistory) AddError(err string) *JobHistory

func (*JobHistory) End

func (h *JobHistory) End() *JobHistory

func (*JobHistory) IncrSuccess

func (h *JobHistory) IncrSuccess() *JobHistory

func (*JobHistory) Start

func (h *JobHistory) Start() *JobHistory

type Latency added in v1.0.15

type Latency struct {
	Percentile99 float64 `json:"p99,omitempty" db:"p99"`
	Percentile97 float64 `json:"p97,omitempty" db:"p97"`
	Percentile95 float64 `json:"p95,omitempty" db:"p95"`
	Rolling1H    float64 `json:"rolling1h"`
}
type Link struct {
	// e.g. documentation, support, playbook
	Type string `json:"type,omitempty"`
	URL  string `json:"url,omitempty"`
	Text `json:",inline"`
}

type LocalTime added in v1.0.24

type LocalTime time.Time

func (LocalTime) MarshalJSON added in v1.0.24

func (t LocalTime) MarshalJSON() ([]byte, error)

func (*LocalTime) Scan added in v1.0.24

func (t *LocalTime) Scan(v interface{}) error

func (LocalTime) String added in v1.0.24

func (t LocalTime) String() string

func (*LocalTime) UnmarshalJSON added in v1.0.24

func (t *LocalTime) UnmarshalJSON(data []byte) (err error)

func (LocalTime) Value added in v1.0.24

func (t LocalTime) Value() (driver.Value, error)

type LogLine added in v1.0.24

type LogLine struct {
	Timestamp time.Time           `json:"timestamp"`
	Message   string              `json:"message"`
	Labels    types.JSONStringMap `json:"labels"`
}

type LoggingBackend added in v1.0.40

type LoggingBackend struct {
	ID        uuid.UUID           `json:"id" gorm:"default:generate_ulid()"`
	Name      string              `json:"name"`
	Labels    types.JSONStringMap `json:"labels" gorm:"type:jsonstringmap"`
	Spec      string              `json:"spec,omitempty"`
	Source    string              `json:"source,omitempty"`
	CreatedAt time.Time           `json:"created_at,omitempty"`
	UpdatedAt time.Time           `json:"updated_at,omitempty"`
	DeletedAt *time.Time          `json:"deleted_at,omitempty"`
}

type Person added in v1.0.24

type Person struct {
	ID         uuid.UUID        `json:"id" gorm:"default:generate_ulid()"`
	Name       string           `json:"name,omitempty"`
	Email      string           `json:"email,omitempty"`
	Avatar     string           `json:"avatar,omitempty"`
	Properties PersonProperties `json:"properties,omitempty"`
}

func (Person) TableName added in v1.0.24

func (person Person) TableName() string

type PersonProperties added in v1.0.24

type PersonProperties struct {
	Role string `json:"role,omitempty"`
}

func (*PersonProperties) Scan added in v1.0.24

func (p *PersonProperties) Scan(val any) error

func (PersonProperties) Value added in v1.0.24

func (p PersonProperties) Value() (driver.Value, error)

type Properties added in v1.0.15

type Properties []*Property

func (Properties) AsJSON added in v1.0.15

func (p Properties) AsJSON() []byte

func (Properties) AsMap added in v1.0.15

func (p Properties) AsMap() map[string]any

func (Properties) Find added in v1.0.15

func (p Properties) Find(name string) *Property

func (Properties) GormDBDataType added in v1.0.15

func (Properties) GormDBDataType(db *gorm.DB, field *schema.Field) string

func (Properties) GormDataType added in v1.0.15

func (Properties) GormDataType() string

GormDataType gorm common data type

func (Properties) GormValue added in v1.0.15

func (p Properties) GormValue(ctx context.Context, db *gorm.DB) clause.Expr

func (*Properties) Scan added in v1.0.15

func (p *Properties) Scan(val any) error

Scan scan value into Jsonb, implements sql.Scanner interface

func (Properties) Value added in v1.0.15

func (p Properties) Value() (driver.Value, error)

Scan scan value into Jsonb, implements sql.Scanner interface

type Property added in v1.0.15

type Property struct {
	Label    string `json:"label,omitempty"`
	Name     string `json:"name,omitempty"`
	Tooltip  string `json:"tooltip,omitempty"`
	Icon     string `json:"icon,omitempty"`
	Type     string `json:"type,omitempty"`
	Color    string `json:"color,omitempty"`
	Order    int    `json:"order,omitempty"`
	Headline bool   `json:"headline,omitempty"`

	// Either text or value is required, but not both.
	Text  string `json:"text,omitempty"`
	Value int64  `json:"value,omitempty"`

	// e.g. milliseconds, bytes, millicores, epoch etc.
	Unit string `json:"unit,omitempty"`
	Max  *int64 `json:"max,omitempty"`
	Min  int64  `json:"min,omitempty"`

	Status         string `json:"status,omitempty"`
	LastTransition string `json:"lastTransition,omitempty"`
	Links          []Link `json:"links,omitempty"`
}

Property is a realized v1.Property without the lookup definition

func (Property) GetValue added in v1.0.15

func (p Property) GetValue() any

func (*Property) Merge added in v1.0.15

func (p *Property) Merge(other *Property)

func (*Property) String added in v1.0.15

func (p *Property) String() string

type ResourceSelector added in v1.0.15

type ResourceSelector struct {
	Name          string `yaml:"name,omitempty" json:"name,omitempty"`
	LabelSelector string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty"`
	FieldSelector string `json:"fieldSelector,omitempty" yaml:"fieldSelector,omitempty"`
}

type ResourceSelectors added in v1.0.15

type ResourceSelectors []ResourceSelector

func (ResourceSelectors) GormDBDataType added in v1.0.15

func (ResourceSelectors) GormDBDataType(db *gorm.DB, field *schema.Field) string

GormDBDataType gorm db data type

func (ResourceSelectors) GormDataType added in v1.0.15

func (rs ResourceSelectors) GormDataType() string

GormDataType gorm common data type

func (ResourceSelectors) GormValue added in v1.0.15

func (rs ResourceSelectors) GormValue(ctx context.Context, db *gorm.DB) clause.Expr

func (*ResourceSelectors) Scan added in v1.0.15

func (rs *ResourceSelectors) Scan(val any) error

func (ResourceSelectors) Value added in v1.0.15

func (rs ResourceSelectors) Value() (driver.Value, error)

type Summary added in v1.0.15

type Summary struct {
	Healthy   int                       `json:"healthy,omitempty"`
	Unhealthy int                       `json:"unhealthy,omitempty"`
	Warning   int                       `json:"warning,omitempty"`
	Info      int                       `json:"info,omitempty"`
	Incidents map[string]map[string]int `json:"incidents,omitempty"`
	Insights  map[string]map[string]int `json:"insights,omitempty"`
	// contains filtered or unexported fields
}

func (Summary) Add added in v1.0.24

func (s Summary) Add(b Summary, n string) Summary

func (Summary) GormDBDataType added in v1.0.15

func (Summary) GormDBDataType(db *gorm.DB, field *schema.Field) string

func (Summary) GormDataType added in v1.0.15

func (Summary) GormDataType() string

GormDataType gorm common data type

func (Summary) GormValue added in v1.0.15

func (s Summary) GormValue(ctx context.Context, db *gorm.DB) clause.Expr

func (*Summary) Scan added in v1.0.15

func (s *Summary) Scan(val any) error

Scan scan value into Jsonb, implements sql.Scanner interface

func (Summary) String added in v1.0.24

func (s Summary) String() string

func (Summary) Value added in v1.0.15

func (s Summary) Value() (driver.Value, error)

Scan scan value into Jsonb, implements sql.Scanner interface

type SystemTemplate added in v1.0.22

type SystemTemplate struct {
	ID        uuid.UUID `gorm:"default:generate_ulid()"`
	Name      string
	Namespace string
	Labels    types.JSONStringMap
	Spec      types.JSON
	Schedule  *string
	CreatedAt *time.Time `json:"created_at,omitempty" time_format:"postgres_timestamp"`
	UpdatedAt *time.Time `json:"updated_at,omitempty" time_format:"postgres_timestamp"`
	DeletedAt *time.Time `json:"deleted_at,omitempty" time_format:"postgres_timestamp"`
}

SystemTemplate represents the templates database table

func (SystemTemplate) TableName added in v1.0.22

func (cr SystemTemplate) TableName() string

type Text added in v1.0.15

type Text struct {
	Tooltip string `json:"tooltip,omitempty"`
	Icon    string `json:"icon,omitempty"`
	Text    string `json:"text,omitempty"`
	Label   string `json:"label,omitempty"`
}

type Uptime added in v1.0.15

type Uptime struct {
	Passed   int        `json:"passed"`
	Failed   int        `json:"failed"`
	P100     float64    `json:"p100,omitempty"`
	LastPass *LocalTime `json:"last_pass,omitempty"`
	LastFail *LocalTime `json:"last_fail,omitempty"`
}

func (Uptime) String added in v1.0.15

func (u Uptime) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL