query

package
v1.0.757 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2024 License: Apache-2.0 Imports: 44 Imported by: 23

Documentation

Index

Constants

View Source
const (
	CatalogChangeRecursiveUpstream   = "upstream"
	CatalogChangeRecursiveDownstream = "downstream"
	CatalogChangeRecursiveNone       = "none"
	CatalogChangeRecursiveAll        = "all"
)
View Source
const (
	Incoming RelationDirection = "incoming"
	Outgoing RelationDirection = "outgoing"
	Both     RelationType      = "both"
	Hard     RelationType      = "hard"
	Soft     RelationType      = "soft"
	All      RelationDirection = "all"
)
View Source
const DefaultDepth = 5

Variables

View Source
var (
	// Default search window
	DefaultCheckQueryWindow = "1h"
)
View Source
var DefaultQueryTimeout = 30 * time.Second
View Source
var LocalFilter = "deleted_at is NULL AND agent_id = '00000000-0000-0000-0000-000000000000' OR agent_id IS NULL"
View Source
var SyncComponentCacheJob = &job.Job{
	Name:       "SyncComponentCache",
	Schedule:   "@every 5m",
	JobHistory: true,
	Retention:  job.RetentionFew,
	Fn: func(ctx job.JobRuntime) error {
		return SyncComponentCache(ctx.Context)
	},
}
View Source
var SyncConfigCacheJob = &job.Job{
	Name:       "SyncConfigCache",
	Schedule:   "@every 5m",
	JobHistory: true,
	Retention:  job.RetentionFew,
	Fn: func(ctx job.JobRuntime) error {
		return SyncConfigCache(ctx.Context)
	},
}

Functions

func ArtifactsByCheck added in v1.0.225

func ArtifactsByCheck(ctx context.Context, checkID uuid.UUID, checkTime time.Time) ([]models.Artifact, error)

func ArtifactsByPlaybookRun added in v1.0.225

func ArtifactsByPlaybookRun(ctx context.Context, runID uuid.UUID) ([]models.Artifact, error)

func CheckSummary

func CheckSummary(ctx context.Context, opts ...CheckSummaryOptions) ([]models.CheckSummary, error)

func CheckSummaryByID

func CheckSummaryByID(ctx context.Context, checkID string) (*models.CheckSummary, error)

func ComponentFromCache added in v1.0.324

func ComponentFromCache(ctx context.Context, id string, queryDeleted bool) (models.Component, error)

func ConfigIDsByTypeFromCache added in v1.0.318

func ConfigIDsByTypeFromCache(ctx context.Context, id, typ string) ([]string, error)

func ConfigItemFromCache added in v1.0.318

func ConfigItemFromCache(ctx context.Context, id string) (models.ConfigItem, error)

func ConfigRelationsFromCache added in v1.0.318

func ConfigRelationsFromCache(ctx context.Context, id string) ([]string, error)

func ConfigSummary added in v1.0.421

func ConfigSummary(ctx context.Context, req ConfigSummaryRequest) (types.JSON, error)

func FindAgent added in v1.0.274

func FindAgent(ctx context.Context, name string) (*models.Agent, error)

func FindCachedAgent added in v1.0.324

func FindCachedAgent(ctx context.Context, identifier string) (*models.Agent, error)

func FindCachedCanary added in v1.0.324

func FindCachedCanary(ctx context.Context, id string) (*models.Canary, error)

func FindCachedCheck added in v1.0.324

func FindCachedCheck(ctx context.Context, id string) (*models.Check, error)

func FindCheckIDs added in v1.0.324

func FindCheckIDs(ctx context.Context, limit int, resourceSelectors ...types.ResourceSelector) ([]uuid.UUID, error)

func FindChecks added in v1.0.324

func FindChecks(ctx context.Context, limit int, resourceSelectors ...types.ResourceSelector) ([]models.Check, error)

func FindComponentIDs added in v1.0.324

func FindComponentIDs(ctx context.Context, limit int, resourceSelectors ...types.ResourceSelector) ([]uuid.UUID, error)

func FindComponents added in v1.0.324

func FindComponents(ctx context.Context, limit int, resourceSelectors ...types.ResourceSelector) ([]models.Component, error)

