Odoo
Odoo 性能
安装 blipit_monitor 1.18.0 from the Odoo Apps store
Odoo 性能是 Pulse 的一部分,会显示哪些按钮、界面和计划任务让你的用户在等待,以及原因。对每一项,Blipit 都会把时间拆分为数据库和 Python 两部分,指出重复查询及执行它们的代码行,在发布或模块升级后变慢时告诉你,并在用户开始抱怨之前提醒你。
1开启
将 Blipit 模块升级到 1.18.0 或更高版本:应用 › Blipit Error Monitoring › 升级。在 Solo 及更高方案中,性能功能默认开启,你的 Odoo 项目会出现在 app.blipit.io 侧边栏的“Pulse”中,那里列出了你的所有项目。指向旧 Odoo 性能页面的链接也会打开这里。要关闭它,请在 Odoo 中进入 设置 › Blipit › 性能。在第一批数据到达之前,页面会提示正在等待你的数据库。
2页面显示的内容
顶部的卡片显示用户操作通常需要的时间、最慢的操作、重复查询的发现、运行时间过长的计划任务,以及你的数据库健康评分。下方有四个标签页:
- “最慢的操作”:按钮、界面、服务器动作、网站路由和队列任务,最慢的排在最前。可按类型、公司以及最近 24 小时、7 天或 30 天筛选。列表显示最慢的 100 个,其余可通过“显示全部”查看(Solo 显示最慢的 20 个)。
- “计划任务”:每个计划任务每次运行的时间线,运行过长和相互重叠的运行会被突出显示。先绘制最繁忙的 20 个任务,其余可通过“显示全部”查看。
- “数据库健康”:评分、各个组成部分及其趋势。
- “模块变更”:每个被升级、安装或移除的模块,以及使用该模块的操作在变更前后的表现。
4重复查询和代码行
一个界面每一行都执行同一条查询,是 Odoo 随着数据增长而变慢的最常见原因。Blipit 会标记慢调用中的重复查询,并显示执行它们的代码行,例如 my_module/models/sale_order.py:142 in _compute_margin,让你的开发人员确切知道从哪里入手。查询显示时会去掉所有值。
5模块升级和“自此变慢”
Blipit 会记录每个被升级、安装或移除的模块,以及你标记的每次发布。每个操作的趋势图会把它们显示为标记。当某个操作在其中某次变更之后明显变慢时,它的页面会显示“自此变慢”,后面是对应的发布或模块升级,并给出前后的耗时。“模块变更”标签页列出每次变更、涉及该模块的操作以及它们在前后的表现。Team 和 Scale。
6数据库健康
针对 Odoo 数据库中那些会悄悄拖慢一切的部分给出 0 到 100 的评分,每 15 分钟刷新一次:
- Team:卡住或发送失败的外发邮件、延迟或失败的计划任务,以及失败或等待过久的队列任务。
- Scale 还会加入数据库和附件的大小、锁和长事务,以及可能缺少索引的大表。
7性能告警
“告警”页面有一个“性能告警”部分,每个项目有四条规则,一开始就都已开启:“操作变慢”(某个按钮、界面或页面慢于你设置的上限)、“计划任务运行过久”(某次运行超过你设置的上限)、“未达速度目标”(某个操作超过其速度目标,仅限 Scale)和“数据库健康下降”(健康评分低于你设置的上限)。在“告警”页面设置每个上限或关闭某条规则。性能告警发送给与你其他告警相同的人员和渠道,遵守暂停设置和每小时告警额度,每个操作只发一条通知,并在问题消失后发送恢复通知。在“你的自定义告警”下,“新建告警”可为每个项目再添加最多 20 个:选择一个指标(第 95 百分位时间、平均时间、最长调用、调用次数、数据库耗时占比或每次调用的查询数)、它监控的操作、你的上限、分钟数,以及至少需要多少次调用才计入。Team 和 Scale。
8速度目标
在 Scale 方案中,可以为任意操作设置速度目标,例如“确认报价单”为 2 秒,每个项目最多 50 个。趋势图会把它画成一条线,当操作高于该目标时,“未达速度目标”告警就会触发。
10损失的时间
在 Scale 方案中,“本周损失的时间”卡片会估算用户在慢按钮和慢界面上等待了多少小时。输入团队每小时的时间成本后,Blipit 还会以你的货币显示为金额。当某个操作设置了速度目标时,损失的时间会以该目标为基准计算。
11慢速问题的 AI 修复
在 Scale 方案中,对慢调用使用“用 AI 分析”,会读取它的查询、背后的代码行以及该操作,返回可能的原因、修复方法,以及可直接复制到 Claude Code 或 Cursor 的提示词。连接 GitHub 仓库后,它还会读取这些行的代码,并可以创建包含修复的拉取请求。每次分析消耗 AI 额度,与问题的 AI 修复相同。
12在 Odoo 中
从模块 1.18.0 起,Odoo 中的 Blipit 菜单新增“性能”列表,显示最慢的操作、它们的耗时、数据库占比以及任何发现,每 15 分钟从 Blipit 刷新一次。每一行都可在 Blipit 中打开该操作。适用于 Solo 及更高方案。
13方案
- Free:页面显示 Odoo 性能的预览,不收集任何数据。
- Solo:每个项目最多跟踪 500 个操作并显示最慢的 20 个,数据库与 Python 时间对比,每个操作最多 5 条发现的重复查询及代码行,计划任务时间线,Odoo 中的“性能”列表,以及 24 小时的历史记录。
- Team:每个项目最多跟踪 2,000 个操作并全部列出,所有发现,模块升级影响和“自此变慢”,性能告警及每个项目最多 20 条自定义告警,“这很慢”按钮,涵盖邮件、计划任务和队列任务的数据库健康,以及 7 天的历史记录。
- Scale:包含 Team 的全部功能,每个项目最多跟踪 5,000 个操作,另加完整的数据库健康、以小时和金额计的损失时间、每个项目最多 50 个带告警的速度目标、慢速问题的 AI 修复,以及 30 天的历史记录。
14隐私
Blipit 接收的是计数、耗时、去掉所有值的查询文本、代码的文件和行号,以及作为纯数字的 Odoo 用户 ID 和公司 ID。它绝不接收记录 ID、姓名、金额、查询参数、字段值或消息。性能数据与你的事件存储在同一个数据库和区域中。
须知
- 适用于部署在你自己服务器上的 Odoo 和 Odoo.sh。Odoo Online 不允许第三方模块。
- 测量不会给用户的请求增加可察觉的时间,每个 Odoo worker 每分钟通过一次小请求发送一次数据。性能数据不按事件计费。
- Odoo 的响应还会带上 Server-Timing 头,因此浏览器开发者工具的“网络”标签页会显示每次调用的服务器和数据库耗时。
- 当 Odoo 重启某个 worker 时,该 worker 最多一分钟的数据可能会丢失。
- 历史记录随方案而定:Solo 24 小时,Team 7 天,Scale 30 天。
遇到问题?发邮件至 support@blipit.io。每个项目的密钥和项目 id 在 app.blipit.io 的“API 密钥”下。