Documentation
¶
Index ¶
Constants ¶
const ( // HealthCheckBy is a constant for a label to describe the component performing Prometheus health checks. HealthCheckBy = "health-check-by" // GardenerOperator is a constant for the health-check-by label describing the gardener-operator component. GardenerOperator = "gardener-operator" // Gardenlet is a constant for the health-check-by label describing the gardenlet component. Gardenlet = "gardenlet" )
Variables ¶
var TimeoutWaitForManagedResource = 5 * time.Minute
TimeoutWaitForManagedResource is the timeout used while waiting for the ManagedResources to become healthy or deleted.
Functions ¶
func CentralLoggingConfiguration ¶ added in v1.95.0
func CentralLoggingConfiguration() (component.CentralLoggingConfig, error)
CentralLoggingConfiguration returns a fluent-bit parser and filter for the monitoring logs.
func ServicePorts ¶
func ServicePorts() struct {
Web corev1.ServicePort
Cortex corev1.ServicePort
}
ServicePorts returns the service ports configuration for a Prometheus service.
Types ¶
type AlertingValues ¶
type AlertingValues struct {
// Alertmanagers is a slice containing the alertmanager names (and namespaces) to which alerts should be sent.
Alertmanagers []*Alertmanager
// AdditionalAlertmanager contains the data of the 'alerting' secret (url, credentials, etc.).
AdditionalAlertmanager map[string][]byte
}
AlertingValues contains alerting configuration for this Prometheus instance.
type Alertmanager ¶ added in v1.95.3
type Alertmanager struct {
// Name is the name of the alertmanager to which alerts should be sent.
Name string
// Namespace is the namespace of the alertmanager to which alerts should be sent.
// If not set, the namespace of the Prometheus instance is used.
Namespace *string
}
Alertmanager contains the name and namespace of an alertmanager to which alerts should be sent.
type CentralConfigs ¶
type CentralConfigs struct {
// AdditionalScrapeConfigs are additional scrape configs which cannot be modelled with the CRDs of the Prometheus
// operator.
AdditionalScrapeConfigs []string
// PrometheusRules is a list of central PrometheusRule objects for this prometheus instance.
PrometheusRules []*monitoringv1.PrometheusRule
// ScrapeConfigs is a list of central ScrapeConfig objects for this prometheus instance.
ScrapeConfigs []*monitoringv1alpha1.ScrapeConfig
// ServiceMonitors is a list of central ServiceMonitor objects for this prometheus instance.
ServiceMonitors []*monitoringv1.ServiceMonitor
// PodMonitors is a list of central PodMonitor objects for this prometheus instance.
PodMonitors []*monitoringv1.PodMonitor
}
CentralConfigs contains configuration for this Prometheus instance that is created together with it. This should only contain configuration that cannot be directly assigned to another component package.
type CortexValues ¶ added in v1.94.0
type CortexValues struct {
// Image defines the container image of cortex.
Image string
// CacheValidity defines the validity of the FIFO cache.
CacheValidity time.Duration
}
CortexValues contains configuration for the cortex frontend sidecar container.
type IngressValues ¶
type IngressValues struct {
// AuthSecretName is the name of the auth secret.
AuthSecretName string
// Host is the hostname under which the Prometheus instance should be exposed.
Host string
// SecretsManager is the secrets manager used for generating the TLS certificate if no wildcard certificate is
// provided.
SecretsManager secretsmanager.Interface
// SigningCA is the name of the CA that should be used the sign a self-signed server certificate. Only needed when
// no wildcard certificate secret is provided.
SigningCA string
// WildcardCertSecretName is name of a secret containing the wildcard TLS certificate which is issued for the
// ingress domain. If not provided, a self-signed server certificate will be created.
WildcardCertSecretName *string
// BlockManagementAndTargetAPIAccess controls whether access to the management and target APIs is blocked when
// accessing Prometheus via ingress.
BlockManagementAndTargetAPIAccess bool
}
IngressValues contains configuration for exposing this Prometheus instance via an Ingress resource.
type Interface ¶ added in v1.93.0
type Interface interface {
component.DeployWaiter
// SetIngressAuthSecret sets the ingress authentication secret name.
SetIngressAuthSecret(*corev1.Secret)
// SetIngressWildcardCertSecret sets the ingress wildcard certificate secret name.
SetIngressWildcardCertSecret(*corev1.Secret)
// SetCentralScrapeConfigs sets the central scrape configs.
SetCentralScrapeConfigs([]*monitoringv1alpha1.ScrapeConfig)
// SetCentralPrometheusRules sets the central Prometheus rules.
SetCentralPrometheusRules([]*monitoringv1.PrometheusRule)
// SetNamespaceUID sets the namespace UID.
SetNamespaceUID(name types.UID)
// SetAdditionalAlertRelabelConfigs sets the additional alert relabel configs.
SetAdditionalAlertRelabelConfigs([]monitoringv1.RelabelConfig)
}
Interface contains functions for a Prometheus deployer.
type RemoteWriteValues ¶ added in v1.95.0
type RemoteWriteValues struct {
// URL is the remote url.
URL string
// KeptMetrics is a list of metrics to keep.
KeptMetrics []string
// GlobalShootRemoteWriteSecret is a secret containing basic auth credentials for the remote write endpoint.
GlobalShootRemoteWriteSecret *corev1.Secret
}
RemoteWriteValues contains remote write configuration for this Prometheus instance.
type TargetClusterValues ¶ added in v1.95.0
type TargetClusterValues struct {
// ServiceAccountName is the name of the ServiceAccount.
ServiceAccountName string
// ScrapesMetrics specifies whether this Prometheus has scrape configs for scraping metrics from components running
// in the target cluster.
ScrapesMetrics bool
}
TargetClusterValues contains configuration in case Prometheus scrapes metrics from another kube-apiserver (e.g., virtual garden, or shoot cluster) or other components running in this cluster.
type Values ¶
type Values struct {
// Name is the name of the prometheus. It will be used for the resource names of Prometheus and ManagedResource.
Name string
// Image defines the container image of prometheus.
Image string
// Version is the version of prometheus.
Version string
// ClusterType is the type of the cluster.
ClusterType component.ClusterType
// PriorityClassName is the name of the priority class for the deployment.
PriorityClassName string
// StorageCapacity is the storage capacity of Prometheus.
StorageCapacity resource.Quantity
// Replicas is the number of replicas.
Replicas int32
// Retention is the duration for the data retention.
Retention *monitoringv1.Duration
// RetentionSize is the size for the data retention.
RetentionSize monitoringv1.ByteSize
// RuntimeVersion is the Kubernetes version of the runtime cluster.
RuntimeVersion *semver.Version
// ScrapeTimeout is the timeout duration when scraping targets.
ScrapeTimeout monitoringv1.Duration
// VPAMinAllowed defines the resource list for the minAllowed field for the prometheus container resource policy.
VPAMinAllowed *corev1.ResourceList
// ExternalLabels is the set of external labels for the Prometheus configuration.
ExternalLabels map[string]string
// AdditionalPodLabels is a map containing additional labels for the created pods.
AdditionalPodLabels map[string]string
// NamespaceUID is the UID of the namespace.
NamespaceUID *types.UID
// CentralConfigs contains configuration for this Prometheus instance that is created together with it. This should
// only contain configuration that cannot be directly assigned to another component package.
CentralConfigs CentralConfigs
// IngressValues contains configuration for exposing this Prometheus instance via an Ingress resource.
Ingress *IngressValues
// Alerting contains alerting configuration for this Prometheus instance.
Alerting *AlertingValues
// RemoteWrite contains remote write configuration for this Prometheus instance.
RemoteWrite *RemoteWriteValues
// AdditionalResources contains any additional resources which get added to the ManagedResource.
AdditionalResources []client.Object
// Cortex contains configuration for the cortex frontend sidecar container.
Cortex *CortexValues
// TargetCluster contains configuration in case Prometheus scrapes metrics from another kube-apiserver (e.g.,
// virtual garden, or shoot cluster) or other components running in this cluster.
TargetCluster *TargetClusterValues
// AdditionalAlertRelabelConfigs contains additional alert relabel configurations.
AdditionalAlertRelabelConfigs []monitoringv1.RelabelConfig
// RestrictToNamespace controls whether the Prometheus instance should only scrape its targets in its own namespace.
RestrictToNamespace bool
// ResourceRequests defines the initial resource requests
ResourceRequests *corev1.ResourceList
// HealthCheckBy is the value of the health-check-by label for the Prometheus resource.
HealthCheckBy string
}
Values contains configuration values for the prometheus resources.