monitor

package
v0.0.0-...-d25dbbd Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TargetTypeServer     = "server"
	TargetTypeApp        = "app"
	TargetTypeContainer  = "container"
	TargetTypeResource   = "resource"
	TargetTypePlatform   = "platform"
	TargetTypeAIProvider = "ai_provider"
	TargetTypeConnector  = "connector"
)
View Source
const (
	StatusHealthy           = "healthy"
	StatusDegraded          = "degraded"
	StatusOffline           = "offline"
	StatusUnreachable       = "unreachable"
	StatusCredentialInvalid = "credential_invalid" // #nosec G101 -- symbolic monitor status, not a credential
	StatusUnknown           = "unknown"
)
View Source
const (
	SignalSourceCollector   = "monitor_collector"
	SignalSourceAppOS       = "appos_active_check"
	SignalSourceSelf        = "appos_self"
	SignalSourceInventory   = "appos_inventory"
	MetricsFreshnessFresh   = "fresh"
	MetricsFreshnessStale   = "stale"
	MetricsFreshnessMissing = "missing"
	MetricsFreshnessUnknown = "unknown"
)
View Source
const (
	MetricsStaleThreshold   = 90 * time.Second
	MetricsMissingThreshold = 180 * time.Second
)
View Source
const (
	CheckKindCredential          = "credential"
	CheckKindAppHealth           = "app_health"
	CheckKindRuntime             = "runtime_summary"
	CheckKindAvailability        = "availability"
	CheckKindReachability        = "reachability"
	CheckKindMetricsFreshness    = "metrics_freshness"
	CheckKindControlReachability = "control_reachability"
	CheckKindFactsSnapshot       = "facts_snapshot"
)
View Source
const (
	SettingsModule                     = "monitor"
	SchedulingSettingsKey              = "scheduling"
	PolicySettingsKey                  = "policy"
	PlatformSelfObservationSettingsKey = "platform-self-observation"
	ManagedCollectorPolicySettingsKey  = "managed-collector-policy"
	ReachabilityIntervalMinMinutes     = 60
	ReachabilityIntervalMaxMinutes     = 1440
	ReachabilityIntervalStepMinutes    = 60
)

Variables

This section is empty.

Functions

func AppHealthOutcomeFromRuntimeState

func AppHealthOutcomeFromRuntimeState(runtimeState string) string

func IsStrongerFailure

func IsStrongerFailure(existingStatus, nextStatus string, priorityMap map[string]int) bool

IsStrongerFailure reports whether existingStatus has a higher priority (more severe) than nextStatus.

func LoadLocalServiceLog

func LoadLocalServiceLog(service swcatalog.LocalService, stream string, maxBytes int) (string, bool, error)

func NormalizeReachabilityIntervalMinutes

func NormalizeReachabilityIntervalMinutes(value int) int

func NormalizeSchedulingMap

func NormalizeSchedulingMap(value map[string]any) map[string]any

func RuntimeSummaryOutcomeFromRuntimeState

func RuntimeSummaryOutcomeFromRuntimeState(runtimeState string) string

func StatusPriorityWithMap

func StatusPriorityWithMap(status string, priorityMap map[string]int) int

StatusPriorityWithMap returns the numeric priority for a status string. Higher values indicate more severe failures. A custom priorityMap takes precedence over defaults.

Types

type AppHealthTargetPolicy

type AppHealthTargetPolicy struct {
	StatusMap     map[string]string `json:"statusMap,omitempty"`
	ReasonMap     map[string]string `json:"reasonMap,omitempty"`
	ReasonCodeMap map[string]string `json:"reasonCodeMap,omitempty"`
}

type CanonicalSignalEvent

type CanonicalSignalEvent struct {
	TargetType              string
	TargetID                string
	DisplayName             string
	Status                  string
	Reason                  string
	SignalSource            string
	ObservedAt              time.Time
	LastSuccessAt           *time.Time
	LastFailureAt           *time.Time
	LastCheckedAt           *time.Time
	LastReportedAt          *time.Time
	ConsecutiveFailures     *int
	Summary                 map[string]any
	StatusPriorityMap       map[string]int
	PreserveStrongerFailure bool
}

type CredentialTargetPolicy

