Description

ServiceMonitor defines monitoring for a set of services.

Type

object

Required
  • spec

Specification

Property Type Description

.apiVersion

string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

.kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

.metadata

ObjectMeta meta/v1

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

.spec

object

Specification of desired Service selection for target discovery by Prometheus.

.spec
Description

Specification of desired Service selection for target discovery by Prometheus.

Type

object

Required
  • endpoints

  • selector

Property Type Description

endpoints

array

A list of endpoints allowed as part of this ServiceMonitor.

endpoints[]

object

Endpoint defines a scrapeable endpoint serving Prometheus metrics.

jobLabel

string

The label to use to retrieve the job name from.

namespaceSelector

object

Selector to select which namespaces the Endpoints objects are discovered from.

podTargetLabels

array (string)

PodTargetLabels transfers labels on the Kubernetes Pod onto the target.

sampleLimit

integer

SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.

selector

object

Selector to select Endpoints objects.

targetLabels

array (string)

TargetLabels transfers labels on the Kubernetes Service onto the target.

.spec.endpoints
Description

A list of endpoints allowed as part of this ServiceMonitor.

Type

array

.spec.endpoints[]
Description

Endpoint defines a scrapeable endpoint serving Prometheus metrics.

Type

object

Property Type Description

basicAuth

object

BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints

bearerTokenFile

string

File to read bearer token for scraping targets.

bearerTokenSecret

object

Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service monitor and accessible by the Prometheus Operator.

honorLabels

boolean

HonorLabels chooses the metric’s labels on collisions with target labels.

honorTimestamps

boolean

HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.

interval

string

Interval at which metrics should be scraped

metricRelabelings

array

MetricRelabelConfigs to apply to samples before ingestion.

metricRelabelings[]

object

RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines <metric_relabel_configs>-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs

params

object

Optional HTTP URL parameters

params{}

array (string)

path

string

HTTP path to scrape for metrics.

port

string

Name of the service port this endpoint refers to. Mutually exclusive with targetPort.

proxyUrl

string

ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.

relabelings

array

RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

relabelings[]

object

RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines <metric_relabel_configs>-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs

scheme

string

HTTP scheme to use for scraping.

scrapeTimeout

string

Timeout after which the scrape is ended

targetPort

integer-or-string

Name or number of the pod port this endpoint refers to. Mutually exclusive with port.

tlsConfig

object

TLS configuration to use when scraping the endpoint

.spec.endpoints[].basicAuth
Description

BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints

Type

object

Property Type Description

password

object

The secret in the service monitor namespace that contains the password for authentication.

username

object

The secret in the service monitor namespace that contains the username for authentication.

.spec.endpoints[].basicAuth.password
Description

The secret in the service monitor namespace that contains the password for authentication.

Type

object

Required
  • key

Property Type Description

key

string

The key of the secret to select from. Must be a valid secret key.

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?

optional

boolean

Specify whether the Secret or its key must be defined

.spec.endpoints[].basicAuth.username
Description

The secret in the service monitor namespace that contains the username for authentication.

Type

object

Required
  • key

Property Type Description

key

string

The key of the secret to select from. Must be a valid secret key.

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?

optional

boolean

Specify whether the Secret or its key must be defined

.spec.endpoints[].bearerTokenSecret
Description

Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service monitor and accessible by the Prometheus Operator.

Type

object

Required
  • key

Property Type Description

key

string

The key of the secret to select from. Must be a valid secret key.

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?

optional

boolean

Specify whether the Secret or its key must be defined

.spec.endpoints[].metricRelabelings
Description

MetricRelabelConfigs to apply to samples before ingestion.

Type

array

.spec.endpoints[].metricRelabelings[]
Description

RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs

Type

object

Property Type Description

action

string

Action to perform based on regex matching. Default is 'replace'

modulus

integer

Modulus to take of the hash of the source label values.

regex

string

Regular expression against which the extracted value is matched. Default is '(.*)'

