运维手册
本节介绍 Univer 提供的后端服务运维资源,帮助你更好地了解 Univer 后端服务的运行情况、定位故障、管理容量。
Univer 提供了以下可观测支持:
- Prometheus metrics 指标
- 服务日志
Metrics
Univer 后端服务输出了 Prometheus 指标,如果你配置了 Univer 部署内置的可观测组件,你可以直接打开 grafana 查看,我们已经内置了一组 grafana 监控面板,包括:
- 基础组件:rabbitmq、redis、rds
- 协同服务 collaboration-server
- 主服务 universer
- 导入导出服务 exchange
你可从中实时查看 Univer 服务的性能指标、可用性、关键业务指标。如果你使用的是自己的监控系统,可以点此下载 Univer 准备好的 grafana 监控面板配置。
grafana 看板基础说明:
- 服务黄金 4 指标,重点观测 QPS、整体和各 API 的 SLI、错误码分布
- 业务视角的基础组件性能和可用性
- RDS
- Redis & MQ
- 协同编辑业务指标
- 如果你开启了 USIP 集成,可以观测 Univer 服务侧视角的技术指标
服务日志
如果你使用 docker compose 部署,可以通过 docker 命令直接查看对应容器的日志。Univer 后端服务的日志除了输出到标准输出,还会输出到持久化卷,但不会永久保存。当单个服务实例的日志总大小超过 1G 时会立即清除部分较早的日志,即使日志大小未超过 1G,最多也只会保留 30 天,超过 30 天的那部分日志文件将被清除。你可以直接打开对应的日志文件查看。universer 服务的日志保存在部署目录下的 /logs/universer/
,导入导出服务的日志则保存在 /logs/worker-exchange/
不论你是用 docker compose 还是 k8s 部署,如果你配置部署了 Univer 内置的可观测组件,还可以使用 Loki 查看日志。查看路径:grafana Toggle Menu -> Explore,数据源选择 Loki,如下图所示:
当然,如果你已有自己的日志组件,可以配置采集 Univer 的日志。univer 后端服务的日志都会输出到标准输出。
常见错误排查
- 发现服务出现某些功能不可用
首先,打开监控面板,检查访问基础组件 RDS、MQ、Redis 是否正常,即查看 SLI 是否正常,如果 SLI 异常,一般就是基础组件故障或服务和基础组件的网络故障。
如果基础组件访问正常,再查看 universer 服务的 ingress 和 egress 的各接口 SLI 是否正常,如果有某些接口 SLI 异常,可查看此接口返回的错误码,根据错误码能了解一些原因。同时,通过 grafana Loki 尝试搜索该错误码的日志,搜索关键词:biz_code=the_biz_err_code。可通过这些信息进一步定位问题根因。