func FindConfig added in v1.0.253

func FindConfig(ctx context.Context, query types.ConfigQuery) (*models.ConfigItem, error)

func FindConfigForComponent added in v1.0.253

func FindConfigForComponent(ctx context.Context, componentID, configType string) ([]models.ConfigItem, error)

func FindConfigIDs added in v1.0.294

func FindConfigIDs(ctx context.Context, limit int, config types.ConfigQuery) ([]uuid.UUID, error)

func FindConfigIDsByResourceSelector added in v1.0.324

func FindConfigIDsByResourceSelector(ctx context.Context, limit int, resourceSelectors ...types.ResourceSelector) ([]uuid.UUID, error)

func FindConfigs added in v1.0.254

func FindConfigs(ctx context.Context, limit int, config types.ConfigQuery) ([]models.ConfigItem, error)

func FindConfigsByResourceSelector added in v1.0.324

func FindConfigsByResourceSelector(ctx context.Context, limit int, resourceSelectors ...types.ResourceSelector) ([]models.ConfigItem, error)

func FindPerson added in v1.0.324

func FindPerson(ctx context.Context, identifier string, opts ...GetterOption) (*models.Person, error)

FindPerson looks up a person by the given identifier which can either be

  • UUID
  • email

func FindPlaybook added in v1.0.674

func FindPlaybook(ctx context.Context, identifier string, opts ...GetterOption) (*models.Playbook, error)

func FindTeam added in v1.0.324

func FindTeam(ctx context.Context, identifier string, opts ...GetterOption) (*models.Team, error)

FindTeam looks up a team by the given identifier which can either be

  • UUID
  • team name

func FlushComponentCache added in v1.0.330

func FlushComponentCache(ctx context.Context) error

func FlushConfigCache added in v1.0.330

func FlushConfigCache(ctx context.Context) error

func FlushGettersCache added in v1.0.327

func FlushGettersCache()

func FlushTopologyCache added in v1.0.414

func FlushTopologyCache()

func GetAllResourceIDsOfAgent added in v1.0.274

func GetAllResourceIDsOfAgent(ctx context.Context, table, from string, size int, agentID uuid.UUID) ([]string, error)

func GetCachedComponent added in v1.0.324

func GetCachedComponent(ctx context.Context, id string) (*models.Component, error)

func GetCachedConfig added in v1.0.324

func GetCachedConfig(ctx context.Context, id string) (*models.ConfigItem, error)

func GetCachedIncident added in v1.0.324

func GetCachedIncident(ctx context.Context, id string) (*models.Incident, error)

func GetChecksByIDs added in v1.0.324

func GetChecksByIDs(ctx context.Context, ids []uuid.UUID) ([]models.Check, error)

func GetComponent

func GetComponent(ctx context.Context, id string) (*models.Component, error)

func GetComponentsByIDs added in v1.0.324

func GetComponentsByIDs(ctx context.Context, ids []uuid.UUID) ([]models.Component, error)

func GetConfigsByIDs added in v1.0.324

func GetConfigsByIDs(ctx context.Context, ids []uuid.UUID) ([]models.ConfigItem, error)

func InvalidateCacheByID added in v1.0.743

func InvalidateCacheByID[T any](id string)

InvalidateCacheByID deletes a single item from the getters cache

func OrQueries added in v1.0.555

func OrQueries(db *gorm.DB, queries ...*gorm.DB) *gorm.DB

func ParseFilteringQuery added in v1.0.376

func ParseFilteringQuery(query string, decodeURL bool) (in []interface{}, notIN []interface{}, prefix, suffix []string, err error)

ParseFilteringQuery parses a filtering query string. It returns four slices: 'in', 'notIN', 'prefix', and 'suffix'.

func SetResourceSelectorClause added in v1.0.514

func SetResourceSelectorClause(ctx context.Context, resourceSelector types.ResourceSelector, query *gorm.DB, table string, allowedColumnsAsFields []string) (*gorm.DB, error)

func SortComponentsByField added in v1.0.427

func SortComponentsByField(c models.Components, sortBy TopologyQuerySortBy, asc bool)

