Documentation ¶
Index ¶
- Constants
- Variables
- type Agent
- type AnalysisType
- type Canary
- type Check
- type CheckComponentRelationship
- type CheckHealthStatus
- type CheckStatus
- type CheckStatusAggregate1d
- type CheckStatusAggregate1h
- type Checks
- type Comment
- type Component
- func (component Component) Clone() Component
- func (component Component) GetAsEnvironment() map[string]interface{}
- func (c *Component) GetStatus() types.ComponentStatus
- func (component Component) IsHealthy() bool
- func (component Component) String() string
- func (c *Component) Summarize() types.Summary
- type ComponentRelationship
- type Components
- type ConfigAnalysis
- type ConfigChange
- type ConfigComponentRelationship
- type ConfigItem
- type ConfigRelationship
- type ConfigScraper
- type Connection
- type Evidence
- type EvidenceCanaryCheck
- type EvidenceComponent
- type EvidenceConfig
- type EvidenceConfigAnalysis
- type EvidenceConfigChange
- type EvidenceLogs
- type ExternalID
- type Hypothesis
- type Incident
- type IncidentStatus
- type IncidentType
- type JobHistory
- type Latency
- type Link
- type LocalTime
- type LogLine
- type LoggingBackend
- type Person
- type PersonProperties
- type Properties
- func (p Properties) AsJSON() []byte
- func (p Properties) AsMap() map[string]any
- func (p Properties) Find(name string) *Property
- func (Properties) GormDBDataType(db *gorm.DB, field *schema.Field) string
- func (Properties) GormDataType() string
- func (p Properties) GormValue(ctx context.Context, db *gorm.DB) clause.Expr
- func (p *Properties) Scan(val any) error
- func (p Properties) Value() (driver.Value, error)
- type Property
- type Responder
- type Severity
- type Team
- type Text
- type Topology
- type Uptime
Constants ¶
const ( CheckStatusHealthy = "healthy" CheckStatusUnhealthy = "unhealthy" )
const ( ConfigClassCluster = "Cluster" ConfigClassDatabase = "Database" ConfigClassDeployment = "Deployment" ConfigClassNamespace = "Namespace" ConfigClassNode = "Node" ConfigClassPod = "Pod" ConfigClassVirtualMachine = "VirtualMachine" )
Config classes
const ( ConfigStatusCordoned = "Cordoned" ConfigStatusCordoning = "Cordoning" ConfigStatusDeleted = "Deleted" ConfigStatusDeleting = "Deleting" ConfigStatusFailed = "Failed" ConfigStatusPending = "Pending" ConfigStatusRunning = "Running" ConfigStatusStarting = "Starting" ConfigStatusStopped = "Stopped" ConfigStatusStopping = "Stopping" ConfigStatusSucceeded = "Succeeded" ConfigStatusUncordoned = "Uncordoned" ConfigStatusUnknown = "Unknown" )
Config Statuses
const ( AnalysisStatusOpen = "open" AnalysisStatusResolved = "resolved" AnalysisStatusSilenced = "silenced" )
Config Analysis statuses
const ( StatusRunning = "RUNNING" StatusSuccess = "SUCCESS" StatusWarning = "WARNING" StatusFinished = "FINISHED" StatusFailed = "FAILED" )
const ( SourceCRD = "KubernetesCRD" SourceConfigFile = "ConfigFile" SourceUI = "UI" )
const TimeFormat = "2006-01-02T15:04:05"
Variables ¶
var CheckHealthStatuses = []CheckHealthStatus{ CheckStatusHealthy, CheckStatusUnhealthy, }
Functions ¶
This section is empty.
Types ¶
type Agent ¶ added in v1.0.91
type Agent struct { ID uuid.UUID `json:"id,omitempty" gorm:"default:generate_ulid()"` Name string `json:"name,omitempty"` Hostname string `json:"hostname,omitempty"` Description string `json:"description,omitempty"` IP string `json:"ip,omitempty"` Version string `json:"version,omitempty"` Username string `json:"username,omitempty"` PersonID *uuid.UUID `json:"person_id,omitempty"` Properties types.JSONStringMap `json:"properties,omitempty"` TLS string `json:"tls,omitempty"` CreatedBy *uuid.UUID `json:"created_by,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` }
type AnalysisType ¶ added in v1.0.117
type AnalysisType string
const ( AnalysisTypeAvailability AnalysisType = "availability" AnalysisTypeCompliance AnalysisType = "compliance" AnalysisTypeCost AnalysisType = "cost" AnalysisTypeIntegration AnalysisType = "integration" AnalysisTypeOther AnalysisType = "other" AnalysisTypePerformance AnalysisType = "performance" AnalysisTypeRecommendation AnalysisType = "recommendation" AnalysisTypeReliability AnalysisType = "reliability" AnalysisTypeSecurity AnalysisType = "security" AnalysisTypeTechDebt AnalysisType = "technical_debt" )
type Canary ¶ added in v1.0.15
type Canary struct { ID uuid.UUID `gorm:"default:generate_ulid()"` AgentID uuid.UUID `json:"agent_id,omitempty"` Spec types.JSON Labels types.JSONStringMap Source string Name string Namespace string Checks types.JSONStringMap `gorm:"-"` 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
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"` AgentID uuid.UUID `json:"agent_id,omitempty"` Spec types.JSON `json:"-"` Type string `json:"type"` Name string `json:"name"` Labels types.JSONStringMap `json:"labels" gorm:"type:jsonstringmap"` Description string `json:"description,omitempty"` Status CheckHealthStatus `json:"status,omitempty"` Owner string `json:"owner,omitempty"` Severity Severity `json:"severity,omitempty"` Icon string `json:"icon,omitempty"` Transformed bool `json:"transformed,omitempty"` LastRuntime *time.Time `json:"last_runtime,omitempty"` NextRuntime *time.Time `json:"next_runtime,omitempty"` LastTransitionTime *time.Time `json:"last_transition_time,omitempty"` CreatedAt *time.Time `json:"created_at,omitempty"` UpdatedAt *time.Time `json:"updated_at,omitempty"` DeletedAt *time.Time `json:"deleted_at,omitempty"` SilencedAt *time.Time `json:"silenced_at,omitempty"` // Auxiliary fields CanaryName string `json:"canary_name" gorm:"-"` Namespace string `json:"namespace" gorm:"-"` // Namespace of the parent canary ComponentIDs []string `json:"components" gorm:"-"` // Linked component ids Uptime Uptime `json:"uptime" gorm:"-"` Latency Latency `json:"latency" gorm:"-"` Statuses []CheckStatus `json:"checkStatuses" gorm:"-"` DisplayType string `json:"display_type,omitempty" gorm:"-"` }
func (Check) GetDescription ¶ added in v1.0.15
type CheckComponentRelationship ¶ added in v1.0.77
type CheckComponentRelationship struct { ComponentID uuid.UUID `json:"component_id,omitempty"` CheckID uuid.UUID `json:"check_id,omitempty"` CanaryID uuid.UUID `json:"canary_id,omitempty"` SelectorID string `json:"selector_id,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` UpdatedAt time.Time `json:"updated_at,omitempty"` DeletedAt *time.Time `json:"deleted_at,omitempty"` }
func (CheckComponentRelationship) TableName ¶ added in v1.0.77
func (CheckComponentRelationship) TableName() string
type CheckHealthStatus ¶ added in v1.0.60
type CheckHealthStatus 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) 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 Comment ¶ added in v1.0.67
type Comment struct { ID uuid.UUID `json:"id" gorm:"primaryKey"` CreatedBy uuid.UUID `json:"created_by,omitempty"` Comment string `json:"comment,omitempty"` ExternalID *string `json:"external_id,omitempty"` ExternalCreatedBy *string `json:"external_created_by,omitempty"` IncidentID uuid.UUID `json:"incident_id,omitempty"` ResponderID *uuid.UUID `json:"responder_id,omitempty"` HypothesisID *uuid.UUID `json:"hypothesis_id,omitempty"` Read []int16 `json:"read,omitempty" gorm:"type:smallint[]"` CreatedAt time.Time `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"` UpdatedAt time.Time `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"` }
type Component ¶ added in v1.0.15
type Component struct { ID uuid.UUID `json:"id,omitempty" gorm:"default:generate_ulid()"` //nolint TopologyID *uuid.UUID `json:"topology_id,omitempty"` AgentID uuid.UUID `json:"agent_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" gorm:"default:null"` Hidden bool `json:"hidden,omitempty"` Silenced bool `json:"silenced,omitempty"` Status types.ComponentStatus `json:"status,omitempty"` Description string `json:"description,omitempty"` Lifecycle string `json:"lifecycle,omitempty"` LogSelectors types.LogSelectors `json:"logs,omitempty" gorm:"column:log_selectors;default:null"` Tooltip string `json:"tooltip,omitempty"` StatusReason string `json:"status_reason,omitempty"` Schedule string `json:"schedule,omitempty"` Icon string `json:"icon,omitempty"` Type string `json:"type,omitempty"` Owner string `json:"owner,omitempty"` Selectors types.ResourceSelectors `json:"selectors,omitempty" gorm:"resourceSelectors;default:null" swaggerignore:"true"` Configs types.ConfigQueries `json:"configs,omitempty" gorm:"default:null"` ComponentChecks types.ComponentChecks `json:"componentChecks,omitempty" gorm:"default:null"` Properties Properties `json:"properties,omitempty" gorm:"type:properties;default:null"` Path string `json:"path,omitempty"` Summary types.Summary `json:"summary,omitempty" gorm:"type:summary;default:null"` 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 time.Time `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"` UpdatedAt time.Time `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 map[string]int `json:"checks,omitempty" gorm:"-"` Incidents map[string]map[string]int `json:"incidents,omitempty" gorm:"-"` Analysis map[string]map[string]int `json:"analysis,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:"-"` Children []string `json:"children,omitempty" gorm:"-"` Parents []string `json:"parents,omitempty" gorm:"-"` }
func (Component) GetAsEnvironment ¶ added in v1.0.49
func (*Component) GetStatus ¶ added in v1.0.24
func (c *Component) GetStatus() types.ComponentStatus
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 Components ¶ added in v1.0.15
type Components []*Component
func (Components) Debug ¶ added in v1.0.83
func (components Components) Debug(prefix string) string
func (Components) Find ¶ added in v1.0.83
func (components Components) Find(name string) *Component
func (Components) Map ¶ added in v1.0.25
func (components Components) Map(fn func(c *Component))
func (Components) Summarize ¶ added in v1.0.83
func (components Components) Summarize() types.Summary
func (Components) Walk ¶ added in v1.0.83
func (components Components) Walk() Components
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:"-"` ConfigType string `gorm:"-"` ConfigID uuid.UUID `gorm:"column:config_id;default:''" json:"config_id"` ScraperID *uuid.UUID `gorm:"column:scraper_id;default:null" json:"scraper_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 Severity `gorm:"column:severity" json:"severity" faker:"oneof: critical, high, medium, low, info"` AnalysisType AnalysisType `gorm:"column:analysis_type" json:"analysis_type" faker:"oneof: availability, compliance, cost, security, performance"` Analysis types.JSONMap `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:"-"` ConfigType 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 Severity `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"` Diff string `gorm:"column:diff;default:null" json:"diff,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) BeforeCreate ¶ added in v1.0.64
func (c *ConfigChange) BeforeCreate(tx *gorm.DB) error
BeforeCreate is a user defined hook for Gorm. It will be called when creating a record.
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 `json:"id" faker:"uuid_hyphenated"` ScraperID *string `json:"scraper_id,omitempty"` AgentID uuid.UUID `json:"agent_id,omitempty"` ConfigClass string `json:"config_class" faker:"oneof:File,EC2Instance,KubernetesPod" ` ExternalID pq.StringArray `gorm:"type:[]text" json:"external_id,omitempty"` Type *string `json:"type,omitempty"` Status *string `json:"status,omitempty" gorm:"default:null"` Name *string `json:"name,omitempty" faker:"name" ` Namespace *string `json:"namespace,omitempty" faker:"oneof: default, demo, prod, staging" ` Description *string `json:"description,omitempty"` Config *string `json:"config,omitempty" ` Source *string `json:"source,omitempty" ` ParentID *uuid.UUID `json:"parent_id,omitempty" faker:"-"` Path string `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 `json:"tags,omitempty" faker:"tags"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `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) GetSelectorID ¶ added in v1.0.83
func (c ConfigItem) GetSelectorID() string
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 (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 `json:"id"` AgentID uuid.UUID `json:"agent_id,omitempty"` Name string `json:"name"` Description string `json:"description,omitempty"` Spec string `json:"spec,omitempty"` Source string `json:"source,omitempty"` CreatedBy *uuid.UUID `json:"created_by,omitempty"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` DeletedAt *time.Time `json:"deleted_at,omitempty"` }
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 EvidenceConfigChange ¶ added in v1.0.24
type EvidenceLogs ¶ added in v1.0.24
type EvidenceLogs struct {
Lines []LogLine `json:"lines"`
}
type ExternalID ¶ added in v1.0.5
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()"` IncidentID string `json:"incident_id,omitempty" gorm:"default:format_incident_id(NEXTVAL('incident_id_sequence'))"` Title string `json:"title,omitempty"` Description string `json:"description,omitempty"` Type IncidentType `json:"type,omitempty"` Status IncidentStatus `json:"status,omitempty"` Severity Severity `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) EvaluateStatus ¶ added in v1.0.97
func (h *JobHistory) EvaluateStatus()
EvaluateStatus updates the Status field of JobHistory based on the counts of Success and Error in it.
func (*JobHistory) IncrSuccess ¶
func (h *JobHistory) IncrSuccess() *JobHistory
func (*JobHistory) Start ¶
func (h *JobHistory) Start() *JobHistory
type LocalTime ¶ added in v1.0.24
func (LocalTime) MarshalJSON ¶ added in v1.0.24
func (*LocalTime) UnmarshalJSON ¶ added in v1.0.24
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 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
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) GormDataType ¶ added in v1.0.15
func (Properties) GormDataType() string
GormDataType gorm common data type
func (*Properties) Scan ¶ added in v1.0.15
func (p *Properties) Scan(val any) 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
type Responder ¶ added in v1.0.67
type Responder struct { ID uuid.UUID `gorm:"primaryKey" json:"id"` IncidentID uuid.UUID `json:"incident_id"` Type string `json:"type"` Index *int16 `json:"index,omitempty"` PersonID *uuid.UUID `json:"person_id,omitempty"` TeamID *uuid.UUID `json:"team_id,omitempty"` ExternalID *string `json:"external_id,omitempty"` Properties *string `gorm:"type:jsonb;default:null" json:"properties,omitempty"` Acknowledged *time.Time `json:"acknowledged,omitempty" time_format:"postgres_timestamp"` Resolved *time.Time `json:"resolved,omitempty" time_format:"postgres_timestamp"` Closed *time.Time `json:"closed,omitempty" time_format:"postgres_timestamp"` CreatedBy uuid.UUID `json:"created_by"` CreatedAt time.Time `json:"created_at" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"` UpdatedAt time.Time `json:"updated_at" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"` }
type Team ¶ added in v1.0.115
type Team struct { ID uuid.UUID `gorm:"default:generate_ulid()"` Name string `gorm:"not null" json:"name"` Icon string `json:"icon,omitempty"` Spec types.JSON `json:"spec,omitempty"` Source string `json:"source,omitempty"` CreatedBy uuid.UUID `gorm:"not null" json:"created_by"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` DeletedAt *time.Time `json:"deleted_at,omitempty"` }
type Topology ¶ added in v1.0.72
type Topology struct { ID uuid.UUID `gorm:"default:generate_ulid()"` Name string Namespace string Labels types.JSONStringMap `json:"labels,omitempty" gorm:"default:null"` Spec types.JSON `gorm:"default:null"` 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"` }
Topology represents the topologies database table