チケットサイトが重い
学園祭のチケットを売るサイトが、販売開始の五分後に「重い」と言われ始めました。調べるまで、運営の人は誰も気づいていませんでした。
先に気づくには、サイトの具合を数字で測り、いつも見ておく必要があります。
このレッスンのゴール
メモ
数字を使って、サービスが元気かどうかを判断できる。
重要な言葉
| ことば | いみ | れい |
|---|---|---|
| メトリクス | サービスの具合を表す、時間とともに変わる数 | nginx_up |
| レート | 一秒あたりに起きた回数 | |
| パーセンタイル | 全体の何割がその値以下かを表す数 | |
| エラー率 | 全部の要求のうち、失敗した割合 | |
| アラート | 決めた条件を超えたときに出る知らせ |
学生が入力するセルは、このプレビューでは空白です。
メトリクスは時間とともに変わる数
サービスは、自分の具合を数にして見せられます。生きているか、これまでに受けた要求の数、失敗した数などです。
こうした数を決まった間隔で集めて、グラフにするのが監視です。一つの数だけでは分からない「変化」が見えます。
サーバーに話しかける
curl -s http://app:8080/ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
生きているかの数を読む
curl -s http://exporter:9113/metrics | grep '^nginx_up'ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
レートは差を時間で割る
受けた要求の合計は増える一方なので、合計だけを見ても忙しさは分かりません。ある時間の間に増えた分を、その秒数で割ります。
これがレートです。たとえば60秒で300増えたなら、一秒あたり5回です。
例:合計からレートを出す
| 時刻 | 要求の合計 | 増えた数 | レート |
|---|---|---|---|
| 0秒 | 1000 | ||
| 60秒 | 1300 | 300 | 5回 / 秒 |
| 120秒 | 1360 | 60 | 1回 / 秒 |
学生が入力するセルは、このプレビューでは空白です。
五回続けて話しかける
curl -s "http://app:8080/?n=[1-5]"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
合計が増えたかを見る
curl -s http://exporter:9113/metrics | grep '^nginx_http_requests_total'ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
平均より、遅い人を見る
十人の待ち時間が九人は0.1秒で、一人だけ2秒だったとします。平均は0.29秒で、一見よさそうです。でも、その一人は困っています。
そこでパーセンタイルを使います。「90パーセンタイル」は、全体の九割がその時間以内に終わった、という数です。
例:十個の待ち時間
| 並べた順 | 待ち時間(ミリ秒) | 意味 |
|---|---|---|
| 1から5番目 | 80、85、90、95、100 | 速い人たち |
| 6から9番目 | 105、110、120、300 | やや遅い人たち |
| 10番目 | 2000 | 一番遅い人 |
| 50パーセンタイル | 100 | 5番目の値 |
| 90パーセンタイル | 300 | 9番目の値 |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
平均が小さければ、みんな快適だと思いがちです。平均は、一人の極端に遅い人を隠します。遅い側の様子を知るには、90や95のパーセンタイルを見ます。
条件を決めて、知らせてもらう
グラフを一日中見ているわけにはいきません。そこで、アラートの条件を決めておきます。条件を超えたら、機械が知らせます。
大事なのは、一瞬の揺れでは鳴らさないことです。「五分続いたら」のように、時間の長さを条件に含めます。
例:アラートの条件
| 項目 | 例 | 意味 |
|---|---|---|
| 名前 | ReplySlow | 知らせを見分ける名前 |
| 条件 | 95パーセンタイルが500ミリ秒を超える | 何がおかしいか |
| 続く時間 | 5分 | 一瞬の揺れでは鳴らさない |
| 知らせる先 | 当番の人 | 誰が動くか |
学生が入力するセルは、このプレビューでは空白です。
さらに挑戦:鳴りすぎる問題
アラートが毎日何十回も鳴ると、当番の人は慣れて、本物を見逃します。
続く時間を長くすると、鳴る回数はどう変わりますか。その代わりに何が遅れますか。二文で書きましょう。