func SyncComponentCache added in v1.0.324

func SyncComponentCache(ctx context.Context) error

func SyncConfigCache added in v1.0.318

func SyncConfigCache(ctx context.Context) error

func TraverseConfig added in v1.0.318

func TraverseConfig(ctx context.Context, configID, relationType, direction string) []models.ConfigItem

Types

type CatalogChangesSearchRequest added in v1.0.373

type CatalogChangesSearchRequest struct {
	CatalogID             string `query:"id" json:"id"`
	ConfigType            string `query:"config_type" json:"config_type"`
	ChangeType            string `query:"type" json:"type"`
	Severity              string `query:"severity" json:"severity"`
	IncludeDeletedConfigs bool   `query:"include_deleted_configs" json:"include_deleted_configs"`
	Depth                 int    `query:"depth" json:"depth"`
	CreatedByRaw          string `query:"created_by" json:"created_by"`
	Summary               string `query:"summary" json:"summary"`
	Source                string `query:"source" json:"source"`
	Tags                  string `query:"tags" json:"tags"`

	// To Fetch from a particular agent, provide the agent id.
	// Use `local` keyword to filter by the local agent.
	AgentID string `query:"agent_id" json:"agent_id"`

	// From date in datemath format
	From string `query:"from" json:"from"`
	// To date in datemath format
	To string `query:"to" json:"to"`

	PageSize int    `query:"page_size" json:"page_size"`
	Page     int    `query:"page" json:"page"`
	SortBy   string `query:"sort_by" json:"sort_by"`

	// upstream | downstream | both
	Recursive string `query:"recursive" json:"recursive"`
	// FIXME: Soft toggle does not work with Recursive=both
	// In that case, soft relations are always returned
	// It also returns ALL soft relations throughout the tree
	// not just soft related to the main config item
	Soft bool `query:"soft" json:"soft"`
	// contains filtered or unexported fields
}

func (*CatalogChangesSearchRequest) SetDefaults added in v1.0.379

func (t *CatalogChangesSearchRequest) SetDefaults()

func (CatalogChangesSearchRequest) String added in v1.0.385

func (*CatalogChangesSearchRequest) Validate added in v1.0.373

func (t *CatalogChangesSearchRequest) Validate() error

type CatalogChangesSearchResponse added in v1.0.373

type CatalogChangesSearchResponse struct {
	Summary map[string]int    `json:"summary,omitempty"`
	Total   int64             `json:"total,omitempty"`
	Changes []ConfigChangeRow `json:"changes,omitempty"`
}

func FindCatalogChanges added in v1.0.373

func (*CatalogChangesSearchResponse) Summarize added in v1.0.373

func (t *CatalogChangesSearchResponse) Summarize()

type CheckQueryParams added in v1.0.260

type CheckQueryParams struct {
	Check           string
	CanaryID        string
	Start, End      string
	IncludeMessages bool
	IncludeDetails  bool

	StatusCount    int
	Labels         map[string]string
	Trace          bool
	WindowDuration time.Duration
	// contains filtered or unexported fields
}

func (CheckQueryParams) ExecuteDetails added in v1.0.260

func (q CheckQueryParams) ExecuteDetails(ctx context.Context) ([]Timeseries, types.Uptime, types.Latency, error)

func (CheckQueryParams) GetEndTime added in v1.0.260

func (q CheckQueryParams) GetEndTime() *time.Time

func (CheckQueryParams) GetStartTime added in v1.0.260

func (q CheckQueryParams) GetStartTime() *time.Time

func (CheckQueryParams) GetWhereClause added in v1.0.260

func (q CheckQueryParams) GetWhereClause() (string, map[string]interface{}, error)

func (*CheckQueryParams) Init added in v1.0.260

func (q *CheckQueryParams) Init(queryParams url.Values) error

func (CheckQueryParams) String added in v1.0.260

func (q CheckQueryParams) String() string

func (*CheckQueryParams) Validate added in v1.0.260

func (q *CheckQueryParams) Validate() error

type CheckSummaryOptions

