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ページに表示される内容
上部のタイルには、ユーザーの操作に通常かかる時間、最も遅い操作、繰り返しクエリの検出結果、長時間実行中のスケジュールされたアクション、データベースの健全性スコアが表示されます。その下に4つのタブがあります:
- 「最も遅い操作」:ボタン、画面、サーバーアクション、ウェブサイトのルート、キュージョブを遅い順に表示します。種類、会社、直近24時間・7日間・30日間で絞り込めます。一覧には最も遅い100件が表示され、残りは「すべて表示」で見られます(Solo では最も遅い20件)。
- 「スケジュールジョブ」:各スケジュールジョブのすべての実行のタイムライン。長い実行や重なった実行が強調表示されます。最も忙しい20件のジョブが先に描かれ、残りは「すべて表示」で見られます。
- 「データベースの健全性」:スコア、その各項目、推移。
- 「モジュールの変更」:アップグレード、インストール、削除されたすべてのモジュールと、それを使う操作の前後のパフォーマンス。
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件)。推移にはそれが線として表示され、操作が目標を上回ると「速度目標の未達」アラートが発火します。
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キー」にあります。