replacement

string

Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'

separator

string

Separator placed between concatenated source label values. default is ';'.

sourceLabels

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

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.

.spec.endpoints[].params
Description

Optional HTTP URL parameters

Type

object

.spec.endpoints[].relabelings
Description

RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

Type

array

.spec.endpoints[].relabelings[]
Description

RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs

Type

object

Property Type Description

action

string

Action to perform based on regex matching. Default is 'replace'

modulus

integer

Modulus to take of the hash of the source label values.

regex

string

Regular expression against which the extracted value is matched. Default is '(.*)'

replacement

string

Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'

separator

string

Separator placed between concatenated source label values. default is ';'.

sourceLabels

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

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.

.spec.endpoints[].tlsConfig
Description

TLS configuration to use when scraping the endpoint

Type

object

Property Type Description

ca

object

Stuct containing the CA cert to use for the targets.

caFile

string

Path to the CA cert in the Prometheus container to use for the targets.

cert

object

Struct containing the client cert file for the targets.

certFile

string

Path to the client cert file in the Prometheus container for the targets.

insecureSkipVerify

boolean

Disable target certificate validation.

keyFile

string

Path to the client key file in the Prometheus container for the targets.

keySecret

object

Secret containing the client key file for the targets.

serverName

string

Used to verify the hostname for the targets.

.spec.endpoints[].tlsConfig.ca
Description

Stuct containing the CA cert to use for the targets.

Type

object

Property Type Description

configMap

object

ConfigMap containing data to use for the targets.

secret

object

Secret containing data to use for the targets.

.spec.endpoints[].tlsConfig.ca.configMap
Description

ConfigMap containing data to use for the targets.

Type

object

Required
  • key

Property Type Description

key

string

The key to select.

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?

optional

boolean

Specify whether the ConfigMap or its key must be defined

.spec.endpoints[].tlsConfig.ca.secret
Description

Secret containing data to use for the targets.

Type

object

Required
  • key

Property Type Description

key

string

The key of the secret to select from. Must be a valid secret key.

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?

optional

boolean

Specify whether the Secret or its key must be defined

.spec.endpoints[].tlsConfig.cert
Description

Struct containing the client cert file for the targets.

Type

object

Property Type Description

configMap

object

ConfigMap containing data to use for the targets.

secret

object

Secret containing data to use for the targets.

.spec.endpoints[].tlsConfig.cert.configMap
Description

ConfigMap containing data to use for the targets.

Type

object

Required
  • key

Property Type Description

key

string

The key to select.

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?

optional

boolean

Specify whether the ConfigMap or its key must be defined

.spec.endpoints[].tlsConfig.cert.secret
Description

Secret containing data to use for the targets.

Type

object

Required
  • key

Property Type Description

key

string

The key of the secret to select from. Must be a valid secret key.

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?

optional

boolean

Specify whether the Secret or its key must be defined

.spec.endpoints[].tlsConfig.keySecret
Description

Secret containing the client key file for the targets.

Type

object

Required
  • key

Property Type Description

key

string

The key of the secret to select from. Must be a valid secret key.

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?

optional

boolean

Specify whether the Secret or its key must be defined

.spec.namespaceSelector
Description

Selector to select which namespaces the Endpoints objects are discovered from.

Type

object

Property Type Description

any

boolean

Boolean describing whether all namespaces are selected in contrast to a list restricting them.

matchNames

array (string)

List of namespace names.

.spec.selector
Description

Selector to select Endpoints objects.

Type

object

Property Type Description

matchExpressions

array

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchExpressions[]

object

A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

matchLabels

object (string)

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.selector.matchExpressions
Description

matchExpressions is a list of label selector requirements. The requirements are ANDed.

Type

array

.spec.selector.matchExpressions[]
Description

A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

Type

object

Required
  • key

  • operator

Property Type Description

key

string

key is the label key that the selector applies to.

operator

string

operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

values

array (string)

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.