pkg

package
v1.0.259 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2024 License: Apache-2.0 Imports: 50 Imported by: 0

Documentation

Index

Constants

View Source
const ComponentType = "component"

Variables

This section is empty.

Functions

func CleanupFilename added in v0.38.85

func CleanupFilename(fileName string) string

func GetClusterName added in v0.11.3

func GetClusterName(config *rest.Config) string

func GetKubeconfig

func GetKubeconfig() string

func NewKommonsClient added in v0.17.0

func NewKommonsClient() (*kommons.Client, kubernetes.Interface, error)

func NewKommonsClientWithConfig added in v1.0.251

func NewKommonsClientWithConfig(kubeConfig string) (*kommons.Client, kubernetes.Interface, error)

func NewKommonsClientWithConfigPath added in v1.0.251

func NewKommonsClientWithConfigPath(kubeConfigPath string) (*kommons.Client, kubernetes.Interface, error)

func NewKubeClient added in v1.0.259

func NewKubeClient(restConfigFn func() (*rest.Config, error)) *kubeClient

func NewProperty added in v0.38.85

func NewProperty(property v1.Property) *dutyTypes.Property

func ParseConfig

func ParseConfig(configfile string, datafile string) ([]v1.Canary, error)

ParseConfig : Read config file

Types

type ArtifactResult added in v1.0.123

type ArtifactResult struct {
	ContentType string
	Path        string
	Content     io.ReadCloser
	Connection  string
}

type Canary added in v0.38.85

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

func CanaryFromV1 added in v0.38.85

func CanaryFromV1(canary v1.Canary) (Canary, error)

func (Canary) FindChecks added in v1.0.152

func (c Canary) FindChecks(db *gorm.DB) (checks Checks, err error)

func (Canary) GetCheckID added in v0.38.168

func (c Canary) GetCheckID(checkName string) string

func (Canary) GetSpec added in v1.0.16

func (c Canary) GetSpec() (v1.CanarySpec, error)

func (Canary) ToV1 added in v0.38.151

func (c Canary) ToV1() (*v1.Canary, error)