type CheckSummaryOptions struct {
	Timeout    time.Duration
	CheckID    *uuid.UUID
	SortBy     CheckSummarySortBy
	DeleteFrom *time.Time

	// Labels apply to both the canary and check labels
	Labels map[string]string
}

func OrderByName

func OrderByName() CheckSummaryOptions

type CheckSummarySortBy

type CheckSummarySortBy string
var CheckSummarySortByName CheckSummarySortBy = "name"

type ConfigChangeRow added in v1.0.379

type ConfigChangeRow struct {
	AgentID           string              `gorm:"column:agent_id" json:"agent_id"`
	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"`
	CreatedAt         *time.Time          `gorm:"column:created_at" json:"created_at"`
	Count             int                 `gorm:"column:count" json:"count"`
	FirstObserved     *time.Time          `gorm:"column:first_observed" json:"first_observed,omitempty"`
	ConfigName        string              `gorm:"column:name" json:"name,omitempty"`
	ConfigType        string              `gorm:"column:type" json:"type,omitempty"`
	Tags              types.JSONStringMap `gorm:"column:tags" json:"tags,omitempty"`
	CreatedBy         *uuid.UUID          `gorm:"column:created_by" json:"created_by,omitempty"`
	ExternalCreatedBy string              `gorm:"column:external_created_by" json:"external_created_by,omitempty"`
}

type ConfigSummaryRequest added in v1.0.421

type ConfigSummaryRequest struct {
	Changes  ConfigSummaryRequestChanges  `json:"changes"`
	Analysis ConfigSummaryRequestAnalysis `json:"analysis"`
	Cost     string                       `json:"cost"`
	Deleted  bool                         `json:"deleted"`
	Filter   map[string]string            `json:"filter"` // Filter by labels
	GroupBy  []string                     `json:"groupBy"`
	Tags     []string                     `json:"tags"`
	Status   string                       `json:"status"`
	Health   string                       `json:"health"`
}

func (*ConfigSummaryRequest) OrderBy added in v1.0.421

func (t *ConfigSummaryRequest) OrderBy() string

func (*ConfigSummaryRequest) Parse added in v1.0.421

func (t *ConfigSummaryRequest) Parse() error

func (*ConfigSummaryRequest) SetDefaults added in v1.0.421

func (t *ConfigSummaryRequest) SetDefaults()

type ConfigSummaryRequestAnalysis added in v1.0.421

type ConfigSummaryRequestAnalysis struct {
}

type ConfigSummaryRequestChanges added in v1.0.421

type ConfigSummaryRequestChanges struct {
	Since string `json:"since"`
	// contains filtered or unexported fields
}

type GetterOption added in v1.0.324

type GetterOption uint8
const (
	GetterOptionNoCache GetterOption = iota + 1
)

type GetterOptions added in v1.0.324

type GetterOptions []GetterOption

func (GetterOptions) IsSet added in v1.0.324

func (t GetterOptions) IsSet(option GetterOption) bool

type Git added in v1.0.660

type Git struct {
	Link   string `json:"link"`
	File   string `json:"file"`
	Dir    string `json:"dir"`
	URL    string `json:"url"`
	Branch string `json:"branch"`
}

func (*Git) AsMap added in v1.0.660

func (t *Git) AsMap() map[string]any

type GitOpsSource added in v1.0.660

type GitOpsSource struct {
	Git       Git       `json:"git"`
	Kustomize Kustomize `json:"kustomize"`
}

func GetGitOpsSource added in v1.0.660

func GetGitOpsSource(ctx context.Context, id uuid.UUID) (GitOpsSource, error)

func (*GitOpsSource) AsMap added in v1.0.660

func (t *GitOpsSource) AsMap() map[string]any

type Kustomize added in v1.0.660

type Kustomize struct {
	Path string `json:"path"`
	File string `json:"file"`
}

func (*Kustomize) AsMap added in v1.0.660

func (t *Kustomize) AsMap() map[string]any

type RelatedConfig added in v1.0.561

