跳到主要内容

Observability Indicator 介绍

OBI 是 Observability Indicator 的简称,它用于从各种 metric/log/trace 工具中获取数据,并尝试为 Arbiter 获得一致的视图。

您可以使用路径 “manifests/crds/arbiter.k8s.com.cn_observabilityindicants.yaml” arbiter repostiroy 中的自定义资源定义。

在这里,我们使用示例 OBI 资源来解释每个配置。

OBI 通过 metric server 读取 CPU 使用情况

apiVersion: arbiter.k8s.com.cn/v1alpha1
kind: ObservabilityIndicant
metadata:
name: prometheus-node-cpu
namespace: arbiter-test
spec:
metric:
historyLimit: 1
metricIntervalSeconds: 30
metrics:
cpu:
aggregations: [ ]
description: cpu
query: (sum(count(node_cpu_seconds_total{mode="idle",node="{{.metadata.name}}"}) by (mode, cpu)) - sum(irate(node_cpu_seconds_total{mode="idle",node="{{.metadata.name}}"}[5m])))*1000
unit: 'm'
timeRangeSeconds: 3600
source: prometheus
targetRef:
group: ""
index: 0
kind: Node
labels:
"data-test": "data-test"
name: ""
namespace: ""
version: v1
status:
conditions: []
phase: ""
metrics: {}

上面的例子,我们做了如下配置:

  1. metadata 每个 Kubernetes 资源默认都有的。
  2. spec 下的 source 字段,它是 Arbiter 将从中读取数据的可观察性工具的类型,你只能使用 Arbiter 可以支持的类型。目前支持 metric-server 和 prometheus。
  3. spec 下的 metric 字段,这是来自源的数据收集策略。
属性用法默认值
historyLimit将保存的历史数据的最大限制1
metricIntervalSeconds从源检索数据的时间间隔30
timeRangeSeconds保持最新数据的时间范围3600
metrics将用于查询源的指标,它包含指标名称、查询语言、单位、聚合和描述3600
  1. spec 下的 targetRef 字段, 它用于从目标资源中获取一些元数据并使用查询中的值。
属性用法默认值
group与目标资源匹配的 API 组''
index要保存到此 OBI 的数据的索引,以防多个对象匹配0
kind与目标资源匹配的种类''
labels与目标资源匹配的标签''
name与目标资源匹配的名称''
namespace与目标资源匹配的 namespace''
version与目标资源匹配的 API 版本'v1'
  1. status 也是 Kubernetes 资源的默认值,它显示使用指定查询从源收集的当前数据。指标将收集数据和时间戳。