type CredentialTargetPolicy struct {
	RequireCredential bool              `json:"requireCredential,omitempty"`
	StatusMap         map[string]string `json:"statusMap,omitempty"`
	ReasonMap         map[string]string `json:"reasonMap,omitempty"`
	ReasonCodeMap     map[string]string `json:"reasonCodeMap,omitempty"`
}

type LocalServiceObservation

type LocalServiceObservation struct {
	Name           string
	Lifecycle      string
	Visibility     string
	State          string
	PID            int
	Uptime         int64
	CPU            float64
	Memory         int64
	LastDetectedAt string
	LogAvailable   bool
}

func ObserveLocalServices

func ObserveLocalServices(registry *swcatalog.LocalRegistry) []LocalServiceObservation

type ManagedCollectorPolicySettings

type ManagedCollectorPolicySettings struct {
	CollectionInterval time.Duration
	FlushInterval      time.Duration
	MetricBatchSize    int
	MetricBufferLimit  int
	CollectionJitter   time.Duration
	FlushJitter        time.Duration
}

func DefaultManagedCollectorPolicySettings

func DefaultManagedCollectorPolicySettings() ManagedCollectorPolicySettings

func LoadManagedCollectorPolicySettings

func LoadManagedCollectorPolicySettings(app core.App) ManagedCollectorPolicySettings

type PlatformSelfObservationSettings

type PlatformSelfObservationSettings struct {
	PlatformObserverInterval time.Duration
	SchedulerStaleThreshold  time.Duration
	EnableHostTelemetry      bool
	EnableContainerTelemetry bool
}

func DefaultPlatformSelfObservationSettings

func DefaultPlatformSelfObservationSettings() PlatformSelfObservationSettings

func LoadPlatformSelfObservationRuntimeSettings

func LoadPlatformSelfObservationRuntimeSettings(app core.App, hostTelemetryFallback, containerTelemetryFallback bool) PlatformSelfObservationSettings

func LoadPlatformSelfObservationSettings

func LoadPlatformSelfObservationSettings(app core.App) PlatformSelfObservationSettings

type PolicySettings

type PolicySettings struct {
	ReachabilityProbeTimeout time.Duration
	MetricsFreshnessLookback time.Duration
	MetricsStaleThreshold    time.Duration
	MetricsMissingThreshold  time.Duration
	ControlProbeTimeout      time.Duration
	FactsPullTimeout         time.Duration
	RuntimePullTimeout       time.Duration
	FactsPullConcurrency     int
	RuntimePullConcurrency   int
}

func DefaultPolicySettings

func DefaultPolicySettings() PolicySettings

func LoadPolicySettings

func LoadPolicySettings(app core.App) PolicySettings

type ReachabilityTargetPolicy

type ReachabilityTargetPolicy struct {
	RequireEndpoint bool              `json:"requireEndpoint,omitempty"`
	StatusMap       map[string]string `json:"statusMap,omitempty"`
	ReasonMap       map[string]string `json:"reasonMap,omitempty"`
	ReasonCodeMap   map[string]string `json:"reasonCodeMap,omitempty"`
}

type ResolvedInstanceTarget

type ResolvedInstanceTarget struct {
	Entry TargetRegistryEntry
	Item  *instances.Instance
}

func ResolveInstanceTarget

func ResolveInstanceTarget(item *instances.Instance) (ResolvedInstanceTarget, bool, error)

func (ResolvedInstanceTarget) CredentialReasonCodeFor

func (r ResolvedInstanceTarget) CredentialReasonCodeFor(outcome string, fallback string) string

func (ResolvedInstanceTarget) CredentialReasonFor

func (r ResolvedInstanceTarget) CredentialReasonFor(outcome string, fallback string) string

func (ResolvedInstanceTarget) CredentialStatusFor

func (r ResolvedInstanceTarget) CredentialStatusFor(outcome string) string

func (ResolvedInstanceTarget) EligibleForCredential

func (r ResolvedInstanceTarget) EligibleForCredential() (bool, string)

func (ResolvedInstanceTarget) EligibleForReachability

func (r ResolvedInstanceTarget) EligibleForReachability() (bool, string)

func (ResolvedInstanceTarget) ReachabilityReasonCodeFor

