pkg

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2023 License: Apache-2.0 Imports: 38 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 ParseConfig

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

ParseConfig : Read config file

func ParseSystems added in v0.38.85

func ParseSystems(configFile, datafile string) ([]v1.Topology, error)

func ToV1Config added in v0.38.165

func ToV1Config(config Config) v1.Config

Types

type Canary added in v0.38.85

type Canary struct {
	ID        uuid.UUID `gorm:"default:generate_ulid()"`
	AgentID   uuid.UUID
	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 CanaryFromV1 added in v0.38.85

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

func (Canary) GetCheckID added in v0.38.168

func (c Canary) GetCheckID(checkName string) string

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"  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:"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) ToString added in v0.11.0

func (c Check) ToString() string

type CheckComponentRelationship added in v0.38.151

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"`
}

type CheckResult

type CheckResult struct {
	Start       time.Time
	Pass        bool
	Invalid     bool
	Detail      interface{}
	Data        map[string]interface{}
	Duration    int64
	Description string
	DisplayType string
	Message     string
	Error       string
	Metrics     []Metric
	// Check is the configuration
	Check  external.Check
	Canary v1.Canary
}

func Fail added in v0.32.1

func Fail(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) 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 FromResult added in v0.36.0

func FromResult(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
	Text         string              `json:"text,omitempty"`
	Schedule     string              `json:"schedule,omitempty"`
	TopologyType string              `json:"topology_type,omitempty"`
	Namespace    string              `json:"namespace,omitempty"`
	Labels       types.JSONStringMap `json:"labels,omitempty"`
	Tooltip      string              `json:"tooltip,omitempty"`
	Icon         string              `json:"icon,omitempty"`
	Owner        string              `json:"owner,omitempty"`
	Status       ComponentStatus     `json:"status,omitempty"`
	StatusReason string              `json:"statusReason,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 v1.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      Properties               `json:"properties,omitempty" gorm:"type:properties"`
	Components      Components               `json:"components,omitempty" gorm:"-"`
	ParentId        *uuid.UUID               `json:"parent_id,omitempty"` //nolint
	Selectors       v1.ResourceSelectors     `json:"selectors,omitempty" gorm:"resourceSelectors" swaggerignore:"true"`
	ComponentChecks v1.ComponentChecks       `json:"-" gorm:"componentChecks" swaggerignore:"true"`
	Checks          Checks                   `json:"checks,omitempty" gorm:"-"`
	Configs         Configs                  `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       []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"`
}

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) GetAsEnvironment added in v0.38.85

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

func (Component) GetID added in v0.38.85

func (component Component) GetID() string

func (Component) GetStatus added in v0.38.146

func (component Component) GetStatus() 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() v1.Summary

func (*Component) UnmarshalJSON added in v0.38.85

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

type ComponentRelationship added in v0.38.114

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

type ComponentStatus added in v0.38.85

type ComponentStatus string
var (
	ComponentPropertyStatusHealthy   ComponentStatus = "healthy"
	ComponentPropertyStatusUnhealthy ComponentStatus = "unhealthy"
	ComponentPropertyStatusWarning   ComponentStatus = "warning"
	ComponentPropertyStatusError     ComponentStatus = "error"
	ComponentPropertyStatusInfo      ComponentStatus = "info"

	ComponentStatusOrder = map[ComponentStatus]int{
		ComponentPropertyStatusInfo:      0,
		ComponentPropertyStatusHealthy:   1,
		ComponentPropertyStatusUnhealthy: 2,
		ComponentPropertyStatusWarning:   3,
		ComponentPropertyStatusError:     4,
	}
)

func (ComponentStatus) Compare added in v0.38.171

func (status ComponentStatus) Compare(other ComponentStatus) int

type Components added in v0.38.85

type Components []*Component

func (Components) Debug added in v0.38.85

