Skip to content

Latest commit

 

History

History
2700 lines (2700 loc) · 53.4 KB

api.md

File metadata and controls

2700 lines (2700 loc) · 53.4 KB

Packages:

monitoring.googleapis.com/v1

Package v1 is the v1 version of the API.

Resource Types:

AlertingSpec

(Appears in: RuleEvaluatorSpec)

AlertingSpec defines alerting configuration.

Field Description
alertmanagers
[]AlertmanagerEndpoints

Alertmanagers contains endpoint configuration for designated Alertmanagers.

AlertmanagerEndpoints

(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.

Auth

(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.

Authorization

(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

BasicAuth

(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

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.

ClusterPodMonitoringSpec

(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 instance label is always set to <pod_name>:<port> or <node_name>:<port> if the scraped pod is controlled by a DaemonSet.

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

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.

CollectionSpec

(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

CompressionType (string alias)

(Appears in: CollectionSpec, ConfigSpec)

Value Description

"gzip"

"none"

ConfigSpec

(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.

ExportFilters

(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: ["{job!='foobar'}", "{__name__!~'container_foo.*|container_bar.*'}"]

GlobalRules

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.

HTTPClientConfig

(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 ProxyConfig are embedded into this type.)

Proxy configuration.

KubeletScraping

(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.

LabelMapping

(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 From.

ManagedAlertmanagerSpec

(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.

MonitoringCRD

MonitoringCondition

(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.

MonitoringConditionType (string alias)

(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.

MonitoringStatus

(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

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.

OperatorFeatures

(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

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

PodMonitoringCRD represents a Kubernetes CRD that monitors Pod endpoints.

PodMonitoringSpec

(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 instance label is always set to <pod_name>:<port> or <node_name>:<port> if the scraped pod is controlled by a DaemonSet.

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

PodMonitoringStatus

(Appears in: ClusterPodMonitoring, PodMonitoring)

PodMonitoringStatus holds status information of a PodMonitoring resource.

Field Description
MonitoringStatus
MonitoringStatus

(Members of MonitoringStatus are embedded into this type.)

endpointStatuses
[]ScrapeEndpointStatus

Represents the latest available observations of target state for each ScrapeEndpoint.

ProxyConfig

(Appears in: HTTPClientConfig)

Field Description
proxyUrl
string

HTTP proxy server to use to connect to the targets. Encoded passwords are not supported.

RelabelingRule

(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’.

Rule

(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 record and alert must be set.

alert
string

Name of the alert to evaluate the expression as. Only one of record and alert must be set.

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 alert is set.

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 alert is set.

RuleEvaluatorSpec

(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.

RuleGroup

(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

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.

RulesSpec

(Appears in: ClusterRules, GlobalRules, Rules)

RulesSpec contains specification parameters for a Rules resource.

Field Description
groups
[]RuleGroup

A list of Prometheus rule groups.

RulesStatus

(Appears in: ClusterRules, GlobalRules, Rules)

RulesStatus contains status information for a Rules resource.

SampleGroup

(Appears in: ScrapeEndpointStatus)

Field Description
sampleTargets
[]SampleTarget

Targets emitting the error message.

count
int32
(Optional)

Total count of similar errors.

SampleTarget

(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.

ScrapeEndpoint

(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 HTTPClientConfig are embedded into this type.)

Prometheus HTTP client configuration.

ScrapeEndpointStatus

(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.

ScrapeLimits

(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.

SecretOrConfigMap

(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.

TLS

(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.

TLSConfig

(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.

TargetLabels

(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 pod, container, and node for PodMonitoring and pod, container, node, and namespace for ClusterPodMonitoring. The container label is only populated if the scrape port is referenced by name. Defaults to [pod, container] for PodMonitoring and [namespace, pod, container] for ClusterPodMonitoring. If set to null, it will be interpreted as the empty list for PodMonitoring and to [namespace] for ClusterPodMonitoring. This is for backwards-compatibility only.

fromPod
[]LabelMapping

Labels to transfer from the Kubernetes Pod to Prometheus target labels. Mappings are applied in order.

TargetStatusSpec

(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