クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

ログとメトリクスで様子を見る

このレッスンのあとで: ログ、メトリクス、アラートを使って、システムの健康状態を確かめられる。

50分のレッスンコマンドなし

お客様の電話で気づいた

ある通販サイトで、年に一度の大きなセールがありました。

朝10時、注文が一気に増えました。10時20分、お客様から「支払いができない」という電話が入りました。

そのとき初めて、チームは決済の失敗に気づきました。20分のあいだ、誰も知らなかったのです。このレッスンでは、お客様より先に気づく方法を学びます。

このレッスンのゴール

メモ

ログ、メトリクス、アラートを使って、システムの健康状態を確かめられる。

キーワード

ことばいみれい
ログアプリが出来事を書き残した記録です。
メトリクス時間ごとに測った数値です。エラー率、応答時間
アラート数値が危ないときに、人に知らせる仕組みです。
しきい値アラートを出すかどうかの境目の値です。5%
応答時間頼んでから答えが返るまでの時間です。

学生が入力するセルは、このプレビューでは空白です。

ログは一つ一つの出来事の記録

アプリは、注文や失敗などの出来事をログに一行ずつ書きます。一行には、時刻、重さ、内容が並びます。

重さは、INFO (ふつう)、WARN (注意)、ERROR (失敗) などで分けます。ERROR の行を探せば、何が失敗したかが分かります。

次のブロックで、セールの日のログを調べましょう。

ログからエラーを探す

コード: bash
mkdir -p tsuhan && cd tsuhan
cat > app.log <<'END'
10:00:01 INFO  注文を受け付けました order=1201
10:00:03 INFO  注文を受け付けました order=1202
10:00:04 WARN  決済の応答が遅い 2100ms
10:00:06 ERROR 決済に失敗しました order=1203
10:00:07 INFO  注文を受け付けました order=1204
10:00:09 ERROR 決済に失敗しました order=1205
10:00:10 WARN  在庫の確認が遅い 1800ms
END

echo "全部の行:"
wc -l < app.log
echo "エラーの行:"
grep -c 'ERROR' app.log
grep 'ERROR' app.log

# ERROR を WARN に変えて、遅い処理を探してみてください。

メトリクスは数の変化を見る

ログは細かいですが、一行ずつ読むと時間がかかります。そこで、5分ごとの件数や割合を数えます。これがメトリクスです。

よく見るのは、エラー率と応答時間です。エラー率は、エラーの数を全部の数で割り、100を掛けて出します。

下の表で、セールの朝の変化を追いましょう。

セールの朝のメトリクス

時刻注文の数エラーの数エラー率応答時間
9:5520021%300ms
10:0080081%450ms
10:051000505%1200ms
10:10100012012%2500ms
10:1590018020%3000ms

学生が入力するセルは、このプレビューでは空白です。

アラートは人より先に気づく

メトリクスを人がずっと見ている必要はありません。「エラー率が5%を超えたら知らせる」と決めておきます。この5%がしきい値です。

このサイトにそのアラートがあれば、10:05 過ぎに担当者のスマホが鳴りました。お客様の電話より、15分早く動けたはずです。

よくある間違い

注意

アラートは多いほど安全だ、と思う人がいます。実際は逆です。大事でない知らせが毎日鳴ると、担当者は見なくなります。アラートは、お客様が困ることだけにしぼりましょう。

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。