第 8 章 ServiceMonitor [monitoring.coreos.com/v1]


描述
ServiceMonitor 为一组服务定义监控。
类型
object
必填
  • spec

8.1. 规格

属性类型描述

apiVersion

string

APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

Prometheus 的目标发现所需的服务选择规格。

8.1.1. .spec

描述
Prometheus 的目标发现所需的服务选择规格。
类型
object
必填
  • 端点
  • selector
属性类型描述

attachMetadata

object

将节点元数据附加到发现的目标。需要 Prometheus v2.37.0 及更高版本。

端点

array

此 ServiceMonitor 中允许的端点列表。

endpoints[]

对象

端点定义提供 Prometheus 指标的可提取端点。

jobLabel

string

JobLabel 从关联的 Kubernetes 服务中选择标签,该服务将用作所有指标 的作业 标签。例如:如果在 ServiceMonitor.spec.jobLabel: fooService.metadata.labels.foo: bar 中,则 job="bar" 标签添加到所有指标。如果此字段的值为空,或者标签不存在,则指标 的作业 标签默认为 Kubernetes Service 的名称。

labelLimit

整数

对示例接受的标签数的 per-scrape 限制。仅在 Prometheus 版本 2.27.0 及更新版本中有效。

labelNameLengthLimit

整数

对示例接受的标签名称长度的 per-scrape 限制。仅在 Prometheus 版本 2.27.0 及更新版本中有效。

labelValueLengthLimit

整数

对示例接受的标签值长度的 per-scrape 限制。仅在 Prometheus 版本 2.27.0 及更新版本中有效。

namespaceSelector

对象

选择从哪些命名空间发现 Kubernetes Endpoints 对象的选择器。

podTargetLabels

数组(字符串)

PodTargetLabels 将 Kubernetes Pod 上的标签传送到创建的指标。

sampleLimit

整数

SampleLimit 对将接受的提取示例数量定义 per-scrape 限制。

selector

对象

选择 Endpoints 对象的选择器。

targetLabels

数组(字符串)

TargetLabels 将标签从 Kubernetes 服务 传输到创建的指标。

targetLimit

整数

TargetLimit 定义了接受的提取目标数量的限制。

8.1.2. .spec.attachMetadata

描述
将节点元数据附加到发现的目标。需要 Prometheus v2.37.0 及更高版本。
类型
object
属性类型描述

node

布尔值

当设置为 true 时,Prometheus 必须有权限才能获取节点。

8.1.3. .spec.endpoints

描述
此 ServiceMonitor 中允许的端点列表。
类型
array

8.1.4. .spec.endpoints[]

描述
端点定义提供 Prometheus 指标的可提取端点。
类型
object
属性类型描述

授权

对象

此端点的授权部分

basicAuth

对象

basicAuth 允许端点通过基本身份验证了解更多信息进行验证 :https://prometheus.io/docs/operating/configuration/#endpoints

bearerTokenFile

字符串

用于读取提取目标的 bearer 令牌的文件。

bearerTokenSecret

对象

要挂载以读取用于提取目标的 bearer 令牌的机密。secret 需要与服务监控器位于同一个命名空间中,并可以被 Prometheus Operator 访问。

enableHttp2

布尔值

是否启用 HTTP2。

filterRunning

布尔值

丢弃没有运行的 pod。(failed, Succeeded)。默认启用此选项。更多信息: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase

followRedirects

布尔值

FollowRedirects 配置提取请求是否遵循 HTTP 3xx 重定向。

honorLabels

布尔值

HonorLabels 选择指标的标签与目标标签冲突。

honorTimestamps

布尔值

honorTimestamps 控制 Prometheus 是否遵循提取数据中存在的时间戳。

interval

string

如果使用了 Prometheus 的全局提取间隔,则应提取指标的时间间隔。

metricRelabelings

array

MetricRelabelConfigs 在 ingestion 前应用到示例。

metricRelabelings[]

对象

RelabelConfig 允许动态重写标签集,在 ingestion 前被应用到示例。它定义 Prometheus 配置的 <metric_relabel_configs>-section。更多信息: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs

oauth2

对象

URL 的 OAuth2。仅在 Prometheus 版本 2.27.0 及更新版本中有效。

params

对象

可选的 HTTP URL 参数

params{}

数组(字符串)

 

path

字符串

提取指标的 HTTP 路径。如果为空,Prometheus 将使用默认值(如 /metrics)。

port

字符串

此端点所引用的服务端口的名称。与 targetPort 相互排斥。

proxyUrl

字符串

proxyUrl eg http://proxyserver:2195 Directs scrapes to proxy via this endpoint.

重新标记

array

在提取前,重新labelConfigs 应用到示例。Prometheus Operator 会自动为几个标准 Kubernetes 字段添加重新标记。原始提取作业的名称可以通过 \__tmp_prometheus_job_name 标签获得。更多信息: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