type Check

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"`
	Labels             types.JSONStringMap `json:"labels" gorm:"type:jsonstringmap"`
	Description        string              `json:"description,omitempty"`
	Status             string              `json:"status,omitempty"`
	Uptime             types.Uptime        `json:"uptime"  gorm:"-"`
	Latency            types.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:"displayType,omitempty"  gorm:"-"`
	Transformed        bool                `json:"transformed,omitempty"`
	LastRuntime        *time.Time          `json:"lastRuntime,omitempty"`
	LastTransitionTime *time.Time          `json:"lastTransitionTime,omitempty"`
	NextRuntime        *time.Time          `json:"nextRuntime,omitempty"`
	UpdatedAt          *time.Time          `json:"updatedAt,omitempty"`
	CreatedAt          *time.Time          `json:"createdAt,omitempty"`
	DeletedAt          *time.Time          `json:"deletedAt,omitempty"`
	SilencedAt         *time.Time          `json:"silencedAt,omitempty"`
	Canary             *v1.Canary          `json:"-" gorm:"-"`

	// These are calculated for the selected date range
	EarliestRuntime *time.Time `json:"earliestRuntime,omitempty" gorm:"-"`
	LatestRuntime   *time.Time `json:"latestRuntime,omitempty" gorm:"-"`
	TotalRuns       int        `json:"totalRuns,omitempty" gorm:"-"`
}

func FromExternalCheck added in v0.38.102

func FromExternalCheck(canary Canary, check external.Check) Check

func FromV1 added in v0.33.1

func FromV1(canary v1.Canary, check external.Check, statuses ...CheckStatus) Check

func (Check) GetDescription

func (c Check) GetDescription() string

func (Check) GetID added in v0.38.48

func (c Check) GetID() string

func (Check) GetName added in v0.16.0

func (c Check) GetName() string

func (Check) GetNamespace added in v0.16.0

func (c Check) GetNamespace() string

func (Check) String added in v0.38.70

func (c Check) String() string

func (Check) ToString added in v0.11.0

func (c Check) ToString() string

type CheckResult

type CheckResult struct {
	Name        string                 `json:"name,omitempty"`
	Start       time.Time              `json:"start,omitempty"`
	Pass        bool                   `json:"pass,omitempty"`
	Invalid     bool                   `json:"invalid,omitempty"`
	Detail      interface{}            `json:"detail,omitempty"`
	Data        map[string]interface{} `json:"data,omitempty"`
	Labels      map[string]string      `json:"labels,omitempty"`
	Duration    int64                  `json:"duration,omitempty"`
	Description string                 `json:"description,omitempty"`
	DisplayType string                 `json:"display_type,omitempty"`
	Message     string                 `json:"message,omitempty"`
	Error       string                 `json:"error,omitempty"`
	Metrics     []Metric               `json:"metrics,omitempty"`
	Transformed bool                   `json:"transformed,omitempty"`
	// Artifacts is the generated artifacts
	Artifacts []artifacts.Artifact `json:"artifacts,omitempty"`
	// Check is the configuration
	Check  external.Check `json:"-"`
	Canary v1.Canary      `json:"-"`
	// ParentCheck is the parent check of a transformed check
	ParentCheck external.Check `json:"-"`
}

func Fail added in v0.32.1

func Fail(check external.Check, canary v1.Canary) *CheckResult

func New added in v1.0.99

func New(check external.Check, canary v1.Canary) *CheckResult

func Success added in v0.32.1

func Success(check external.Check, canary v1.Canary) *CheckResult

func (*CheckResult) AddData added in v0.38.4

func (result *CheckResult) AddData(data map[string]interface{}) *CheckResult

func (*CheckResult) AddDetails added in v0.38.0

func (result *CheckResult) AddDetails(detail interface{}) *CheckResult

func (*CheckResult) AddMetric added in v0.38.4

func (result *CheckResult) AddMetric(metric Metric) *CheckResult

func (*CheckResult) ErrorMessage added in v0.32.1

func (result *CheckResult) ErrorMessage(err error) *CheckResult

func (*CheckResult) Failf added in v0.38.4

func (result *CheckResult) Failf(message string, args ...interface{}) *CheckResult

func (CheckResult) GetDescription added in v0.11.4

func (result CheckResult) GetDescription() string

func (*CheckResult) GetDuration added in v0.38.19

func (result *CheckResult) GetDuration() int64

func (CheckResult) GetName added in v1.0.197

func (result CheckResult) GetName() string

func (*CheckResult) Invalidf added in v1.0.99

func (result *CheckResult) Invalidf(message string, args ...interface{}) Results

func (*CheckResult) ResultDescription added in v0.32.1

func (result *CheckResult) ResultDescription(description string) *CheckResult

func (*CheckResult) ResultMessage added in v0.32.1

func (result *CheckResult) ResultMessage(message string, args ...interface{}) *CheckResult

func (*CheckResult) StartTime added in v0.32.1

func (result *CheckResult) StartTime(start time.Time) *CheckResult

func (CheckResult) String

func (result CheckResult) String() string

func (*CheckResult) TextResults added in v0.32.1

func (result *CheckResult) TextResults(textResults bool) *CheckResult

func (*CheckResult) ToSlice added in v0.38.85

func (result *CheckResult) ToSlice() Results

func (*CheckResult) UpdateCheck added in v0.38.151

func (result *CheckResult) UpdateCheck(check external.Check) *CheckResult

type CheckStatus added in v0.11.0

type CheckStatus struct {
	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   interface{}     `json:"-"`
	Check    *external.Check `json:"check,omitempty"`
}

func CheckStatusFromResult added in v1.0.85

func CheckStatusFromResult(result CheckResult) CheckStatus

func (CheckStatus) GetTime added in v0.38.70

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

type Checker

type Checker interface {
	CheckArgs(args map[string]interface{}) *CheckResult
}

type Checks added in v0.11.0

type Checks []*Check

func (Checks) Find added in v0.38.70

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

func (Checks) Len added in v0.11.0

func (c Checks) Len() int

func (Checks) Less added in v0.11.0

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

func (Checks) Swap added in v0.11.0

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

type Component added in v0.38.85

type Component struct {
	Name         string                  `json:"name,omitempty"`
	ID           uuid.UUID               `json:"id,omitempty" gorm:"default:generate_ulid()"` //nolint
	AgentID      uuid.UUID               `json:"agent_id,omitempty"`                          //nolint
	Text         string                  `json:"text,omitempty"`
	Schedule     string                  `json:"schedule,omitempty"`
	TopologyType string                  `json:"topology_type,omitempty"`
	Namespace    string                  `json:"namespace,omitempty"`
	Labels       dutyTypes.JSONStringMap `json:"labels,omitempty"`
	Tooltip      string                  `json:"tooltip,omitempty"`
	Icon         string                  `json:"icon,omitempty"`
	Owner        string                  `json:"owner,omitempty"`
	// If set to true, do not display in UI
	Hidden       bool                      `json:"hidden,omitempty"`
	Status       dutyTypes.ComponentStatus `json:"status,omitempty"`
	StatusReason dutyTypes.NullString      `json:"status_reason,omitempty"`
	Path         string                    `json:"path,omitempty"`
	Order        int                       `json:"order,omitempty"  gorm:"-"`
	// The type of component, e.g. service, API, website, library, database, etc.
	Type    string            `json:"type,omitempty"`
	Summary dutyTypes.Summary `json:"summary,omitempty" gorm:"type:summary"`
	// The lifecycle state of the component e.g. production, staging, dev, etc.
	Lifecycle       string                      `json:"lifecycle,omitempty"`
	Properties      dutyTypes.Properties        `json:"properties,omitempty" gorm:"type:properties"`
	Components      Components                  `json:"components,omitempty" gorm:"-"`
	ParentId        *uuid.UUID                  `json:"parent_id,omitempty"` //nolint
	Selectors       dutyTypes.ResourceSelectors `json:"selectors,omitempty" gorm:"resourceSelectors" swaggerignore:"true"`
	ComponentChecks v1.ComponentChecks          `json:"-" gorm:"componentChecks" swaggerignore:"true"`
	Checks          Checks                      `json:"checks,omitempty" gorm:"-"`
	Configs         dutyTypes.ConfigQueries     `json:"configs,omitempty" gorm:"type:configs"`
	TopologyID      uuid.UUID                   `json:"topology_id,omitempty"` //nolint
	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" swaggerignore:"true"`
	ExternalId      string                      `json:"external_id,omitempty"` //nolint
	IsLeaf          bool                        `json:"is_leaf"`
	SelectorID      string                      `json:"-" gorm:"-"`
	Incidents       []dutyTypes.Incident        `json:"incidents,omitempty" gorm:"-"`
	ConfigInsights  []map[string]interface{}    `json:"insights,omitempty" gorm:"-"`
	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"`
	LogSelectors    dutyTypes.LogSelectors      `json:"logs,omitempty" gorm:"column:log_selectors"`
	ParentLookup    *v1.ParentLookup            `json:"parentLookup,omitempty" gorm:"-"`
}

