upstream

package
v1.0.281 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2024 License: Apache-2.0 Imports: 22 Imported by: 8

Documentation

Index

Constants

View Source
const EventPushQueueCreate = "push_queue.create"

Variables

This section is empty.

Functions

func GetOrCreateAgent added in v1.0.274

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

func InsertUpstreamMsg added in v1.0.274

func InsertUpstreamMsg(ctx context.Context, req *PushData) error

func NewPushUpstreamConsumer added in v1.0.265

func NewPushUpstreamConsumer(config UpstreamConfig) func(ctx context.Context, events postq.Events) postq.Events

getPushUpstreamConsumer acts as an adapter to supply PushToUpstream event consumer.

func PullHandler added in v1.0.274

func PullHandler(allowedTables []string) func(echo.Context) error

PullHandler returns a handler that returns all the ids of items it has received from the requested agent.

func PushHandler added in v1.0.274

func PushHandler(agentIDCache *cache.Cache) func(echo.Context) error

PushHandler returns an echo handler that saves the push data from agents.

func PushToUpstream added in v1.0.188

func PushToUpstream(ctx context.Context, config UpstreamConfig, events []postq.Event) []postq.Event

PushToUpstream fetches records specified in events from this instance and sends them to the upstream instance.

func StatusHandler added in v1.0.274

func StatusHandler(allowedTables []string) func(echo.Context) error

StatusHandler returns a handler that returns the summary of all ids the upstream has received.

func SyncCheckStatuses added in v1.0.195

func SyncCheckStatuses(ctx context.Context, config UpstreamConfig, batchSize int) (int, error)

SyncCheckStatuses pushes check statuses, that haven't already been pushed, to upstream.

func SyncConfigAnalyses added in v1.0.274

func SyncConfigAnalyses(ctx context.Context, config UpstreamConfig, batchSize int) (int, error)

SyncConfigAnalyses pushes config analyses, that haven't already been pushed, to upstream.

func SyncConfigChanges added in v1.0.274

func SyncConfigChanges(ctx context.Context, config UpstreamConfig, batchSize int) (int, error)

SyncConfigChanges pushes config changes, that haven't already been pushed, to upstream.

Types

type GroupedPushEvents added in v1.0.188

type GroupedPushEvents struct {
	TableName string
	ItemIDs   [][]string
	Events    postq.Events
}

func GroupChangelogsByTables added in v1.0.188

func GroupChangelogsByTables(events []postq.Event) []GroupedPushEvents

GroupChangelogsByTables groups the given events by the table they belong to.

type PaginateRequest

type PaginateRequest struct {
	Table string `query:"table"`
	From  string `query:"from"`
	Size  int    `query:"size"`
}

func (PaginateRequest) String added in v1.0.259

func (p PaginateRequest) String() string

type PaginateResponse

type PaginateResponse struct {
	Hash  string `gorm:"column:sha256sum"`
	Next  string `gorm:"column:last_id"`
	Total int    `gorm:"column:total"`
}

func GetPrimaryKeysHash

func GetPrimaryKeysHash(ctx context.Context, req PaginateRequest, agentID uuid.UUID) (*PaginateResponse, error)

func (PaginateResponse) String added in v1.0.259

func (p PaginateResponse) String() string

type PushData

type PushData struct {
	AgentName                    string                               `json:"agent_name,omitempty"`
	Canaries                     []models.Canary                      `json:"canaries,omitempty"`
	Checks                       []models.Check                       `json:"checks,omitempty"`
	Components                   []models.Component                   `json:"components,omitempty"`
	ConfigScrapers               []models.ConfigScraper               `json:"config_scrapers,omitempty"`
	ConfigAnalysis               []models.ConfigAnalysis              `json:"config_analysis,omitempty"`
	ConfigChanges                []models.ConfigChange                `json:"config_changes,omitempty"`
	ConfigItems                  []models.ConfigItem                  `json:"config_items,omitempty"`
	CheckStatuses                []models.CheckStatus                 `json:"check_statuses,omitempty"`
	ConfigRelationships          []models.ConfigRelationship          `json:"config_relationships,omitempty"`
	ComponentRelationships       []models.ComponentRelationship       `json:"component_relationships,omitempty"`
	ConfigComponentRelationships []models.ConfigComponentRelationship `json:"config_component_relationships,omitempty"`
	Topologies                   []models.Topology                    `json:"topologies,omitempty"`
}

PushData consists of data about changes to components, configs, analysis.

func GetMissingResourceIDs

func GetMissingResourceIDs(ctx context.Context, ids []string, paginateReq PaginateRequest) (*PushData, error)

func (*PushData) ApplyLabels

func (t *PushData) ApplyLabels(labels map[string]string)

ApplyLabels injects additional labels to the suitable fields

func (*PushData) Attributes added in v1.0.205

func (p *PushData) Attributes() map[string]any

func (*PushData) Count

func (t *PushData) Count() int

func (*PushData) Length added in v1.0.259

func (p *PushData) Length() int

func (*PushData) PopulateAgentID

func (t *PushData) PopulateAgentID(id uuid.UUID)

PopulateAgentID sets agent_id on all the data

func (*PushData) ReplaceTopologyID

func (t *PushData) ReplaceTopologyID(id *uuid.UUID)

ReplaceTopologyID replaces the topology_id for all the components with the provided id.

func (*PushData) String

func (p *PushData) String() string

type UpstreamClient added in v1.0.192

type UpstreamClient struct {
	*http.Client
}

func NewUpstreamClient added in v1.0.192

func NewUpstreamClient(config UpstreamConfig) *UpstreamClient

func (*UpstreamClient) Push added in v1.0.192

func (t *UpstreamClient) Push(ctx context.Context, msg *PushData) error

Push uploads the given push message to the upstream server.

type UpstreamConfig

type UpstreamConfig struct {
	AgentName          string
	Host               string
	InsecureSkipVerify bool
	Username           string
	Password           string
	Labels             []string
	Debug              bool
	Options            []func(c *http.Client)
}

func (*UpstreamConfig) IsPartiallyFilled

func (t *UpstreamConfig) IsPartiallyFilled() bool

func (*UpstreamConfig) LabelsMap

func (t *UpstreamConfig) LabelsMap() map[string]string

func (UpstreamConfig) String added in v1.0.259

func (t UpstreamConfig) String() string

func (*UpstreamConfig) Valid

func (t *UpstreamConfig) Valid() bool

type UpstreamReconciler added in v1.0.265

type UpstreamReconciler struct {
	// contains filtered or unexported fields
}

UpstreamReconciler pushes missing resources from an agent to the upstream.

func NewUpstreamReconciler

func NewUpstreamReconciler(upstreamConf UpstreamConfig, pageSize int) *UpstreamReconciler

func (*UpstreamReconciler) Sync added in v1.0.265

func (t *UpstreamReconciler) Sync(ctx context.Context, table string) (int, error)

Sync compares all the resource of the given table against the upstream server and pushes any missing resources to the upstream.

func (*UpstreamReconciler) SyncAfter added in v1.0.265

func (t *UpstreamReconciler) SyncAfter(ctx context.Context, table string, after time.Duration) (int, error)

SyncAfter pushes all the records of the given table that were updated in the given duration

Jump to

Keyboard shortcuts

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