Odoo performance

Install blipit_monitor 1.18.0 from the Odoo Apps store

Odoo performance, part of Pulse, shows which buttons, screens and scheduled jobs make your users wait, and why. For each one Blipit splits the time between the database and Python, points to repeated queries and the line of code that runs them, tells you when something got slower after a release or a module upgrade, and warns you before your users start complaining.

1Turn it on

Upgrade the Blipit module to 1.18.0 or later: Apps, Blipit Error Monitoring, Upgrade. Performance is on by default on Solo and higher plans, and your Odoo project appears under Pulse in the app.blipit.io sidebar, where all your projects are listed. Links to the old Odoo performance page open it too. To switch it off, go to Settings, Blipit, Performance in Odoo. Until the first numbers arrive, the page says it is waiting for your database.

2What the page shows

Tiles at the top show how long your users' actions usually take, the slowest action, the repeated-query findings, the scheduled jobs running long and your database health score. Below them are four tabs:

  • Slowest actions: buttons, screens, server actions, website routes and queue jobs, slowest first. Filter by kind, by company and by the last 24 hours, 7 days or 30 days. The list shows the 100 slowest, with Show all for the rest (Solo shows the 20 slowest).
  • Scheduled jobs: a timeline of every run of each scheduled job, with long and overlapping runs highlighted. The 20 busiest jobs are drawn first, with Show all for the rest.
  • Database health: the score, each part of it and its trend.
  • Module changes: every module that was upgraded, installed or removed, with how the actions that use it performed before and after.

3Slowest buttons, screens and scheduled jobs

Blipit measures the buttons that move a document forward, the screens your users open (lists, forms, kanban and search), server actions, website routes, queue jobs and every scheduled job run. Open any of them to see:

  • Calls, typical time, slow time and the slowest call, with the trend over the window.
  • Database time against Python time, so you know whether to look at queries or at code.
  • How many queries a call runs on average.
  • The slowest recent calls, each with the queries it ran.

4Repeated queries and the line of code

A screen that runs the same query once per line is the most common reason Odoo gets slow as your data grows. Blipit flags repeated queries on a slow call and shows the line of code that runs them, such as my_module/models/sale_order.py:142 in _compute_margin, so your developer knows exactly where to start. The query is shown with every value removed.

5Module upgrades and Slower since

Blipit notices every module that is upgraded, installed or removed, and every release you mark. The trend on each action shows these as markers. When an action got noticeably slower after one of them, its page says Slower since followed by the release or module upgrade, with the time before and after. The Module changes tab lists each change with the actions that touch that module and how they performed before and after. Team and Scale.

6Database health

A score from 0 to 100 for the parts of your Odoo database that quietly slow everything down, refreshed every 15 minutes:

  • Team: outgoing mail stuck or failing, scheduled jobs that are late or failing, and queue jobs failing or waiting too long.
  • Scale adds database and attachment size, locks and long transactions, and large tables that may be missing an index.

7Performance alerts

The Alerts page has a Performance alerts section with four rules for each project, all on from the start: Action is slow (a button, screen or page gets slower than your limit), Scheduled job runs long (a run takes longer than your limit), Speed target missed (an action goes above its speed target, Scale only) and Database health drops (the health score falls below your limit). Set each limit or switch a rule off on the Alerts page. Performance alerts go to the same people and channels as your other alerts, respect snoozes and the hourly alert budget, send one notice per action, and send an all-clear once the problem is gone. Under Your own alerts, New alert adds up to 20 more per project: pick a measure (95th percentile, average or longest time, number of calls, database share of time or queries per call), which actions it watches, your limit, the minutes and the fewest calls that count. Team and Scale.

8Speed targets

On Scale, set a speed target on any action, such as 2 seconds for Confirm quotation, up to 50 per project. The trend draws it as a line, and the Speed target missed alert fires when the action goes above it.

9This is slow button

The bug-report widget gets a This is slow option. When a user presses it, the report carries the timings of the last requests on that page: how long each took, how much of that was the server and how many database queries it ran. The bug report page shows them as a Slowness report table. Each report counts toward your plan's monthly bug-report allowance, like any other bug report. Team and Scale.

10Time lost

On Scale, the Time lost this week tile estimates how many hours your users spent waiting on slow buttons and screens. Enter what an hour of your team's time costs and Blipit also shows it as money, in your currency. When an action has a speed target, time lost is counted against that target.

11AI fix for slowness

On Scale, Analyse with AI on a slow call reads its queries, the lines of code behind them and the action, and returns the likely cause, a fix and a copy-ready prompt for Claude Code or Cursor. With a GitHub repository connected it also reads the code at those lines and can open a pull request with the fix. Each analysis uses AI credit, the same as AI fix on issues.

12Inside Odoo

From module 1.18.0, the Blipit menu in Odoo has a Performance list with your slowest actions, how long they take, their database share and any finding, refreshed from Blipit every 15 minutes. Each line opens the action in Blipit. Solo and higher plans.

13Plans

  • Free: the page shows a preview of what Odoo performance looks like; nothing is collected.
  • Solo: up to 500 tracked actions per project with the 20 slowest shown, database against Python time, repeated queries with the line of code on up to 5 findings per action, the scheduled-job timeline, the Performance list inside Odoo, and 24 hours of history.
  • Team: up to 2,000 tracked actions per project, all of them listed, every finding, module upgrade impact and Slower since, performance alerts and up to 20 of your own alerts per project, the This is slow button, database health for mail, scheduled jobs and queue jobs, and 7 days of history.
  • Scale: everything in Team with up to 5,000 tracked actions per project, plus full database health, time lost in hours and money, up to 50 speed targets per project with their alert, AI fix for slowness, and 30 days of history.

14Privacy

Blipit receives counts, durations, the text of queries with every value removed, the file and line of code, and the Odoo user id and company id as plain numbers. It never receives record ids, names, amounts, query parameters, field values or messages. Performance data is stored in the same database and region as your events.

Good to know

  • Works with Odoo on your own servers and on Odoo.sh. Odoo Online does not allow third-party modules.
  • Measuring adds no noticeable time to your users' requests, and each Odoo worker sends its numbers once a minute in one small request. Performance data is not billed as events.
  • Odoo's responses also carry a Server-Timing header, so the Network tab of your browser's developer tools shows the server and database time of each call.
  • When Odoo restarts a worker, up to a minute of that worker's numbers can be lost.
  • History follows your plan: 24 hours on Solo, 7 days on Team and 30 days on Scale.

Stuck? Email support@blipit.io. Keys and the project id for each project are under API keys in app.blipit.io.