func (r ResolvedInstanceTarget) ReachabilityReasonCodeFor(outcome string, fallback string) string

func (ResolvedInstanceTarget) ReachabilityReasonFor

func (r ResolvedInstanceTarget) ReachabilityReasonFor(outcome string, fallback string) string

func (ResolvedInstanceTarget) ReachabilityStatusFor

func (r ResolvedInstanceTarget) ReachabilityStatusFor(outcome string) string

func (ResolvedInstanceTarget) StatusPriorityFor

func (r ResolvedInstanceTarget) StatusPriorityFor(status string) int

func (ResolvedInstanceTarget) SupportsCheck

func (r ResolvedInstanceTarget) SupportsCheck(checkKind string) bool

type RuntimeSummaryTargetPolicy

type RuntimeSummaryTargetPolicy struct {
	StatusMap     map[string]string `json:"statusMap,omitempty"`
	ReasonMap     map[string]string `json:"reasonMap,omitempty"`
	ReasonCodeMap map[string]string `json:"reasonCodeMap,omitempty"`
}

type SchedulingSettings

type SchedulingSettings struct {
	ReachabilityIntervalMinutes        int
	MetricsFreshnessIntervalMinutes    int
	ControlReachabilityIntervalMinutes int
	RuntimeSnapshotIntervalMinutes     int
	CredentialSweepIntervalMinutes     int
	AppHealthIntervalMinutes           int
	FactsPullIntervalMinutes           int
}

func DefaultSchedulingSettings

func DefaultSchedulingSettings() SchedulingSettings

func LoadSchedulingSettings

func LoadSchedulingSettings(app core.App) SchedulingSettings

type TargetCheckPolicies

type TargetCheckPolicies struct {
	Reachability *ReachabilityTargetPolicy   `json:"reachability,omitempty"`
	Credential   *CredentialTargetPolicy     `json:"credential,omitempty"`
	AppHealth    *AppHealthTargetPolicy      `json:"app_health,omitempty"`
	Runtime      *RuntimeSummaryTargetPolicy `json:"runtime_summary,omitempty"`
}

type TargetRegistryEntry

type TargetRegistryEntry struct {
	ID             string              `json:"id"`
	TargetType     string              `json:"targetType"`
	Kind           string              `json:"kind,omitempty"`
	Traits         []string            `json:"traits,omitempty"`
	TemplateIDs    []string            `json:"templateIds,omitempty"`
	SignalSources  []string            `json:"signalSources,omitempty"`
	EnabledChecks  []string            `json:"enabledChecks,omitempty"`
	StatusPriority map[string]int      `json:"statusPriority,omitempty"`
	Checks         TargetCheckPolicies `json:"checks,omitempty"`
}

func MonitoringTargetRegistry

func MonitoringTargetRegistry() ([]TargetRegistryEntry, error)

func ResolveAppBaselineTarget

func ResolveAppBaselineTarget() TargetRegistryEntry

func ResolveTargetRegistryEntry

func ResolveTargetRegistryEntry(targetType, kind, templateID string) (TargetRegistryEntry, bool, error)

func (TargetRegistryEntry) AppHealthReasonCodeFor

func (e TargetRegistryEntry) AppHealthReasonCodeFor(outcome string, fallback string) string

func (TargetRegistryEntry) AppHealthReasonFor

func (e TargetRegistryEntry) AppHealthReasonFor(outcome string, fallback string) string

func (TargetRegistryEntry) AppHealthStatusFor

func (e TargetRegistryEntry) AppHealthStatusFor(outcome string) string

func (TargetRegistryEntry) RuntimeReasonCodeFor

func (e TargetRegistryEntry) RuntimeReasonCodeFor(outcome string, fallback string) string

func (TargetRegistryEntry) RuntimeReasonFor

func (e TargetRegistryEntry) RuntimeReasonFor(outcome string, fallback string) string

func (TargetRegistryEntry) RuntimeStatusFor

func (e TargetRegistryEntry) RuntimeStatusFor(outcome string) string

func (TargetRegistryEntry) StatusPriorityFor

func (e TargetRegistryEntry) StatusPriorityFor(status string) int

Directories

Path Synopsis
signals

Jump to

Keyboard shortcuts

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