第15章:運用の基本(ログ、エラー、アラートの入口)🧯👀
この章のゴール🎯
- 「動かない…😇」となったとき、どこを見ればいいか分かる
- ログを “あとから自分が助かる形” に整えられる
- エラーの自動通知(アラート) の入口まで作れる📣
1) まず覚える「3つの観測窓」🪟🪟🪟

① ログ(何が起きた?)🧾
- Cloud Logging に集まる(Functionsはここが中心)(Firebase)
② エラー一覧(どのクラッシュが多い?)💥
- Error Reporting に、未処理例外などがまとまる(Firebase)
③ アラート(気づける仕組み)🔔
- Cloud Monitoring のアラートは、メトリクスもログも条件にできる(Google Cloud Documentation)
- 「ERRORログが出たら通知」みたいな ログベースアラート も作れる(Google Cloud Documentation)
2) ログは「console.log」でもいいけど、できれば“logger”🧰✨

Cloud Functions は logger SDK(Node / Python) が用意されてて、構造化ログ(structured data) を出せます。これが超強いです💪(Firebase)
logger の基本(TypeScript)🧩
- “重要度”が付けられる(debug/info/warn/error)
- JSONっぽく キー付き情報 を付けられる(後で検索が楽)(Firebase)
import { info, warn, error, debug } from "firebase-functions/logger";
export function sampleLog(uid: string) {
info("START sampleLog", { uid, step: "begin" });
debug("debug detail", { uid, hint: "only for dev" });
warn("something looks odd", { uid, retry: true });
try {
// 何か処理…
info("OK sampleLog", { uid, step: "done" });
} catch (e) {
// ここが超重要👇
error("NG sampleLog", e as Error);
throw e;
}
}
✅ error() は Error Reporting にも飛ばせる(運用が一気に楽)(Firebase)
3) “良いログ”の型:START / OK / NG 🧯✨

初心者が最速で強くなるログ設計はこれです👇
START: 入口(何を始めた?誰の処理?)OK: 成功(どれくらい?結果は?)NG: 失敗(どこで?例外は?)
ログに入れると便利な項目(テンプレ)🧠
function: 関数名(手で書いてもOK)uid: 誰の処理か(Auth連携してるなら)docPath/id: Firestoreなら対象IDeventId: イベント系なら「このイベント」識別子latencyMs: 何msかかったかversion: デプロイ世代(手で入れてもOK)
🔥コツ:秘密(APIキー/トークン)や個人情報をログに出さない ログは“チーム共有されがち&長く残りがち”なので、マジで注意です🧯
4) ログを見る:最短は Firebase CLI 🖥️⚡(Windows)
ログを見る手段は複数あります(CLI / Cloud Console)。まずは CLI が楽です🧰(Firebase)
## ぜんぶ見る
firebase functions:log
## 特定の関数だけ
firebase functions:log --only <FUNCTION_NAME>
5) Cloud Logging で“原因に突き刺す”探し方🔎💡
まずは「ERRORだけ」絞る😇➡️🙂
- Logs Explorer で
severity>=ERRORを基本に - “関数名っぽい文字列”や “uid” を追加で絞る
Cloud Logging には クエリの例(Query library) もあるので、真似から入るのが早いです📚(Google Cloud Documentation)
実行単位でまとめて追う(execution ID)🧵
1st gen などでは、ログの labels.execution_id を使って「同じ実行のログ」を追えます(Firebase)
2nd gen(Cloud Run functions 側)では LOG_EXECUTION_ID で実行IDをログに出せる仕組みが案内されています(運用の武器)(Google Cloud Documentation) ※ここは“ちょい上級”なので、必要になったら導入でOK👌
6) Error Reporting:エラーを「一覧」で見れるようにする💥📌

自動で入るケース
- 未処理例外 などは自動で Error Reporting に出る(Firebase)
手動で“ちゃんと飛ばす”なら error() ✅
error("message", err) の形にしておくと、ログ+エラー一覧が揃います(Firebase)
7) アラートの入口:2種類だけ覚えよう🔔✨

A) メトリクスでアラート(王道)📈
例:
- エラー率が一定以上
- レイテンシが急に悪化
- 呼び出し回数が急増(バグ/攻撃/無限ループ疑い)
Cloud Monitoring のアラートは、条件→インシデント→通知の流れで動きます(Google Cloud Documentation)
B) ログでアラート(最短で効く)🧾➡️🔔
例:
severity>=ERRORのログが出たら通知 ログベースのアラートは Logs Explorer から作れます(Google Cloud Documentation)
8) 通知先:Slack に飛ばすのが便利📣💬

Cloud Monitoring は Slack 通知チャンネルを作れます(手順も公式にある)(Google Cloud Documentation)
✅「アラートが来た→Slackで気づく→すぐ直す」 これが“運用できてる感”を一気に出します🔥
9) AIで運用を楽にする(Gemini CLI / Firebase拡張)🤖🧰

Firebase の Gemini CLI 拡張を入れると、Firebase向けの能力が増えます。
- Firebase MCP server を自動で入れてくれる
- Firebase作業を補助するツールや、ドキュメント参照がしやすくなる(Firebase)
インストール例(参考)🧩(Firebase)
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
この章での“AIの使いどころ”💡
- 「この関数のログ設計、START/OK/NGのテンプレ作って」
- 「Logs Explorer のクエリを、エラーだけ拾う形で提案して」
- 「アラートが鳴った時の“手順書(runbook)”を1枚にして」
⚠️AIに貼るログや設定には、秘密情報を混ぜない(ここ超大事)🧯
10) ミニ実習:5分で“運用の入口”を作る🧪⏱️
手順🪜
- Functions に
START/OK/NGログを入れる🧾 - わざとエラーを起こす(例:throw)💥
- Logs Explorer で
severity>=ERRORで検索🔎 - Error Reporting でエラーがまとまって見えるか確認📌(Firebase)
- 「ERRORログが出たら通知」のログベースアラートを作る🔔(Google Cloud Documentation)
(できれば)通知先を Slack にして完成💬(Google Cloud Documentation)
✅ チェック(理解できたら勝ち)💯
- ログを見る場所が「ログ」「エラー一覧」「アラート」の3つに分かれるのを説明できる🪟
- logger を使って structured data 付きログを出せる🧾✨(Firebase)
error()を使うと Error Reporting にも出せる理由が分かる💥(Firebase)- 「ログベースアラート」と「メトリクスアラート」の違いを一言で言える🔔(Google Cloud Documentation)
次につながる一言🚀
ここまでできると、**第20章(Firestore更新→Slack通知)**で落ちたときも、ログ→原因→修正がちゃんと回ります📩✨ 「運用できる人」への第一歩、ここです🧯🔥