Packages:
Package v1 is the v1 version of the API.
- AlertingSpec
- AlertmanagerEndpoints
- Auth
- Authorization
- BasicAuth
- ClusterPodMonitoring
- ClusterPodMonitoringSpec
- ClusterRules
- CollectionSpec
- CompressionType
- ConfigSpec
- ExportFilters
- GlobalRules
- HTTPClientConfig
- KubeletScraping
- LabelMapping
- ManagedAlertmanagerSpec
- MonitoringCRD
- MonitoringCondition
- MonitoringConditionType
- MonitoringStatus
- OperatorConfig
- OperatorFeatures
- PodMonitoring
- PodMonitoringCRD
- PodMonitoringSpec
- PodMonitoringStatus
- ProxyConfig
- RelabelingRule
- Rule
- RuleEvaluatorSpec
- RuleGroup
- Rules
- RulesSpec
- RulesStatus
- SampleGroup
- SampleTarget
- ScrapeEndpoint
- ScrapeEndpointStatus
- ScrapeLimits
- SecretOrConfigMap
- TLS
- TLSConfig
- TargetLabels
- TargetStatusSpec
(Appears in: RuleEvaluatorSpec)
AlertingSpec defines alerting configuration.
Field | Description |
---|---|
alertmanagers []AlertmanagerEndpoints |
Alertmanagers contains endpoint configuration for designated Alertmanagers. |
(Appears in: AlertingSpec)
AlertmanagerEndpoints defines a selection of a single Endpoints object containing alertmanager IPs to fire alerts against.
Field | Description |
---|---|
namespace string |
Namespace of Endpoints object. |
name string |
Name of Endpoints object in Namespace. |
port k8s.io/apimachinery/pkg/util/intstr.IntOrString |
Port the Alertmanager API is exposed on. |
scheme string |
Scheme to use when firing alerts. |
pathPrefix string |
Prefix for the HTTP path alerts are pushed to. |
tls TLSConfig |
TLS Config to use for alertmanager connection. |
authorization Authorization |
Authorization section for this alertmanager endpoint |
apiVersion string |
Version of the Alertmanager API that rule-evaluator uses to send alerts. It can be “v1” or “v2”. |
timeout string |
Timeout is a per-target Alertmanager timeout when pushing alerts. |
(Appears in: HTTPClientConfig)
Auth sets the Authorization
header on every scrape request.
Currently the credentials are not configurable and always empty.
Field | Description |
---|---|
type string |
The authentication type. Defaults to Bearer, Basic will cause an error. |
(Appears in: AlertmanagerEndpoints)
Authorization specifies a subset of the Authorization struct, that is safe for use in Endpoints (no CredentialsFile field).
Field | Description |
---|---|
type string |
Set the authentication type. Defaults to Bearer, Basic will cause an error |
credentials Kubernetes core/v1.SecretKeySelector |
The secret’s key that contains the credentials of the request |
(Appears in: HTTPClientConfig)
BasicAuth sets the Authorization
header on every scrape request with the
configured username.
Currently the password is not configurable and always empty.
Field | Description |
---|---|
username string |
The username for authentication. |
ClusterPodMonitoring defines monitoring for a set of pods, scoped to all pods within the cluster.
Field | Description |
---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
spec ClusterPodMonitoringSpec |
Specification of desired Pod selection for target discovery by Prometheus. |
status PodMonitoringStatus |
(Optional)
Most recently observed status of the resource. |
(Appears in: ClusterPodMonitoring)
ClusterPodMonitoringSpec contains specification parameters for ClusterPodMonitoring.
Field | Description |
---|---|
selector Kubernetes meta/v1.LabelSelector |
Label selector that specifies which pods are selected for this monitoring configuration. |
endpoints []ScrapeEndpoint |
The endpoints to scrape on the selected pods. |
targetLabels TargetLabels |
Labels to add to the Prometheus target for discovered endpoints.
The |
limits ScrapeLimits |
Limits to apply at scrape time. |
filterRunning bool |
FilterRunning will drop any pods that are in the “Failed” or “Succeeded” pod lifecycle. See: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase Specifically, this prevents scraping Succeeded pods from K8s jobs, which could contribute to noisy logs or irrelevant metrics. Additionally, it can mitigate issues with reusing stale target labels in cases where Pod IPs are reused (e.g. spot containers). See: #145 |
ClusterRules defines Prometheus alerting and recording rules that are scoped to the current cluster. Only metric data from the current cluster is processed and all rule results have their project_id and cluster label preserved for query processing. If the location label is not preserved by the rule, it defaults to the cluster’s location.
Field | Description |
---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
spec RulesSpec |
Specification of rules to record and alert on. |
status RulesStatus |
(Optional)
Most recently observed status of the resource. |
(Appears in: OperatorConfig)
CollectionSpec specifies how the operator configures collection of metric data.
Field | Description |
---|---|
externalLabels map[string]string |
ExternalLabels specifies external labels that are attached to all scraped data before being written to Cloud Monitoring. The precedence behavior matches that of Prometheus. |
filter ExportFilters |
Filter limits which metric data is sent to Cloud Monitoring. |
credentials Kubernetes core/v1.SecretKeySelector |
A reference to GCP service account credentials with which Prometheus collectors are run. It needs to have metric write permissions for all project IDs to which data is written. Within GKE, this can typically be left empty if the compute default service account has the required permissions. |
kubeletScraping KubeletScraping |
Configuration to scrape the metric endpoints of the Kubelets. |
compression CompressionType |
Compression enables compression of metrics collection data |
(Appears in: CollectionSpec, ConfigSpec)
Value | Description |
---|---|
"gzip" |
|
"none" |
(Appears in: OperatorFeatures)
ConfigSpec holds configurations for the Prometheus configuration.
Field | Description |
---|---|
compression CompressionType |
Compression enables compression of the config data propagated by the operator to collectors. It is recommended to use the gzip option when using a large number of ClusterPodMonitoring and/or PodMonitoring. |
(Appears in: CollectionSpec)
ExportFilters provides mechanisms to filter the scraped data that’s sent to GMP.
Field | Description |
---|---|
matchOneOf []string |
A list of Prometheus time series matchers. Every time series must match at least one
of the matchers to be exported. This field can be used equivalently to the match[]
parameter of the Prometheus federation endpoint to selectively export data.
Example: |
GlobalRules defines Prometheus alerting and recording rules that are scoped to all data in the queried project. If the project_id or location labels are not preserved by the rule, they default to the values of the cluster.
Field | Description |
---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
spec RulesSpec |
Specification of rules to record and alert on. |
status RulesStatus |
(Optional)
Most recently observed status of the resource. |
(Appears in: ScrapeEndpoint)
HTTPClientConfig stores HTTP-client configurations.
Field | Description |
---|---|
authorization Auth |
The HTTP authorization credentials for the targets. |
basicAuth BasicAuth |
The HTTP basic authentication credentials for the targets. |
tls TLS |
Configures the scrape request’s TLS settings. |
ProxyConfig ProxyConfig |
(Members of Proxy configuration. |
(Appears in: CollectionSpec)
KubeletScraping allows enabling scraping of the Kubelets’ metric endpoints.
Field | Description |
---|---|
interval string |
The interval at which the metric endpoints are scraped. |
(Appears in: TargetLabels)
LabelMapping specifies how to transfer a label from a Kubernetes resource onto a Prometheus target.
Field | Description |
---|---|
from string |
Kubernetes resource label to remap. |
to string |
Remapped Prometheus target label.
Defaults to the same name as |
(Appears in: OperatorConfig)
ManagedAlertmanagerSpec holds configuration information for the managed Alertmanager instance.
Field | Description |
---|---|
configSecret Kubernetes core/v1.SecretKeySelector |
ConfigSecret refers to the name of a single-key Secret in the public namespace that holds the managed Alertmanager config file. |
externalURL string |
ExternalURL is the URL under which Alertmanager is externally reachable (for example, if Alertmanager is served via a reverse proxy). Used for generating relative and absolute links back to Alertmanager itself. If the URL has a path portion, it will be used to prefix all HTTP endpoints served by Alertmanager. If omitted, relevant URL components will be derived automatically. |
(Appears in: MonitoringStatus)
MonitoringCondition describes the condition of a PodMonitoring.
Field | Description |
---|---|
type MonitoringConditionType |
|
status Kubernetes core/v1.ConditionStatus |
Status of the condition, one of True, False, Unknown. |
lastUpdateTime Kubernetes meta/v1.Time |
(Optional)
The last time this condition was updated. |
lastTransitionTime Kubernetes meta/v1.Time |
(Optional)
Last time the condition transitioned from one status to another. |
reason string |
(Optional)
The reason for the condition’s last transition. |
message string |
(Optional)
A human-readable message indicating details about the transition. |
(Appears in: MonitoringCondition)
MonitoringConditionType is the type of MonitoringCondition.
Value | Description |
---|---|
"ConfigurationCreateSuccess" |
ConfigurationCreateSuccess indicates that the config generated from the monitoring resource was created successfully. |
(Appears in: PodMonitoringStatus)
MonitoringStatus holds status information of a monitoring resource.
Field | Description |
---|---|
observedGeneration int64 |
(Optional)
The generation observed by the controller. |
conditions []MonitoringCondition |
Represents the latest available observations of a podmonitor’s current state. |
OperatorConfig defines configuration of the gmp-operator.
Field | Description |
---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
rules RuleEvaluatorSpec |
Rules specifies how the operator configures and deploys rule-evaluator. |
collection CollectionSpec |
Collection specifies how the operator configures collection. |
managedAlertmanager ManagedAlertmanagerSpec |
ManagedAlertmanager holds information for configuring the managed instance of Alertmanager. |
features OperatorFeatures |
Features holds configuration for optional managed-collection features. |
(Appears in: OperatorConfig)
OperatorFeatures holds configuration for optional managed-collection features.
Field | Description |
---|---|
targetStatus TargetStatusSpec |
Configuration of target status reporting. |
config ConfigSpec |
Settings for the collector configuration propagation. |
PodMonitoring defines monitoring for a set of pods, scoped to pods within the PodMonitoring’s namespace.
Field | Description |
---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
spec PodMonitoringSpec |
Specification of desired Pod selection for target discovery by Prometheus. |
status PodMonitoringStatus |
(Optional)
Most recently observed status of the resource. |
PodMonitoringCRD represents a Kubernetes CRD that monitors Pod endpoints.
(Appears in: PodMonitoring)
PodMonitoringSpec contains specification parameters for PodMonitoring.
Field | Description |
---|---|
selector Kubernetes meta/v1.LabelSelector |
Label selector that specifies which pods are selected for this monitoring configuration. |
endpoints []ScrapeEndpoint |
The endpoints to scrape on the selected pods. |
targetLabels TargetLabels |
Labels to add to the Prometheus target for discovered endpoints.
The |
limits ScrapeLimits |
Limits to apply at scrape time. |
filterRunning bool |
FilterRunning will drop any pods that are in the “Failed” or “Succeeded” pod lifecycle. See: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase |
(Appears in: ClusterPodMonitoring, PodMonitoring)
PodMonitoringStatus holds status information of a PodMonitoring resource.
Field | Description |
---|---|
MonitoringStatus MonitoringStatus |
(Members of |
endpointStatuses []ScrapeEndpointStatus |
Represents the latest available observations of target state for each ScrapeEndpoint. |
(Appears in: HTTPClientConfig)
Field | Description |
---|---|
proxyUrl string |
HTTP proxy server to use to connect to the targets. Encoded passwords are not supported. |
(Appears in: ScrapeEndpoint)
RelabelingRule defines a single Prometheus relabeling rule.
Field | Description |
---|---|
sourceLabels []string |
The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions. |
separator string |
Separator placed between concatenated source label values. Defaults to ‘;’. |
targetLabel string |
Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available. |
regex string |
Regular expression against which the extracted value is matched. Defaults to ‘(.*)’. |
modulus uint64 |
Modulus to take of the hash of the source label values. |
replacement string |
Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Defaults to ‘$1’. |
action string |
Action to perform based on regex matching. Defaults to ‘replace’. |
(Appears in: RuleGroup)
Rule is a single rule in the Prometheus format: https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/
Field | Description |
---|---|
record string |
Record the result of the expression to this metric name.
Only one of |
alert string |
Name of the alert to evaluate the expression as.
Only one of |
expr string |
The PromQL expression to evaluate. |
for string |
The duration to wait before a firing alert produced by this rule is sent to Alertmanager.
Only valid if |
labels map[string]string |
A set of labels to attach to the result of the query expression. |
annotations map[string]string |
A set of annotations to attach to alerts produced by the query expression.
Only valid if |
(Appears in: OperatorConfig)
RuleEvaluatorSpec defines configuration for deploying rule-evaluator.
Field | Description |
---|---|
externalLabels map[string]string |
ExternalLabels specifies external labels that are attached to any rule results and alerts produced by rules. The precedence behavior matches that of Prometheus. |
queryProjectID string |
QueryProjectID is the GCP project ID to evaluate rules against. If left blank, the rule-evaluator will try attempt to infer the Project ID from the environment. |
generatorUrl string |
The base URL used for the generator URL in the alert notification payload. Should point to an instance of a query frontend that gives access to queryProjectID. |
alerting AlertingSpec |
Alerting contains how the rule-evaluator configures alerting. |
credentials Kubernetes core/v1.SecretKeySelector |
A reference to GCP service account credentials with which the rule evaluator container is run. It needs to have metric read permissions against queryProjectId and metric write permissions against all projects to which rule results are written. Within GKE, this can typically be left empty if the compute default service account has the required permissions. |
(Appears in: RulesSpec)
RuleGroup declares rules in the Prometheus format: https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/
Field | Description |
---|---|
name string |
The name of the rule group. |
interval string |
The interval at which to evaluate the rules. Must be a valid Prometheus duration. |
rules []Rule |
A list of rules that are executed sequentially as part of this group. |
Rules defines Prometheus alerting and recording rules that are scoped to the namespace of the resource. Only metric data from this namespace is processed and all rule results have their project_id, cluster, and namespace label preserved for query processing. If the location label is not preserved by the rule, it defaults to the cluster’s location.
Field | Description |
---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
spec RulesSpec |
Specification of rules to record and alert on. |
status RulesStatus |
(Optional)
Most recently observed status of the resource. |
(Appears in: ClusterRules, GlobalRules, Rules)
RulesSpec contains specification parameters for a Rules resource.
Field | Description |
---|---|
groups []RuleGroup |
A list of Prometheus rule groups. |
(Appears in: ClusterRules, GlobalRules, Rules)
RulesStatus contains status information for a Rules resource.
(Appears in: ScrapeEndpointStatus)
Field | Description |
---|---|
sampleTargets []SampleTarget |
Targets emitting the error message. |
count int32 |
(Optional)
Total count of similar errors. |
(Appears in: SampleGroup)
Field | Description |
---|---|
labels github.com/prometheus/common/model.LabelSet |
The label set, keys and values, of the target. |
lastError string |
Error message. |
lastScrapeDurationSeconds string |
Scrape duration in seconds. |
health string |
Health status. |
(Appears in: ClusterPodMonitoringSpec, PodMonitoringSpec)
ScrapeEndpoint specifies a Prometheus metrics endpoint to scrape.
Field | Description |
---|---|
port k8s.io/apimachinery/pkg/util/intstr.IntOrString |
Name or number of the port to scrape. The container metadata label is only populated if the port is referenced by name because port numbers are not unique across containers. |
scheme string |
Protocol scheme to use to scrape. |
path string |
HTTP path to scrape metrics from. Defaults to “/metrics”. |
params map[string][]string |
HTTP GET params to use when scraping. |
interval string |
Interval at which to scrape metrics. Must be a valid Prometheus duration. |
timeout string |
Timeout for metrics scrapes. Must be a valid Prometheus duration. Must not be larger than the scrape interval. |
metricRelabeling []RelabelingRule |
Relabeling rules for metrics scraped from this endpoint. Relabeling rules that override protected target labels (project_id, location, cluster, namespace, job, instance, or address) are not permitted. The labelmap action is not permitted in general. |
HTTPClientConfig HTTPClientConfig |
(Members of Prometheus HTTP client configuration. |
(Appears in: PodMonitoringStatus)
Field | Description |
---|---|
name string |
The name of the ScrapeEndpoint. |
activeTargets int64 |
Total number of active targets. |
unhealthyTargets int64 |
Total number of active, unhealthy targets. |
lastUpdateTime Kubernetes meta/v1.Time |
Last time this status was updated. |
sampleGroups []SampleGroup |
A fixed sample of targets grouped by error type. |
collectorsFraction string |
Fraction of collectors included in status, bounded [0,1]. Ideally, this should always be 1. Anything less can be considered a problem and should be investigated. |
(Appears in: ClusterPodMonitoringSpec, PodMonitoringSpec)
ScrapeLimits limits applied to scraped targets.
Field | Description |
---|---|
samples uint64 |
Maximum number of samples accepted within a single scrape. Uses Prometheus default if left unspecified. |
labels uint64 |
Maximum number of labels accepted for a single sample. Uses Prometheus default if left unspecified. |
labelNameLength uint64 |
Maximum label name length. Uses Prometheus default if left unspecified. |
labelValueLength uint64 |
Maximum label value length. Uses Prometheus default if left unspecified. |
(Appears in: TLSConfig)
SecretOrConfigMap allows to specify data as a Secret or ConfigMap. Fields are mutually exclusive. Taking inspiration from prometheus-operator: https://github.com/prometheus-operator/prometheus-operator/blob/2c81b0cf6a5673e08057499a08ddce396b19dda4/Documentation/api.md#secretorconfigmap
Field | Description |
---|---|
secret Kubernetes core/v1.SecretKeySelector |
Secret containing data to use for the targets. |
configMap Kubernetes core/v1.ConfigMapKeySelector |
ConfigMap containing data to use for the targets. |
(Appears in: HTTPClientConfig)
TLS specifies TLS configuration parameters from Kubernetes resources.
Field | Description |
---|---|
serverName string |
Used to verify the hostname for the targets. |
insecureSkipVerify bool |
Disable target certificate validation. |
minVersion string |
Minimum TLS version. Accepted values: TLS10 (TLS 1.0), TLS11 (TLS 1.1), TLS12 (TLS 1.2), TLS13 (TLS 1.3). If unset, Prometheus will use Go default minimum version, which is TLS 1.2. See MinVersion in https://pkg.go.dev/crypto/tls#Config. |
maxVersion string |
Maximum TLS version. Accepted values: TLS10 (TLS 1.0), TLS11 (TLS 1.1), TLS12 (TLS 1.2), TLS13 (TLS 1.3). If unset, Prometheus will use Go default minimum version, which is TLS 1.2. See MinVersion in https://pkg.go.dev/crypto/tls#Config. |
(Appears in: AlertmanagerEndpoints)
TLSConfig specifies TLS configuration parameters from Kubernetes resources.
Field | Description |
---|---|
ca SecretOrConfigMap |
Struct containing the CA cert to use for the targets. |
cert SecretOrConfigMap |
Struct containing the client cert file for the targets. |
keySecret Kubernetes core/v1.SecretKeySelector |
Secret containing the client key file for the targets. |
serverName string |
Used to verify the hostname for the targets. |
insecureSkipVerify bool |
Disable target certificate validation. |
minVersion string |
Minimum TLS version. Accepted values: TLS10 (TLS 1.0), TLS11 (TLS 1.1), TLS12 (TLS 1.2), TLS13 (TLS 1.3). If unset, Prometheus will use Go default minimum version, which is TLS 1.2. See MinVersion in https://pkg.go.dev/crypto/tls#Config. |
maxVersion string |
Maximum TLS version. Accepted values: TLS10 (TLS 1.0), TLS11 (TLS 1.1), TLS12 (TLS 1.2), TLS13 (TLS 1.3). If unset, Prometheus will use Go default minimum version, which is TLS 1.2. See MinVersion in https://pkg.go.dev/crypto/tls#Config. |
(Appears in: ClusterPodMonitoringSpec, PodMonitoringSpec)
TargetLabels configures labels for the discovered Prometheus targets.
Field | Description |
---|---|
metadata []string |
Pod metadata labels that are set on all scraped targets.
Permitted keys are |
fromPod []LabelMapping |
Labels to transfer from the Kubernetes Pod to Prometheus target labels. Mappings are applied in order. |
(Appears in: OperatorFeatures)
TargetStatusSpec holds configuration for target status reporting.
Field | Description |
---|---|
enabled bool |
Enable target status reporting. |
Generated with gen-crd-api-reference-docs