指标配置 #
本文档将指导您如何配置指标功能。
什么是指标? #
指标是kwok 配置,允许用户定义和模拟 kubelet 公开的指标端点。
下面的 YAML 显示了指标资源的所有字段
kind: Metrics
apiVersion: kwok.x-k8s.io/v1alpha1
metadata:
name: <string>
spec:
path: <string>
metrics:
- name: <string>
help: <string>
kind: <string>
dimension: <string>
labels:
- name: <string>
value: <string>
value: <string> # for counter and gauge
buckets: # for histogram
- le: <float64>
value: <string>
hidden: <bool>
kubelet 中共有四个与指标相关的端点:/metrics、/metrics/resource、/metrics/probe 和 /metrics/cadvisor,所有这些都以 Prometheus 样式公开。指标资源能够模拟具有这种样式的端点。
path 字段是必需的,并且必须以 /metrics 开头。为了区分不同节点的指标,路径包含变量 {nodeName},该变量将被节点名称替换。
每个子字段的描述可在 指标 API 中找到。为了方便读者,我们还在这里镜像了文档,并添加了一些额外的注释。
metrics 是特定配置项的列表,每个配置项都对应于一个 Prometheus 样式指标
name定义指标名称。labels定义指标标签,每个项目对应一个特定的指标标签。name是一个常量字符串,提供标签名称。value表示为 CEL 表达式,该表达式动态确定标签值。例如:您可以使用node.metadata.name将节点名称作为标签值引用。
help定义指标的帮助字符串。kind定义指标的类型:counter、gauge或histogram。dimension定义数据来源。它可以是node、pod或container。- 如果
kind为counter或gauge,则value是定义指标值的 CEL 表达式。 buckets专用于自定义类型为histogram的指标数据。le定义直方图存储段的上限,其含义与 Prometheus 直方图存储段相同。也就是说,每个存储段包含小于或等于le的值。value是提供存储段值的 CEL 表达式。hidden指示是否在指标中显示存储段。但存储段的值将计算并累积到下一个存储段中。
示例 #
请参阅 kubelet 的 /metrics/resource 端点的指标 以获取详细信息。