metrics

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ResourcesMetricsCollector

type ResourcesMetricsCollector struct {
	logr.Logger
	etc.Config
	vuloperator.ConfigData
	client.Client
	// contains filtered or unexported fields
}

ResourcesMetricsCollector is a custom Prometheus collector that produces metrics on-demand from the vul-operator custom resources. Since these resources are already cached by the Kubernetes API client shared with the operator, metrics scrapes should never actually hit the API server. All resource reads are served from cache, reducing API server load without consuming additional cluster resources. An alternative (more traditional) approach would be to maintain metrics in the internal Prometheus registry on resource reconcile. The collector approach was selected in order to avoid potentially stale metrics; i.e. the controller would have to reconcile all resources at least once for the metrics to be up-to-date, which could take some time in large clusters. Also deleting metrics from registry for obsolete/deleted resources is challenging without introducing finalizers, which we want to avoid for operational reasons.

For more advanced use-cases, and/or very large clusters, this internal collector can be disabled and replaced by https://github.com/giantswarm/starboard-exporter, which collects vul metrics from a dedicated workload supporting sharding etc.

func NewResourcesMetricsCollector

func NewResourcesMetricsCollector(logger logr.Logger, config etc.Config, trvConfig vuloperator.ConfigData, clt client.Client) *ResourcesMetricsCollector

func (ResourcesMetricsCollector) Collect

func (c ResourcesMetricsCollector) Collect(metrics chan<- prometheus.Metric)

func (ResourcesMetricsCollector) Describe

func (c ResourcesMetricsCollector) Describe(descs chan<- *prometheus.Desc)

func (ResourcesMetricsCollector) NeedLeaderElection

func (c ResourcesMetricsCollector) NeedLeaderElection() bool

func (*ResourcesMetricsCollector) SetupWithManager

func (c *ResourcesMetricsCollector) SetupWithManager(mgr ctrl.Manager) error

func (ResourcesMetricsCollector) Start

type SeverityLabel

type SeverityLabel struct {
	Severity v1alpha1.Severity
	Label    string
}

func NewSeverityLabel

func NewSeverityLabel(severity v1alpha1.Severity) SeverityLabel

func SeverityCritical

func SeverityCritical() SeverityLabel

func SeverityHigh

func SeverityHigh() SeverityLabel

func SeverityLow

func SeverityLow() SeverityLabel

func SeverityMedium

func SeverityMedium() SeverityLabel

func SeverityUnknown

func SeverityUnknown() SeverityLabel

type Status

type Status string
const (
	FailStatus Status = "FAIL"
	PassStatus Status = "PASS"
)

type StatusLabel

type StatusLabel struct {
	Status Status
	Label  string
}

func NewStatusLabel

func NewStatusLabel(status Status) StatusLabel

func StatusFail

func StatusFail() StatusLabel

func StatusPass

func StatusPass() StatusLabel

Jump to

Keyboard shortcuts

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