Component mirrors the models.Component struct except that instead of raw JSON serialized to the DB, it has the full CRD based spec.

func NewComponent added in v0.38.85

func NewComponent(c v1.ComponentSpec) *Component

func (*Component) Clone added in v0.38.85

func (component *Component) Clone() Component

func (*Component) FindExisting added in v1.0.152

func (component *Component) FindExisting(ctx context.Context) (*models.Component, error)

func (Component) GetAsEnvironment added in v0.38.85

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

func (*Component) GetChecks added in v1.0.152

func (component *Component) GetChecks(db *gorm.DB) (relationships []models.CheckComponentRelationship, err error)

func (*Component) GetChildren added in v1.0.152

func (component *Component) GetChildren(db *gorm.DB) (relationships []models.ComponentRelationship, err error)

func (*Component) GetConfigs added in v1.0.152

func (component *Component) GetConfigs(ctx context.Context) (relationships []models.ConfigComponentRelationship, err error)

func (Component) GetID added in v0.38.85

func (component Component) GetID() string

func (*Component) GetParents added in v1.0.152

func (component *Component) GetParents(db *gorm.DB) (relationships []models.CheckComponentRelationship, err error)

func (Component) GetStatus added in v0.38.146

func (component Component) GetStatus() dutyTypes.ComponentStatus

func (Component) IsHealthy added in v0.38.85

func (component Component) IsHealthy() bool

func (Component) String added in v0.38.85

func (component Component) String() string

func (Component) Summarize added in v0.38.85

func (component Component) Summarize() dutyTypes.Summary

func (*Component) UnmarshalJSON added in v0.38.85

func (component *Component) UnmarshalJSON(b []byte) error

type Components added in v0.38.85

type Components []*Component

func (Components) Debug added in v0.38.85

func (components Components) Debug(properties bool, prefix string) string

func (Components) Find added in v0.38.85

func (components Components) Find(name string) *Component

func (Components) Summarize added in v0.38.85

func (components Components) Summarize() dutyTypes.Summary

func (*Components) UnmarshalJSON added in v0.38.85

func (components *Components) UnmarshalJSON(b []byte) error

func (Components) Walk added in v0.38.146

func (components Components) Walk() Components

type Endpoint

type Endpoint struct {
	String string
}

func (Endpoint) GetEndpoint

