直近21日分の自動運転の失敗記録をAIに見直させたところ、サイトのクリック数を取り込む処理が、約11日間毎日失敗し続けていたことが分かりました。途中で一度手作業で直していたものの、その後の結果を確認しないまま、失敗が続いていました。
同じ記録には、別の仕組みが止まったまま5日間経過していたことも残っていました。一方で、ThreadsやXへの投稿失敗は、次の実行で自然に回復していました。失敗の記録を確認するだけでは、いま対応すべき問題と、一時的に起きて回復した問題を区別できていませんでした。
失敗記録を見直して分かったこと
自動運転では、処理が失敗したときの記録が残ります。ただし、記録が残ることと、誰かが継続して確認することは別です。今回、直近21日分の記録をまとめて見直したことで、クリック数の取り込みが毎日失敗していたことに気づきました。
この処理は、失敗を見つけたあとに一度手作業で直していました。ところが、修正後に処理が動いたか、その後も継続して成功しているかを確認していませんでした。そのため、直したつもりでいったん作業を終えたあとも、失敗が続いていたことになります。
別の仕組みについても、止まったことを示す記録がないまま、5日間動いていませんでした。失敗が発生したときだけ記録を残す方法では、処理が止まったままなのか、そもそも動く対象がないのかを記録だけから判断しにくい場合があります。今回分かったのは、失敗の記録だけでなく、動いているはずの処理が継続しているかを見る必要があるということでした。
一時的な失敗と、続いている失敗は違う
すべての失敗が、長期間の障害につながっていたわけではありません。投稿については、Threadsで4回、Xで1回の失敗が記録されていましたが、いずれも次の実行で自然に回復していました。
このような失敗と、同じ処理が毎回失敗している状態を同じ扱いにすると、記録を見た人が状況を判断しにくくなります。失敗が一度あったことと、失敗が継続していることでは、必要な対応が異なるためです。
今回の記録を並べて見えてきた共通点は、「一度手をつけたが、最後まで見届けずに離れた」ことでした。手で直したあとに再実行の結果を確認しなかったケースも、止まった処理を継続して確認しなかったケースも、問題が解消したかどうかを追う役割がありませんでした。
毎日の見回り役を置く
そこで、毎朝決まった時間に自動運転の状態を見回る役を置くことにしました。確認するのは、失敗が続いている処理と、データが増えていない処理です。特定の失敗記録を読むだけでなく、動いているはずのものが実際に動いているかも確認対象にします。
報告では、一時的な失敗と、継続している失敗を分けます。次の実行で回復したものを、長く止まっている問題と同じように扱わないためです。反対に、失敗が続いているものや、データが増えていないものは、見落とされないように別に示します。
この見回りは、今回の記録をもとに決めた運用方針です。すでに毎朝の確認が実行され、問題を防げているという意味ではありません。確認対象や報告の仕組みを用意したあと、実際に継続して状態を把握できるかを確かめる必要があります。
「直した」ではなく、その後まで確認する
自動運転の処理は、一度動いたことを確認して終わりにすると、その後の失敗や停止を見落とすことがあります。今回も、手作業で直した記録はありましたが、その後の結果を確認していなかったため、約11日間の失敗が発見されませんでした。
AIによる自動化では、「直したつもり」「動いているはず」を、実際の状態の確認に置き換える必要があります。失敗記録を残すだけでなく、定期的に失敗の継続とデータの停滞を見回り、一時的な失敗と継続中の問題を分けて報告する。処理の修正だけでなく、その後まで見届ける仕組みが必要だと分かりました。