ストアヘルス
ストアヘルスは WCPOS v1.10.0 で導入されました。従来の単独のログ画面を置き換え、同期、ローカルデータの網羅状況、サーバー負荷をリアルタイムで確認できるようにします。
ストアヘルスは、デバイスとWooCommerceストアの間で起きているすべてを確認できるPOSのダッシュボードです。ナビゲーションドロワーのハートビートアイコンから開きます。パフォーマンス、データベース、ログの3つのタブがあります。
パフォーマンス
パフォーマンスタブは、「POSはサーバーにどれだけの負荷をかけているのか、同期は正常か」に答えます。
- ステータス行 — エンジンの現在の状態にもとづく
✓ Normalまたは⚠ Needs attentionの表示です(すでに回復した一時的な不調が、1日中警告し続けることはありません)。 - 実測のアクティビティ — 過去24時間のリクエスト件数と一般的な応答時間は、推定ではなくこのレジでの実測値です。転送データ量は下限値です。サイズが宣言されていないレスポンスは0として扱われるためです。
- 稼働状況のストリップ — 過去24時間について1時間ごとに1セル表示します。緑はその時間帯のリクエストがエラーなく完了したこと、アンバーは少なくとも1件のリクエストが失敗したこと(1件でも該当します。しきい値はありません)、空欄はアプリが動作していなかったことを意味します。
- 次回チェックまでのカウントダウン — 次の変更チェックの予定時刻です。アイドル状態のレジでは、設定した間隔より長く表示されることが正常にありえます。チェックにはジッターがかかり、10分間操作がないと間隔が延びるためです。動きのないレジでカウントダウンが長くなるのは正常であり、同期が停止しているわけではありません。
同期プリセット
3つのプリセットカードで、このデバイスがどれだけ積極的に同期するかを、2つのダイヤル(POSが変更をチェックする頻度と、一度にリクエストするレコード数)で設定します。
| プリセット | チェック間隔 | リクエストあたりのレコード数 |
|---|---|---|
| エコ | 5分 | 25 |
| バランス(既定) | 60秒 | 50 |
| リアルタイム | 10秒 | 75 |
共有ホスティングや低価格のホスティングではエコを、複数のレジがお互いの変更をすばやく反映する必要があり、サーバーに余力がある場合はリアルタイムを選択してください。カスタムのスライダーでは、全範囲(5秒〜5分、10〜100件)を設定できます。
知っておいていただきたい点が2つあります。
- 設定はデバイスごとです。 1台のレジを調整しても、ほかのデバイスは変わりません。調整したいレジごとに同じ変更を行ってください。
- ダイヤルの横に表示される1日あたり約N件のリクエストという数値は、設定した間隔から算出した名目上のチェック回数であり、上限でも予測でもありません。ジッターによって実際の件数は増減します。変更がないときの
304は低コストですが、それでも1件のリクエストとしてカウントされます。アイドル時の減衰が件数を減らすのは、下限である60秒より速いプリセットの場合だけなので、バランスがそれ以上遅くなることはありません。
変更は再起動なしで即座に適用されます。これらの数値の裏側にある技術的な背景については、同期のパフォーマンスをご覧ください。
データベース
データベースタブは、「このデバイスには何があるのか、すべてサーバーに届いたのか」に答えます。
上部には4つのタイルがあります。販売準備完了のマイルストーン、このデバイス上のレコード数、使用中のストレージ、送信待ちの変更です。
最初の商品がデバイスに届いた時点で切り替わります。オフラインでも妨げにはなりません。商品がデバイスにあるレジは、オフラインで販売できる状態です。それこそがローカルファーストのPOSの目的です。
カバレッジ表
同期される各コレクションが1行ずつ表示され、デバイス上、サーバー上、カバレッジバーが示されます。これらの数値は厳格な誠実性のルールに従っており、サーバー上の合計数はサーバーが実際に報告した数値であって、推測ではありません。
- 確認中… — POSがまだ最新のサーバー合計数を取得できていません。ある行がこの状態のまま約15分以上続く場合、そのコレクションのRESTルートが失敗している可能性があります。ログを確認してください。
- バーが途中までなのは、多くの場合正常です。 顧客はアイドル時間に少しずつダウンロードされ、カテゴリーとクーポンは初めて開いたときにダウンロードされます。また、注文のバーは注文履歴全体に対して測定される一方で、レジは意図的に未処理の注文と最近の注文のみを保持します。そのため、まったく正常なレジでも注文は部分的と表示されます。
- 「消去して再ダウンロード」の後、件数が0または少ないのは設計どおりの結果であり、同期が停止しているわけではありません。 オンデマンドでダウンロードされるコレクションは、使用されるにつれて再び埋まっていきます。各行の説明に、そのコレクションがどのように埋まっていくかが記載されています。
サーバーに届かなかった変更
サーバーが変更を恒久的に拒否した場合(たとえば、サイトがリクエストを無効として拒否している間に作成された売上など)、POSはそれを黙って永久に再試行することはありませんし、隠すこともありません。その変更は保留され、サーバー自身が示した理由、発生日時とともにここに一覧表示され、2つの操作を選べます。
- 再送信 — 現在のレコードの内容からリクエストを組み立て直し、あらためてキューに入れます。同じフィールドが再び拒否された場合は、成功したふりをするのではなく、試行回数が目に見えて増えていきます。
- 破棄 — その変更を破棄します。確認ダイアログには、そのレコードにとって破棄が何を意味するかが正確に表示されます(レコードがこのデバイス上にしか存在しない場合、破棄によって削除されることも含みます)。
復旧は常に、意図的で目に見える操作です。ここに自動的に行われるものはありません。
消去して再ダウンロード
各コレクションの行には消去して再ダウンロードがあり、そのコレクションのローカルコピーを削除して取得し直します。確認画面には、削除されるレコード件数とおおよそのストレージ容量、そしてサーバーに安全に残るものが表示されます。ローカルデータをすべて消去するよりも、こちらをご利用ください。対象が絞られており、サインアウトもされません。すべてのローカルデータを消去は、引き続き完全なリセットの手段です。
ログ
ログタブは、このデバイス上の同期アクティビティの記録です。1行につき時刻、レベル、イベント、所要時間、ステータスが表示され、30日間保存されます。
- プリセットフィルター — すべて/アクション/エラー/同期に加えて、詳細診断の切り替えがあります。これは24時間だけ追加の詳細を記録し、その後自動的にオフになります。
- 行の詳細 — エラーと警告を展開すると、平易な言葉で書かれた原因、データの安全性に関する一文、推奨される次のステップ、そしてエラーコードのヘルプリンクが表示されます。各詳細表示にはコピー可能なイベントコードが含まれています。サポートにお問い合わせの際は、そのコードをお知らせください。
- ログエントリーは表示時に翻訳されるため、数か月前に書き込まれた行も、そのレジで現在使用している言語で読めます。安定した識別子となるのはイベントコードです。
ログタブは、滞留しているレコードの件数をログエントリーのみから算出します。一方でデータベースタブには、保留された拒否済みの変更も含まれます。両者が異なる場合、サーバーに届いていないものについてはデータベースが正です。
関連ページ
- 同期エンジンの仕組み — レーン、変更検出、書き込みキューに関する開発者向けの詳細
- 同期のパフォーマンス — サーバーを保護するリクエスト上限とバックオフのルール
- サーバーのパフォーマンス — WordPress/WooCommerceのホスティングのチューニング
- すべてのローカルデータを消去 — ローカルの完全なリセット