Windows 下基于 Prometheus 的 Milvus 监控系统部署及 Grafana 可视化
在使用 Milvus 向量数据库时,我们经常需要监控数据库的一些关键信息如内存占用,访问量等等,本文讲述如何部署相应的可视化监控系统。
利用 Prometheus 监控数据库指标
指标是提供有关系统运行状态信息的指标。例如,通过指标,你可以了解 Milvus 中一个数据节点消耗了多少内存或 CPU 资源。了解 Milvus 集群中组件的性能和状态,可以让你充分了解情况,从而做出更好的决策,更及时地调整资源配置。
先决条件
本教程使用 kube-prometheus 为省去安装和手动配置每个监控告警组件的麻烦。
首先基于 Kubernetes 集群部署 Milvus 向量数据库,参见 Windos 环境下 Milvus 向量数据库的 k8s 集群部署。
接下来需要使用 kube-prometheus/manifests
目录下的配置创建监控堆栈。
1 | git clone https://github.com/prometheus-operator/kube-prometheus.git |
默认的 prometheus-k8s clusterrole 无法捕获 milvus 的指标,需要打补丁:
1 | kubectl patch clusterrole prometheus-k8s --type=json -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": [""], "resources": ["pods", "services", "endpoints"], "verbs": ["get", "watch", "list"]}}]' |
Note :该命令要用
bash
执行,若用PowerShell
则会因为转义字符的原因报错。
要删除堆栈,请运行:
1 | kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup |
在 Kubernetes 上部署监控服务
访问仪表盘
将 Prometheus 服务转发到端口 9090
,将 Grafana 服务转发到端口 3000
。
1 | kubectl --namespace monitoring --address 0.0.0.0 port-forward svc/prometheus-k8s 9090 |
Note :这里要尽量新开两个终端执行命令,避免端口冲突,并且执行过后不要关闭终端。如果报错,请等待一段时间后新开终端执行命令。
启用 ServiceMonitor
Milvus Helm 默认未开启 ServiceMonitor。在 Kubernetes 集群中安装 Prometheus Operator 后,可以通过添加参数 metrics.serviceMontior.enabled=true
来启用它。
1 | helm upgrade my-release milvus/milvus --set metrics.serviceMonitor.enabled=true --reuse-values |
这里的
helm upgrade
命令同样可以用 Windos 环境下 Milvus 向量数据库的 k8s 集群部署 中helm install
报错后的本地安装方法的命令一样利用本地安装包更新,且两条命令使用的是同一个安装包。
安装完成后,检查 ServiceMonitor 资源。
1 | kubectl get servicemonitor |
返回:
1 | NAME AGE |
在 Grafana 中可视化 Milvus 指标
打开 Grafana 可视化面板
在浏览器地址栏输入 http://localhost:3000
进入 Grafana 面板,键入 用户名:密码
admin:admin
登录。
检查 Prometheus 是端口是否连通
进入 Home > Connections > Datasources > prometheus
底部,点击 Test
。
如果像我一样报错就说明端口 9090
没有连通。
接下来添加一个新的 Prometheus 的数据源,尝试将 Connection
下的 Prometheus server URL
改为可以连通的地址,如果是用终端开启的端口,即用 Windows 终端执行的前文的端口转发命令,则尝试 URL: http://host.docker.internal:9090
。
此时再测试,发现成功连接。
下载配置文件并导入仪表盘
从 JSON 文件下载并导入 Milvus Dashboard。
1 | wget https://raw.githubusercontent.com/milvus-io/milvus/2.2.0/deployments/monitor/grafana/milvus-dashboard.json |
通过命令获取困难的,可以采用本站提供的配置文件,该文件就是官方提供的配置文件。
选择数据源
导入仪表盘后选择刚刚创建的数据源,就可以成功检测到向量数据库的各种指标了。
本文参考
- Deploying Monitoring Services on Kubernetes
- Visualize Milvus Metrics in Grafana