relabelings[]

对象

RelabelConfig 允许动态重写标签集,在 ingestion 前被应用到示例。它定义 Prometheus 配置的 <metric_relabel_configs>-section。更多信息: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs

scheme

字符串

用于提取的 HTTP 方案。

scrapeTimeout

string

如果没有指定提取的超时时间,会使用 Prometheus 全局提取超时,除非它小于使用后者的间隔。

targetPort

integer-or-string

在 Service 后面的 Pod 的目标端口的名称或号,必须使用容器端口属性指定端口。与端口相互排斥。

tlsConfig

对象

提取端点时使用的 TLS 配置

8.1.5. .spec.endpoints[].authorization

描述
此端点的授权部分
类型
object
属性类型描述

credentials

对象

包含请求凭证的 secret 密钥

type

字符串

设置身份验证类型。默认为 Bearer,Basic 将导致错误

8.1.6. .spec.endpoints[].authorization.credentials

描述
包含请求凭证的 secret 密钥
类型
object
必填
  • key
属性类型描述

key

字符串

要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否需要定义 Secret 还是其密钥

8.1.7. .spec.endpoints[].basicAuth

描述
basicAuth 允许端点通过基本身份验证了解更多信息进行验证 :https://prometheus.io/docs/operating/configuration/#endpoints
类型
object
属性类型描述

password

对象

服务监控器命名空间中的 secret,其中包含用于身份验证的密码。

username

对象

服务监控器命名空间中的 secret,其中包含用于身份验证的用户名。

8.1.8. .spec.endpoints[].basicAuth.password

描述
服务监控器命名空间中的 secret,其中包含用于身份验证的密码。
类型
object
必填
  • key
属性类型描述

key

字符串

要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否需要定义 Secret 还是其密钥

8.1.9. .spec.endpoints[].basicAuth.username

描述
服务监控器命名空间中的 secret,其中包含用于身份验证的用户名。
类型
object
必填
  • key
属性类型描述

key

字符串

要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否需要定义 Secret 还是其密钥

8.1.10. .spec.endpoints[].bearerTokenSecret

描述
要挂载以读取用于提取目标的 bearer 令牌的机密。secret 需要与服务监控器位于同一个命名空间中,并可以被 Prometheus Operator 访问。
类型
object
必填
  • key
属性类型描述

key

字符串

要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否需要定义 Secret 还是其密钥

8.1.11. .spec.endpoints[].metricRelabelings

描述
MetricRelabelConfigs 在 ingestion 前应用到示例。
类型
array

8.1.12. .spec.endpoints[].metricRelabelings[]

描述
RelabelConfig 允许动态重写标签集,在 ingestion 前被应用到示例。它定义 Prometheus 配置的 <metric_relabel_configs>-section。更多信息: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
类型
object
属性类型描述

action

字符串

根据正则表达式匹配要执行的操作。默认为 'replace'。大写,小写操作需要 Prometheus >= 2.36。

modulus

整数

modulus 采用 source 标签值的哈希。

regex

字符串

匹配提取值的正则表达式。默认为 '(configured)'

replacement

字符串

如果正则表达式匹配,则执行 regex 替换的替换值。正则表达式捕获组可用。默认为 '$1'

分隔符

字符串

在串联的源标签值之间放置分隔符。默认为 ';'。

sourceLabels

数组(字符串)

source 标签从现有标签中选择值。其内容使用配置的分隔符连接,并与为替换、keep 和 drop 操作配置的正则表达式匹配。

targetLabel

字符串

生成的值以 replace 操作写入的标签。对于 replace 操作是必需的。正则表达式捕获组可用。

8.1.13. .spec.endpoints[].oauth2

描述
URL 的 OAuth2。仅在 Prometheus 版本 2.27.0 及更新版本中有效。
类型
object
必填
  • clientId
  • clientSecret
  • tokenUrl
属性类型描述

clientId

对象

包含 OAuth2 客户端 ID 的 secret 或 configmap

clientSecret

对象

包含 OAuth2 客户端 secret 的 secret

endpointParams

对象(字符串)

附加到令牌 URL 的参数

scopes

数组(字符串)

用于令牌请求的 OAuth2 范围

tokenUrl

字符串

从中获取令牌的 URL

8.1.14. .spec.endpoints[].oauth2.clientId

描述
包含 OAuth2 客户端 ID 的 secret 或 configmap
类型
object
属性类型描述

configMap

对象

包含用于目标的数据的 ConfigMap。

secret

对象

包含用于目标的数据的 secret。

8.1.15. .spec.endpoints[].oauth2.clientId.configMap

描述
包含用于目标的数据的 ConfigMap。
类型
object
必填
  • key
属性类型描述

key

字符串

要选择的密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否必须定义 ConfigMap 还是其键

8.1.16. .spec.endpoints[].oauth2.clientId.secret

描述
包含用于目标的数据的 secret。
类型
object
必填
  • key
属性类型描述

key

字符串

要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否需要定义 Secret 还是其密钥

8.1.17. .spec.endpoints[].oauth2.clientSecret

描述
包含 OAuth2 客户端 secret 的 secret
类型
object
必填
  • key
属性类型描述

key

字符串

要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否需要定义 Secret 还是其密钥

8.1.18. .spec.endpoints[].params

描述
可选的 HTTP URL 参数
类型
对象

8.1.19. .spec.endpoints[].relabelings

描述
在提取前,重新labelConfigs 应用到示例。Prometheus Operator 会自动为几个标准 Kubernetes 字段添加重新标记。原始提取作业的名称可以通过 \__tmp_prometheus_job_name 标签获得。更多信息: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
类型
array

8.1.20. .spec.endpoints[].relabelings[]

描述
RelabelConfig 允许动态重写标签集,在 ingestion 前被应用到示例。它定义 Prometheus 配置的 <metric_relabel_configs>-section。更多信息: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
类型
object
属性类型描述

action

字符串

根据正则表达式匹配要执行的操作。默认为 'replace'。大写,小写操作需要 Prometheus >= 2.36。

modulus

整数

modulus 采用 source 标签值的哈希。

regex

字符串

匹配提取值的正则表达式。默认为 '(configured)'

replacement

字符串

如果正则表达式匹配,则执行 regex 替换的替换值。正则表达式捕获组可用。默认为 '$1'

分隔符

字符串

在串联的源标签值之间放置分隔符。默认为 ';'。

sourceLabels

数组(字符串)

source 标签从现有标签中选择值。其内容使用配置的分隔符连接,并与为替换、keep 和 drop 操作配置的正则表达式匹配。

targetLabel

字符串

生成的值以 replace 操作写入的标签。对于 replace 操作是必需的。正则表达式捕获组可用。

8.1.21. .spec.endpoints[].tlsConfig

描述
提取端点时使用的 TLS 配置
类型
object
属性类型描述

ca

object

验证服务器证书时使用的证书颁发机构。

caFile

字符串

Prometheus 容器中用于目标的 CA 证书的路径。

cert

object

执行 client-authentication 时要出现的客户端证书。

certFile

字符串

目标的 Prometheus 容器中客户端证书文件的路径。

insecureSkipVerify

布尔值

禁用目标证书验证。

keyFile

字符串

目标的 Prometheus 容器中客户端密钥文件的路径。

keySecret

对象

包含目标客户端密钥文件的 secret。

serverName

字符串

用于验证目标的主机名。

8.1.22. .spec.endpoints[].tlsConfig.ca

描述
验证服务器证书时使用的证书颁发机构。
类型
object
属性类型描述

configMap

对象

包含用于目标的数据的 ConfigMap。

secret

对象

包含用于目标的数据的 secret。

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

描述
包含用于目标的数据的 ConfigMap。
类型
object
必填
  • key
属性类型描述

key

字符串

要选择的密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否必须定义 ConfigMap 还是其键

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

描述
包含用于目标的数据的 secret。
类型
object
必填
  • key
属性类型描述

key

字符串

要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否需要定义 Secret 还是其密钥

8.1.25. .spec.endpoints[].tlsConfig.cert

描述
执行 client-authentication 时要出现的客户端证书。
类型
object
属性类型描述

configMap

对象

包含用于目标的数据的 ConfigMap。

secret

对象

包含用于目标的数据的 secret。

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

描述
包含用于目标的数据的 ConfigMap。
类型
object
必填
  • key
属性类型描述

key

字符串

要选择的密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否必须定义 ConfigMap 还是其键

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

描述
包含用于目标的数据的 secret。
类型
object
必填
  • key
属性类型描述

key

字符串

要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否需要定义 Secret 还是其密钥

8.1.28. .spec.endpoints[].tlsConfig.keySecret

描述
包含目标客户端密钥文件的 secret。
类型
object
必填
  • key
属性类型描述

key

字符串

要从中选择的 secret 的密钥。必须是一个有效的 secret 密钥。

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: 添加其他有用的字段。apiVersion、kind、uid?

optional

布尔值

指定是否需要定义 Secret 还是其密钥

8.1.29. .spec.namespaceSelector

描述
选择从哪些命名空间发现 Kubernetes Endpoints 对象的选择器。
类型
object
属性类型描述

any

布尔值

布尔值描述是否都选择了所有命名空间,而不是列表限制它们。

matchNames

数组(字符串)

要从中选择的命名空间名称列表。

8.1.30. .spec.selector

描述
选择 Endpoints 对象的选择器。
类型
object
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

8.1.31. .spec.selector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
array

8.1.32. .spec.selector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.