指标

指标配置 #

本文档将指导您如何配置指标功能。

什么是指标? #

指标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 定义指标的类型:countergaugehistogram
  • dimension 定义数据来源。它可以是 nodepodcontainer
  • 如果 kindcountergauge,则 value 是定义指标值的 CEL 表达式
  • buckets 专用于自定义类型为 histogram 的指标数据。
    • le 定义直方图存储段的上限,其含义与 Prometheus 直方图存储段相同。也就是说,每个存储段包含小于或等于 le 的值。
    • value 是提供存储段值的 CEL 表达式。
    • hidden 指示是否在指标中显示存储段。但存储段的值将计算并累积到下一个存储段中。

示例 #

请参阅 kubelet 的 /metrics/resource 端点的指标 以获取详细信息。