Documentation
¶
Index ¶
- Constants
- Variables
- func BuildCommonPrometheusArgs(cpf monitoringv1.CommonPrometheusFields, cg *ConfigGenerator, ...) []monitoringv1.Argument
- func BuildCommonVolumes(p monitoringv1.PrometheusInterface, tlsAssetSecrets []string) ([]v1.Volume, []v1.VolumeMount, error)
- func BuildPodMetadata(cpf monitoringv1.CommonPrometheusFields, cg *ConfigGenerator) (map[string]string, map[string]string)
- func CompareScrapeTimeoutToScrapeInterval(scrapeTimeout, scrapeInterval monitoringv1.Duration) error
- func ConfigSecretName(p monitoringv1.PrometheusInterface) string
- func ExpectedStatefulSetShardNames(p monitoringv1.PrometheusInterface) []string
- func KeyToStatefulSetKey(p monitoringv1.PrometheusInterface, key string, shard int) string
- func MakeConfigSecret(p monitoringv1.PrometheusInterface, config operator.Config) *v1.Secret
- func MakeEmptyConfigurationSecret(p monitoringv1.PrometheusInterface, config operator.Config) (*v1.Secret, error)
- func NewTLSAssetSecret(p monitoringv1.PrometheusInterface, labels map[string]string) *v1.Secret
- func ProbeHandler(probePath string, cpf monitoringv1.CommonPrometheusFields, ...) v1.ProbeHandler
- func StatefulSetKeyToPrometheusKey(key string) (bool, string)
- func SubPathForStorage(s *monitoringv1.StorageSpec) string
- func TLSAssetsSecretName(p monitoringv1.PrometheusInterface) string
- func UsesDefaultQueryLogVolume(queryLogFile string) bool
- func ValidateRemoteWriteSpec(spec monitoringv1.RemoteWriteSpec) error
- func VolumeName(p monitoringv1.PrometheusInterface) string
- func WebConfigSecretName(p monitoringv1.PrometheusInterface) string
- type Collector
- type ConfigGenerator
- func (cg *ConfigGenerator) AddHonorLabels(cfg yaml.MapSlice, honorLabels bool) yaml.MapSlice
- func (cg *ConfigGenerator) AddHonorTimestamps(cfg yaml.MapSlice, userHonorTimestamps *bool) yaml.MapSlice
- func (cg *ConfigGenerator) AddLimitsToYAML(cfg yaml.MapSlice, k limitKey, limit uint64, enforcedLimit *uint64) yaml.MapSlice
- func (cg *ConfigGenerator) AppendCommandlineArgument(m []monitoringv1.Argument, argument monitoringv1.Argument) []monitoringv1.Argument
- func (cg *ConfigGenerator) AppendMapItem(m yaml.MapSlice, k string, v interface{}) yaml.MapSlice
- func (cg *ConfigGenerator) EndpointSliceSupported() bool
- func (cg *ConfigGenerator) GenerateAgentConfiguration(sMons map[string]*v1.ServiceMonitor, pMons map[string]*v1.PodMonitor, ...) ([]byte, error)
- func (cg *ConfigGenerator) GenerateServerConfiguration(evaluationInterval v1.Duration, queryLogFile string, ...) ([]byte, error)
- func (cg *ConfigGenerator) IsCompatible() bool
- func (cg *ConfigGenerator) Warn(field string)
- func (cg *ConfigGenerator) WithKeyVals(keyvals ...interface{}) *ConfigGenerator
- func (cg *ConfigGenerator) WithMaximumVersion(version string) *ConfigGenerator
- func (cg *ConfigGenerator) WithMinimumVersion(version string) *ConfigGenerator
- type ListAllByNamespacer
- type ResourceSelector
- func (rs *ResourceSelector) SelectPodMonitors(ctx context.Context) (map[string]*monitoringv1.PodMonitor, error)
- func (rs *ResourceSelector) SelectProbes(ctx context.Context) (map[string]*monitoringv1.Probe, error)
- func (rs *ResourceSelector) SelectServiceMonitors(ctx context.Context) (map[string]*monitoringv1.ServiceMonitor, error)
Constants ¶
const ( StorageDir = "/prometheus" ConfDir = "/etc/prometheus/config" ConfOutDir = "/etc/prometheus/config_out" WebConfigDir = "/etc/prometheus/web_config" //TODO: RulesDir should be moved to the server package, since it is not used by the agent. // It is here at the moment because promcfg uses it, and moving as is will cause import cycle error. RulesDir = "/etc/prometheus/rules" ConfigFilename = "prometheus.yaml.gz" ConfigEnvsubstFilename = "prometheus.env.yaml" SSetInputHashName = "prometheus-operator-input-hash" DefaultPortName = "web" DefaultQueryLogDirectory = "/var/log/prometheus" )
Variables ¶
var ( MinReplicas int32 = 1 ManagedByOperatorLabels = map[string]string{ // contains filtered or unexported fields } ShardLabelName = "operator.prometheus.io/shard" PrometheusNameLabelName = "operator.prometheus.io/name" PrometheusModeLabeLName = "operator.prometheus.io/mode" ProbeTimeoutSeconds int32 = 3 LabelPrometheusName = "prometheus-name" )
Functions ¶
func BuildCommonPrometheusArgs ¶ added in v0.64.0
func BuildCommonPrometheusArgs(cpf monitoringv1.CommonPrometheusFields, cg *ConfigGenerator, webRoutePrefix string) []monitoringv1.Argument
BuildCommonPrometheusArgs builds a slice of arguments that are common between Prometheus Server and Agent.
func BuildCommonVolumes ¶ added in v0.64.0
func BuildCommonVolumes(p monitoringv1.PrometheusInterface, tlsAssetSecrets []string) ([]v1.Volume, []v1.VolumeMount, error)
BuildCommonVolumes returns a set of volumes to be mounted on statefulset spec that are common between Prometheus Server and Agent
func BuildPodMetadata ¶ added in v0.64.0
func BuildPodMetadata(cpf monitoringv1.CommonPrometheusFields, cg *ConfigGenerator) (map[string]string, map[string]string)
func CompareScrapeTimeoutToScrapeInterval ¶ added in v0.64.0
func CompareScrapeTimeoutToScrapeInterval(scrapeTimeout, scrapeInterval monitoringv1.Duration) error
CompareScrapeTimeoutToScrapeInterval validates value of scrapeTimeout based on scrapeInterval
func ConfigSecretName ¶ added in v0.64.0
func ConfigSecretName(p monitoringv1.PrometheusInterface) string
func ExpectedStatefulSetShardNames ¶ added in v0.64.0
func ExpectedStatefulSetShardNames( p monitoringv1.PrometheusInterface, ) []string
func KeyToStatefulSetKey ¶ added in v0.64.0
func KeyToStatefulSetKey(p monitoringv1.PrometheusInterface, key string, shard int) string
func MakeConfigSecret ¶ added in v0.64.0
func MakeConfigSecret(p monitoringv1.PrometheusInterface, config operator.Config) *v1.Secret
func MakeEmptyConfigurationSecret ¶ added in v0.64.0
func MakeEmptyConfigurationSecret(p monitoringv1.PrometheusInterface, config operator.Config) (*v1.Secret, error)
func NewTLSAssetSecret ¶ added in v0.64.0
func NewTLSAssetSecret(p monitoringv1.PrometheusInterface, labels map[string]string) *v1.Secret
func ProbeHandler ¶ added in v0.64.0
func ProbeHandler(probePath string, cpf monitoringv1.CommonPrometheusFields, webConfigGenerator *ConfigGenerator, webRoutePrefix string) v1.ProbeHandler
func StatefulSetKeyToPrometheusKey ¶ added in v0.64.0
func SubPathForStorage ¶ added in v0.64.0
func SubPathForStorage(s *monitoringv1.StorageSpec) string
TODO: Storage methods should be moved to server package. It is stil here because promcfg still uses it.
func TLSAssetsSecretName ¶ added in v0.64.0
func TLSAssetsSecretName(p monitoringv1.PrometheusInterface) string
func UsesDefaultQueryLogVolume ¶ added in v0.64.0
TODO: QueryLogFile methods should be moved to server package. They are still here because promcfg is using them.
func ValidateRemoteWriteSpec ¶ added in v0.64.0
func ValidateRemoteWriteSpec(spec monitoringv1.RemoteWriteSpec) error
ValidateRemoteWriteSpec checks that mutually exclusive configurations are not included in the Prometheus remoteWrite configuration section. Reference: https://github.com/prometheus/prometheus/blob/main/docs/configuration/configuration.md#remote_write
func VolumeName ¶ added in v0.64.0
func VolumeName(p monitoringv1.PrometheusInterface) string
func WebConfigSecretName ¶ added in v0.49.0
func WebConfigSecretName(p monitoringv1.PrometheusInterface) string
Types ¶
type Collector ¶ added in v0.64.0
type Collector struct {
// contains filtered or unexported fields
}
func NewCollectorForStores ¶ added in v0.64.0
func (*Collector) Collect ¶ added in v0.64.0
func (c *Collector) Collect(ch chan<- prometheus.Metric)
Collect implements the prometheus.Collector interface.
func (*Collector) Describe ¶ added in v0.64.0
func (c *Collector) Describe(ch chan<- *prometheus.Desc)
Describe implements the prometheus.Collector interface.
type ConfigGenerator ¶ added in v0.48.0
type ConfigGenerator struct {
// contains filtered or unexported fields
}
ConfigGenerator knows how to generate a Prometheus configuration which is compatible with a given Prometheus version.
func NewConfigGenerator ¶ added in v0.23.0
func NewConfigGenerator(logger log.Logger, p v1.PrometheusInterface, endpointSliceSupported bool) (*ConfigGenerator, error)
NewConfigGenerator creates a ConfigGenerator for the provided Prometheus resource.
func (*ConfigGenerator) AddHonorLabels ¶ added in v0.55.0
AddHonorLabels adds the honor_labels field into scrape configurations. if OverrideHonorLabels is true then honor_labels is always false.
func (*ConfigGenerator) AddHonorTimestamps ¶ added in v0.55.0
func (cg *ConfigGenerator) AddHonorTimestamps(cfg yaml.MapSlice, userHonorTimestamps *bool) yaml.MapSlice
AddHonorTimestamps adds the honor_timestamps field into scrape configurations. honor_timestamps is false only when the user specified it or when the global override applies. For backwards compatibility with Prometheus <2.9.0 we don't set honor_timestamps.
func (*ConfigGenerator) AddLimitsToYAML ¶ added in v0.55.0
func (cg *ConfigGenerator) AddLimitsToYAML(cfg yaml.MapSlice, k limitKey, limit uint64, enforcedLimit *uint64) yaml.MapSlice
AddLimitsToYAML appends the given limit key to the configuration if supported by the Prometheus version.
func (*ConfigGenerator) AppendCommandlineArgument ¶ added in v0.62.0
func (cg *ConfigGenerator) AppendCommandlineArgument(m []monitoringv1.Argument, argument monitoringv1.Argument) []monitoringv1.Argument
AppendCommandlineArgument appends the name/v argument to the given []monitoringv1.Argument and returns the updated slice.
func (*ConfigGenerator) AppendMapItem ¶ added in v0.55.0
AppendMapItem appends the k/v item to the given yaml.MapSlice and returns the updated slice.
func (*ConfigGenerator) EndpointSliceSupported ¶ added in v0.55.0
func (cg *ConfigGenerator) EndpointSliceSupported() bool
func (*ConfigGenerator) GenerateAgentConfiguration ¶ added in v0.64.0
func (cg *ConfigGenerator) GenerateAgentConfiguration( sMons map[string]*v1.ServiceMonitor, pMons map[string]*v1.PodMonitor, probes map[string]*v1.Probe, store *assets.Store, additionalScrapeConfigs []byte, ) ([]byte, error)
GenerateAgentConfiguration creates a serialized YAML representation of a Prometheus Agent configuration using the provided resources.
func (*ConfigGenerator) GenerateServerConfiguration ¶ added in v0.64.0
func (cg *ConfigGenerator) GenerateServerConfiguration( evaluationInterval v1.Duration, queryLogFile string, ruleSelector *metav1.LabelSelector, exemplars *v1.Exemplars, tsdb v1.TSDBSpec, alerting *v1.AlertingSpec, remoteRead []v1.RemoteReadSpec, sMons map[string]*v1.ServiceMonitor, pMons map[string]*v1.PodMonitor, probes map[string]*v1.Probe, store *assets.Store, additionalScrapeConfigs []byte, additionalAlertRelabelConfigs []byte, additionalAlertManagerConfigs []byte, ruleConfigMapNames []string, ) ([]byte, error)
GenerateServerConfiguration creates a serialized YAML representation of a Prometheus Server configuration using the provided resources.
func (*ConfigGenerator) IsCompatible ¶ added in v0.62.0
func (cg *ConfigGenerator) IsCompatible() bool
IsCompatible return true or false depending if the version being used is compatible
func (*ConfigGenerator) Warn ¶ added in v0.62.0
func (cg *ConfigGenerator) Warn(field string)
Warn logs a warning.
func (*ConfigGenerator) WithKeyVals ¶ added in v0.55.0
func (cg *ConfigGenerator) WithKeyVals(keyvals ...interface{}) *ConfigGenerator
WithKeyVals returns a new ConfigGenerator with the same characteristics as the current object, expect that the keyvals are appended to the existing logger.
func (*ConfigGenerator) WithMaximumVersion ¶ added in v0.55.0
func (cg *ConfigGenerator) WithMaximumVersion(version string) *ConfigGenerator
WithMaximumVersion returns a new ConfigGenerator that does nothing (except logging a warning message) if the Prometheus version is greater than or equal to the given version. The method panics if version isn't a valid SemVer value.
func (*ConfigGenerator) WithMinimumVersion ¶ added in v0.55.0
func (cg *ConfigGenerator) WithMinimumVersion(version string) *ConfigGenerator
WithMinimumVersion returns a new ConfigGenerator that does nothing (except logging a warning message) if the Prometheus version is lesser than the given version. The method panics if version isn't a valid SemVer value.
type ListAllByNamespacer ¶ added in v0.64.0
type ResourceSelector ¶ added in v0.64.0
type ResourceSelector struct {
// contains filtered or unexported fields
}
func NewResourceSelector ¶ added in v0.64.0
func NewResourceSelector(l log.Logger, p monitoringv1.PrometheusInterface, store *assets.Store, podMonitorLister ListAllByNamespacer, serviceMonitorLister ListAllByNamespacer, probeLister ListAllByNamespacer, namespaceInformers cache.SharedIndexInformer, metrics *operator.Metrics) *ResourceSelector
func (*ResourceSelector) SelectPodMonitors ¶ added in v0.64.0
func (rs *ResourceSelector) SelectPodMonitors(ctx context.Context) (map[string]*monitoringv1.PodMonitor, error)
SelectPodMonitors selects PodMonitors based on the selectors in the Prometheus CR and filters them returning only those with a valid configuration. This function also populates authentication stores and performs validations against scrape intervals and relabel configs.
func (*ResourceSelector) SelectProbes ¶ added in v0.64.0
func (rs *ResourceSelector) SelectProbes(ctx context.Context) (map[string]*monitoringv1.Probe, error)
SelectProbes selects Probes based on the selectors in the Prometheus CR and filters them returning only those with a valid configuration. This function also populates authentication stores and performs validations against scrape intervals, relabel configs and Probe URLs.
func (*ResourceSelector) SelectServiceMonitors ¶ added in v0.64.0
func (rs *ResourceSelector) SelectServiceMonitors(ctx context.Context) (map[string]*monitoringv1.ServiceMonitor, error)
SelectServiceMonitors selects ServiceMonitors based on the selectors in the Prometheus CR and filters them returning only those with a valid configuration. This function also populates authentication stores and performs validations against scrape intervals and relabel configs.