症状と原因の切り分けから、構造化ログ・Prometheus のメトリクス・Grafana のダッシュボード・Alertmanager の通知・OpenTelemetry の分散トレース・SLO とエラーバジェットまで。全30レッスンで「自分のサービスの異常に、利用者より先に気づける」ところまで進みます。Prometheus・Grafana・Alertmanager・OpenTelemetry はすべて手元で実際に動かし、出力は実測したものを載せています。
全30レッスンを6つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ コマンドはブラウザ内で実行できないため、Prometheus・Grafana・OpenTelemetry を入れた手元の環境で試してください。サンプルのアプリは Python の標準ライブラリだけで動きます。ドメインやホスト名は例示用の値(shop.example.com など)に置き換えてあります。
監視は道具の話の前に、何を知りたいのかの話です。症状と原因を分け、測るべき4つの信号を決め、人を起こす条件を先に決めます。
まずログを、あとから検索できる形にします。構造化して、レベルを決めて、個人情報を落とし、trace_id でリクエスト1本を追えるところまで進みます。
数を時系列で持つと、傾向と異常が見えます。自分で /metrics を書き、Prometheus に取りに来させ、PromQL で遅延とエラー率を出せるようにします。
数字を人が見る形にして、見ていないときは通知で呼び出します。Grafana のダッシュボードと、Alertmanager の通知先・グループ化・沈黙までを作ります。
1本のリクエストが、どこで何ミリ秒使ったのかを見ます。OpenTelemetry でスパンを出し、サービスをまたいでつなぎ、遅い経路を名指しできるようにします。
監視は作って終わりではありません。SLO とエラーバジェットで「直すか、進むか」の基準を決め、オンコールと振り返りで回し続ける形にします。
全30レッスンを終えたら、次は push からデプロイまでを自動にする GitHub Actions や、サーバーそのものをコードで用意する Terraform へ。デプロイの土台に不安が残るなら サービス公開と運用 に戻ってください。メンバーシップで全コースが解放されます。