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ページに表示される内容

上部のタイルには、ユーザーの操作に通常かかる時間、最も遅い操作、繰り返しクエリの検出結果、長時間実行中のスケジュールされたアクション、データベースの健全性スコアが表示されます。その下に4つのタブがあります:

  • 「最も遅い操作」:ボタン、画面、サーバーアクション、ウェブサイトのルート、キュージョブを遅い順に表示します。種類、会社、直近24時間・7日間・30日間で絞り込めます。一覧には最も遅い100件が表示され、残りは「すべて表示」で見られます(Solo では最も遅い20件)。
  • 「スケジュールジョブ」:各スケジュールジョブのすべての実行のタイムライン。長い実行や重なった実行が強調表示されます。最も忙しい20件のジョブが先に描かれ、残りは「すべて表示」で見られます。
  • 「データベースの健全性」:スコア、その各項目、推移。
  • 「モジュールの変更」:アップグレード、インストール、削除されたすべてのモジュールと、それを使う操作の前後のパフォーマンス。

3最も遅いボタン、画面、スケジュールされたアクション

Blipit は、ドキュメントを先に進めるボタン、ユーザーが開く画面(リスト、フォーム、かんばん、検索)、サーバーアクション、ウェブサイトのルート、キュージョブ、スケジュールされたアクションのすべての実行を計測します。いずれかを開くと次の内容が表示されます:

  • 呼び出し回数、通常の時間、遅いときの時間、最も遅い呼び出しと、期間中の推移。
  • データベースの時間と Python の時間の比較。クエリを見るべきか、コードを見るべきかがわかります。
  • 1回の呼び出しで実行されるクエリの平均数。
  • 最近の最も遅い呼び出しと、それぞれが実行したクエリ。

4繰り返しクエリとコードの行

1行ごとに同じクエリを実行する画面は、データが増えるにつれて Odoo が遅くなる最もよくある原因です。Blipit は遅い呼び出しの繰り返しクエリを検出し、my_module/models/sale_order.py:142 in _compute_margin のように、それを実行しているコードの行を表示します。開発者はどこから手をつければよいかが正確にわかります。クエリはすべての値を取り除いた状態で表示されます。

5モジュールのアップグレードと「以降遅くなった」

Blipit は、アップグレード、インストール、削除されたすべてのモジュールと、記録したすべてのリリースを把握します。各操作の推移には、これらがマーカーとして表示されます。そのいずれかの後に操作が明らかに遅くなった場合、そのページには「以降遅くなった」とリリースまたはモジュールのアップグレードが、前後の時間とともに表示されます。「モジュールの変更」タブには、各変更と、そのモジュールに関わる操作、およびその前後のパフォーマンスが一覧表示されます。Team と Scale。

6データベースの健全性

Odoo データベースのうち、気づかないうちにすべてを遅くする部分についての 0〜100 のスコアで、15分ごとに更新されます:

  • Team:止まっている、または失敗している送信メール、遅れている、または失敗しているスケジュールされたアクション、失敗している、または長く待っているキュージョブ。
  • Scale ではさらに、データベースと添付ファイルのサイズ、ロックと長いトランザクション、インデックスが不足している可能性のある大きなテーブルが加わります。

7パフォーマンスアラート

「アラート」ページには「パフォーマンスアラート」セクションがあり、プロジェクトごとに4つのルールが最初からオンになっています:「操作が遅い」(ボタン、画面、ページが設定した上限より遅くなる)、「スケジュールジョブの長時間実行」(実行が設定した上限より長くかかる)、「速度目標の未達」(操作が速度の目標を上回る。Scale のみ)、「データベースの健全性低下」(健全性スコアが設定した上限を下回る)。各上限の設定やルールのオフはアラートページで行います。パフォーマンスアラートはほかのアラートと同じ人とチャネルに送られ、スヌーズと1時間あたりのアラート上限に従い、操作ごとに1件だけ通知し、問題が解消すると復旧の通知を送ります。「独自のアラート」では「新しいアラート」でプロジェクトごとに最大 20 件まで追加できます。測定項目(95 パーセンタイルの時間、平均時間、最長の呼び出し、呼び出し数、データベースが占める時間の割合、呼び出しあたりのクエリ数)、対象のアクション、上限、分数、対象にする最小呼び出し数を選びます。Team と Scale。

8速度の目標

Scale では、「見積を確定」に2秒のように、任意の操作に速度の目標を設定できます(プロジェクトごとに最大50件)。推移にはそれが線として表示され、操作が目標を上回ると「速度目標の未達」アラートが発火します。

9「遅い」ボタン

バグ報告ウィジェットに「遅い」オプションが加わります。ユーザーがそれを押すと、レポートにはそのページの直近のリクエストの所要時間が含まれます:それぞれにかかった時間、そのうちサーバーの時間、実行されたデータベースクエリの数です。バグ報告ページには、それが「遅延レポート」の表として表示されます。各レポートは、ほかのバグ報告と同じくプランの月間バグ報告の上限に数えられます。Team と Scale。

10失われた時間

Scale では、「今週失われた時間」タイルが、ユーザーが遅いボタンや画面を待って過ごした時間を推定します。チームの1時間あたりのコストを入力すると、Blipit はそれをお客様の通貨で金額としても表示します。操作に速度の目標がある場合、失われた時間はその目標を基準に計算されます。

11遅さの AI 修正

Scale では、遅い呼び出しで「AI で分析」を使うと、そのクエリ、その背後にあるコードの行、操作を読み取り、考えられる原因、修正方法、そして Claude Code や Cursor にそのまま貼り付けられるプロンプトを返します。GitHub リポジトリを接続していれば、それらの行のコードも読み取り、修正を含むプルリクエストを作成できます。分析ごとに AI クレジットを使用します。課題の AI 修正と同じです。

12Odoo の中で

モジュール 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 ワーカーは1分に1回、1つの小さなリクエストで数値を送信します。パフォーマンスのデータはイベントとして課金されません。
  • Odoo のレスポンスには Server-Timing ヘッダーも付くため、ブラウザーの開発者ツールの「ネットワーク」タブで各呼び出しのサーバーとデータベースの時間を確認できます。
  • Odoo がワーカーを再起動すると、そのワーカーの最大1分間の数値が失われることがあります。
  • 履歴の期間はプランによって異なります:Solo は24時間、Team は7日間、Scale は30日間です。

お困りですか?support@blipit.io までメールしてください。各プロジェクトのキーとプロジェクト ID は app.blipit.io の「APIキー」にあります。