一般的なサイト監視が確かめているのは、そのURLが応答するか、ステータスコードは何か、応答にどれだけかかるか、の3つです。

この3つには共通の死角があります。見ているのは応答であって、中身ではありません。

ページは200と空っぽを両立できる

ページの枠はテンプレートが描き、中身はデータソースが埋めます。データソースから何も取れなくても、枠の描画は最後まで終わります。

その結果、ステータスコードは200で、タイトルもメニューもフッターもあり、構造は完全なのに、真ん中だけが空のページができあがります。

監視システムは満足しています。訪れた人には空白しか見えていません。

判定の基準を中身に変える

いまの私たちの監視プローブは、ステータスコードではなく本文エリアの文字数を見ています。

メインのコンテンツ領域を取り出し、タグを除いて、残った文字数を数えます。しきい値を下回れば、ステータスコードが何であれ赤です。

しきい値はページごとに決めます。一覧ページとお問い合わせページでは、妥当な文字数が1桁違います。決めきれないページでも、少なくとも「ゼロではないこと」は条件にします。

同じ構図は、ほかにもある

「正常に終了した」は「何かを生み出した」と同じではありません。終了コード0で終わったバッチ処理は、300件処理したのかもしれないし、0件だったのかもしれません。

「ファイルがある」は「中身がある」と同じではありません。書き込みに失敗すると0バイトのファイルが残りますが、後工程はたいてい存在しか確かめません。

⭐ グリーンのランプは、1つの問いに答えるべきです。証明しているのは「最後まで走った」ことか、それとも「ものがそこにある」ことか。この2つの距離が、そのランプが嘘をつける余地です。