type RelatedConfig struct {
	Relation      string              `json:"relation"`
	RelatedIDs    pq.StringArray      `json:"related_ids" gorm:"type:[]text"`
	ID            uuid.UUID           `json:"id"`
	Name          string              `json:"name"`
	Type          string              `json:"type"`
	Tags          types.JSONStringMap `json:"tags"`
	Changes       int                 `json:"changes,omitempty"`
	Analysis      types.JSON          `json:"analysis,omitempty"`
	CostPerMinute *float64            `json:"cost_per_minute,omitempty"`
	CostTotal1d   *float64            `json:"cost_total_1d,omitempty"`
	CostTotal7d   *float64            `json:"cost_total_7d,omitempty"`
	CostTotal30d  *float64            `json:"cost_total_30d,omitempty"`
	CreatedAt     time.Time           `json:"created_at"`
	UpdatedAt     time.Time           `json:"updated_at"`
	DeletedAt     *time.Time          `json:"deleted_at"`
	AgentID       uuid.UUID           `json:"agent_id"`
	Status        *string             `json:"status" gorm:"default:null"`
	Ready         bool                `json:"ready"`
	Health        *models.Health      `json:"health"`
	Path          string              `json:"path"`
}

func GetRelatedConfigs added in v1.0.561

func GetRelatedConfigs(ctx context.Context, query RelationQuery) ([]RelatedConfig, error)

type RelationDirection added in v1.0.561

type RelationDirection string

type RelationQuery added in v1.0.561

type RelationQuery struct {
	ID             uuid.UUID
	Relation       RelationDirection
	Incoming       RelationType
	Outgoing       RelationType
	IncludeDeleted bool
	MaxDepth       *int
}

type RelationType added in v1.0.561

type RelationType string

type SearchResourcesRequest added in v1.0.392

type SearchResourcesRequest struct {
	// Limit the number of results returned per resource type
	Limit int `json:"limit"`

	Checks     []types.ResourceSelector `json:"checks"`
	Components []types.ResourceSelector `json:"components"`
	Configs    []types.ResourceSelector `json:"configs"`
}

type SearchResourcesResponse added in v1.0.402

type SearchResourcesResponse struct {
	Checks     []SelectedResource `json:"checks,omitempty"`
	Components []SelectedResource `json:"components,omitempty"`
	Configs    []SelectedResource `json:"configs,omitempty"`
}

func SearchResources added in v1.0.392

func (*SearchResourcesResponse) GetIDs added in v1.0.561

func (r *SearchResourcesResponse) GetIDs() []string

type SelectedResource added in v1.0.401

type SelectedResource struct {
	ID        string            `json:"id"`
	Agent     string            `json:"agent"`
	Icon      string            `json:"icon,omitempty"`
	Name      string            `json:"name"`
	Namespace string            `json:"namespace"`
	Type      string            `json:"type"`
	Tags      map[string]string `json:"tags,omitempty"`
}

type Tags

type Tags map[string][]string

Map of tag keys to the list of available values

type Timeseries added in v1.0.260

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"`
	Passed int `json:"passed,omitempty"`
	Failed int `json:"failed,omitempty"`
}

type TopologyOptions

type TopologyOptions struct {
	ID      string
	Owner   string
	Labels  map[string]string
	AgentID string
	Flatten bool
	Depth   int
	// TODO: Filter status and types in DB Query
	Types  []string
	Status []string

	SortBy    TopologyQuerySortBy
	SortOrder string
	NoCache   bool
	// contains filtered or unexported fields
}

func (TopologyOptions) CacheKey added in v1.0.317

func (opt TopologyOptions) CacheKey() string

func (TopologyOptions) String

func (opt TopologyOptions) String() string

type TopologyQuerySortBy added in v1.0.298

type TopologyQuerySortBy string
const (
	TopologyQuerySortByName  TopologyQuerySortBy = "name"
	TopologyQuerySortByField TopologyQuerySortBy = "field:"
)

type TopologyResponse

type TopologyResponse struct {
	Components     models.Components `json:"components"`
	HealthStatuses []string          `json:"healthStatuses"`
	Teams          []string          `json:"teams"`
	Tags           Tags              `json:"tags"`
	Types          []string          `json:"types"`
}

func Topology

func Topology(ctx context.Context, params TopologyOptions) (*TopologyResponse, error)

Jump to

Keyboard shortcuts

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