func (components Components) Debug(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() v1.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 Config

type Config struct {
	ID          *uuid.UUID          `json:"id,omitempty"`
	ConfigClass string              `json:"config_class,omitempty"`
	Name        string              `json:"name,omitempty"`
	Namespace   string              `json:"namespace,omitempty"`
	Spec        *types.JSONMap      `json:"spec,omitempty" gorm:"column:config"`
	Tags        types.JSONStringMap `json:"tags,omitempty"  gorm:"type:jsonstringmap"`
	ExternalID  pq.StringArray      `json:"external_id,omitempty" gorm:"type:text[]"`
	Type        string              `json:"type,omitempty"`
}

func NewConfig added in v0.38.165

func NewConfig(config v1.Config) *Config

func (Config) GetSelectorID added in v0.38.165

func (c Config) GetSelectorID() string

func (Config) String added in v0.38.193

func (c Config) String() string

func (Config) ToJSONMap added in v0.38.195

func (c Config) ToJSONMap() map[string]interface{}

ToJSONMap converts the struct to map[string]interface{} to be compatible with otto vm

type Configs added in v0.38.165

type Configs []*Config

func NewConfigs added in v0.38.168

func NewConfigs(configs []v1.Config) Configs

func (Configs) GormDBDataType added in v0.38.165

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

func (Configs) GormDataType added in v0.38.165

func (Configs) GormDataType() string

GormDataType gorm common data type

func (Configs) GormValue added in v0.38.165

func (c Configs) GormValue(ctx context.Context, db *gorm.DB) clause.Expr

func (*Configs) Scan added in v0.38.165

func (c *Configs) Scan(val interface{}) error

Scan scan value into Jsonb, implements sql.Scanner interface

func (Configs) Value added in v0.38.165

func (c Configs) Value() (driver.Value, error)

Scan scan value into Jsonb, implements sql.Scanner interface

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 Incident added in v0.38.189

type Incident struct {
	ID          uuid.UUID `json:"id"`
	Type        string    `json:"type"`
	Title       string    `json:"title"`
	Severity    int       `json:"severity"`
	Description string    `json:"description"`
}

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 Latency added in v0.37.0

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"`
}

func (Latency) String added in v0.37.0

func (l Latency) String() string
type Link struct {
	// e.g. documentation, support, playbook
	Type string `json:"type,omitempty"`
	URL  string `json:"url,omitempty"`
	Text `json:",inline"`
}

type Metric

type Metric struct {
	Name   string
	Type   MetricType
	Labels map[string]string
	Value  float64
}

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    types.JSONStringMap `json:"labels,omitempty"`
}

type Properties added in v0.38.85

type Properties []*Property

func (Properties) AsJSON added in v0.38.85

func (p Properties) AsJSON() []byte

func (Properties) AsMap added in v0.38.85

func (p Properties) AsMap() map[string]interface{}

func (Properties) Find added in v0.38.85

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

func (Properties) GormDBDataType added in v0.38.106

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

func (Properties) GormDataType added in v0.38.106

func (Properties) GormDataType() string

GormDataType gorm common data type

func (Properties) GormValue added in v0.38.106

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

func (*Properties) Scan added in v0.38.106

func (p *Properties) Scan(val interface{}) error

Scan scan value into Jsonb, implements sql.Scanner interface

func (Properties) Value added in v0.38.106

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

Scan scan value into Jsonb, implements sql.Scanner interface

type Property added in v0.38.85

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          []v1.Link `json:"links,omitempty"`
}

Property is a realized v1.Property without the lookup definition

func NewProperty added in v0.38.85

func NewProperty(property v1.Property) *Property

func (Property) GetValue added in v0.38.85

func (p Property) GetValue() interface{}

func (*Property) Merge added in v0.38.85

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

func (*Property) String added in v0.38.85

func (p *Property) String() string

type Results added in v0.38.75

type Results []*CheckResult

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

type SystemResult added in v0.38.85

type SystemResult struct{}

type Text added in v0.38.85

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

type Timeseries added in v0.38.70

type Timeseries struct {
	Key      string `json:"key,omitempty"`
	Time     string `json:"time,omitempty"`
	Status   bool   `json:"status,omitempty"`
	Message  string `json:"message,omitempty"`
	Error    string `json:"error,omitempty"`
	Duration int    `json:"duration"`
	// Count is the number of times the check has been run in the specified time window
	Count int `json:"count,omitempty"`
}

type Topology added in v0.38.266

type Topology 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"`
}

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

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"`
	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"`
	Icon        string                 `json:"icon,omitempty"`
	Type        string                 `json:"type,omitempty"`
	Endpoint    string                 `json:"endpoint,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

type Uptime added in v0.37.0

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

func (Uptime) String added in v0.37.0

func (u Uptime) String() string

Directories

Path Synopsis
clients
aws
gcp
db
types
nolint
nolint

Jump to

Keyboard shortcuts

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