func (e Endpoint) GetEndpoint() string

type GenericCheck added in v0.10.0

type GenericCheck struct {
	v1.Description `yaml:",inline" json:",inline"`
	Type           string
	Endpoint       string
	Labels         map[string]string
}

func (GenericCheck) GetEndpoint added in v0.38.70

func (generic GenericCheck) GetEndpoint() string

func (GenericCheck) GetType added in v0.38.70

func (generic GenericCheck) GetType() string

type JSONTime added in v0.11.0

type JSONTime time.Time

func (JSONTime) MarshalJSON added in v0.11.0

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

func (*JSONTime) UnmarshalJSON added in v0.11.0

func (t *JSONTime) UnmarshalJSON(b []byte) error

type Metric

type Metric struct {
	Name   string            `json:"name,omitempty"`
	Type   MetricType        `json:"type,omitempty"`
	Labels map[string]string `json:"labels,omitempty"`
	Value  float64           `json:"value,omitempty"`
}

func (Metric) ID added in v1.0.64

func (m Metric) ID() string

func (Metric) LabelNames added in v1.0.64

func (m Metric) LabelNames() []string

func (Metric) String

func (m Metric) String() string

type MetricType

type MetricType string

type Object added in v0.38.85

type Object struct {
	Name      string                  `json:"name,omitempty"`
	Namespace string                  `json:"namespace,omitempty"`
	Labels    dutyTypes.JSONStringMap `json:"labels,omitempty"`
}

type Results added in v0.38.75

type Results []*CheckResult

func Invalid added in v1.0.88

func Invalid(check external.Check, canary v1.Canary, reason string) Results

func SetupError added in v0.38.25

func SetupError(canary v1.Canary, err error) Results

func (Results) ErrorMessage added in v0.38.75

func (r Results) ErrorMessage(err error) Results

func (Results) Failf added in v0.38.75

func (r Results) Failf(msg string, args ...interface{}) Results

func (Results) TotalArtifacts added in v1.0.123

func (r Results) TotalArtifacts() int

type SystemResult added in v0.38.85

type SystemResult struct{}

type Topology added in v0.38.266

type Topology struct {
	ID        uuid.UUID `gorm:"default:generate_ulid()"`
	Name      string
	Namespace string
	Labels    dutyTypes.JSONStringMap
	Spec      dutyTypes.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"`
}

Topology mirrors the models.Topology struct except that instead of raw JSON serialized to the DB, it has the full CRD based spec.

func ParseTopology added in v1.0.198

func ParseTopology(configFile, datafile string) ([]*Topology, error)

func TopologyFromV1 added in v0.38.266

func TopologyFromV1(topology *v1.Topology) Topology

func (*Topology) ToV1 added in v0.38.266

func (s *Topology) ToV1() (*v1.Topology, error)

type TransformedCheckResult added in v0.38.70

type TransformedCheckResult struct {
	Start                   *time.Time             `json:"start,omitempty"`
	Pass                    *bool                  `json:"pass,omitempty"`
	Invalid                 *bool                  `json:"invalid,omitempty"`
	Detail                  interface{}            `json:"detail,omitempty"`
	Data                    map[string]interface{} `json:"data,omitempty"`
	DeletedAt               *time.Time             `json:"deletedAt,omitempty"`
	Duration                *int64                 `json:"duration,omitempty"`
	Description             string                 `json:"description,omitempty"`
	DisplayType             string                 `json:"displayType,omitempty"`
	Message                 string                 `json:"message,omitempty"`
	Error                   string                 `json:"error,omitempty"`
	Name                    string                 `json:"name,omitempty"`
	Labels                  map[string]string      `json:"labels,omitempty"`
	Namespace               string                 `json:"namespace,omitempty"`
	Metrics                 []Metric               `json:"metrics,omitempty"`
	Icon                    string                 `json:"icon,omitempty"`
	Type                    string                 `json:"type,omitempty"`
	Endpoint                string                 `json:"endpoint,omitempty"`
	TransformDeleteStrategy string                 `json:"transformDeleteStrategy,omitempty"`
}

func (TransformedCheckResult) GetDescription added in v0.38.70

func (t TransformedCheckResult) GetDescription() string

func (TransformedCheckResult) ToCheckResult added in v0.38.70

func (t TransformedCheckResult) ToCheckResult() CheckResult

type URL

type URL struct {
	IP       string
	Port     int
	Host     string
	Scheme   string
	Path     string
	Username string
	Password string
	Method   string
	Headers  map[string]string
	Body     string
}

URL information

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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