Milvus 监控框架概述
本主题介绍 Milvus 如何使用 Prometheus 监控指标,以及如何使用 Grafana 可视化指标和创建警报。
Milvus 中的 Prometheus
Prometheus是用于 Kubernetes 实施的开源监控和警报工具包。它以时间序列数据的形式收集和存储指标。这意味着度量值在记录时带有时间戳,并与称为标签的可选键值对一起存储。
目前,Milvus 使用 Prometheus 的以下组件:
- Prometheus 端点,用于从出口商设置的端点提取数据。
- Prometheus 操作员,用于有效管理 Prometheus 监控实例。
- Kube-prometheus 提供易于操作的端到端 Kubernetes 集群监控。
度量名称
Prometheus 中有效的度量名称包含三个元素:命名空间、子系统和名称。这三个元素用"_"连接。
Prometheus 监控的 Milvus 度量的命名空间是 "milvus"。根据度量指标所属的角色,其子系统应为以下八个角色之一:"rootcoord"、"proxy"、"querycoord"、"querynode"、"indexcoord"、"indexnode"、"datacoord"、"datanode"。
例如,计算查询向量总数的 Milvus 指标名为milvus_proxy_search_vectors_count
。
度量类型
Prometheus 支持四种度量类型:
- 计数器:一种累积度量类型,其值只能在重启时增加或重置为零。
- 仪表:一种度量类型,其值可以上升或下降。
- 直方图:一种根据可配置的桶进行计数的指标。常见的例子是请求持续时间。
- 摘要:与直方图类似的一种度量类型,可在滑动时间窗口内计算可配置的量化值。
指标标签
Prometheus 通过标签来区分具有相同度量名称的样本。标签是度量指标的特定属性。具有相同名称的度量值必须具有相同的variable_labels
字段值。下表列出了 Milvus 度量常见标签的名称和含义。
标签名称 | 定义 | 值 |
---|---|---|
"节点 ID | 角色的唯一标识。 | 由 milvus 生成的全局唯一 ID。 |
状态 | 已处理操作或请求的状态。 | "放弃"、"成功 "或 "失败"。 |
"查询类型 | 读取请求的类型。 | "搜索 "或 "查询"。 |
"msg_type | 信息的类型。 | "插入"、"删除"、"搜索 "或 "查询"。 |
"段状态 | 段的状态。 | "密封"、"增长"、"刷新"、"冲洗"、"丢弃 "或 "导入"。 |
"缓存状态 | 缓存对象的状态。 | "命中 "或 "未命中"。 |
"缓存名称 | 缓存对象的名称。该标签与 "cache_state "标签一起使用。 | 例如 "CollectionID"、"Schema "等。 |
"通道名称 | 消息存储(Pulsar 或 Kafka)中的物理主题。 | 例如:"by-dev-rootcoord-dml_0"、"by-dev-rootcoord-dml_255 "等。 |
"函数名 | 处理特定请求的函数名称。 | 例如,"CreateCollection"(创建集合)、"CreatePartition"(创建分区)、"CreateIndex"(创建索引)等。 |
"用户名 | 用于身份验证的用户名。 | 用户名由用户自行决定。 |
"索引任务状态 | 索引任务在元存储中的状态。 | "未发布"、"进行中"、"失败"、"已完成 "或 "已回收"。 |
Milvus 中的 Grafana
Grafana是一个开源的可视化堆栈,可以连接所有数据源。通过调出指标,它可以帮助用户理解、分析和监控海量数据。
Milvus 使用 Grafana 的可定制仪表盘进行指标可视化。
下一步
了解了监控和警报的基本工作流程后,请学习: