monitoring について
Vercel 上のアプリを監視する運用チーム向けのスキルです。ログ、分析指標、ヘルスチェック、ワークフローのエラー、Cron 実行の確認方法を扱います。
主な機能
- 01Vercel の関数・ビルド・Edge ログ確認
- 02Web Vitals と Speed Insights の追跡
- 03/api/health エンドポイントのテスト
- 04ワークフローの再試行と失敗の調査
- 05定期 Cron 実行の監視
活用シーン
- 01本番デプロイのエラー調査
- 02アプリの状態とパフォーマンス確認
- 03ワークフローや Cron ジョブの失敗診断
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ motormetrics/ motormetrics --skill monitoringインストール後、Claude Code で/monitoringを入力して読み込まれたか確認します。
詳細
モニタリングスキル
Vercel のデプロイを監視し、ログを確認して、エラーを追跡します。
ログの表示
Vercel ダッシュボード
- Vercel ダッシュボード → プロジェクト → ログに移動します
- 次の項目でフィルターします:
- 関数ログ
- ビルドログ
- Edge 関数ログ
- 期間
Vercel CLI
# View recent logs
vercel logs <deployment-url>
# Stream logs in real-time
vercel logs <deployment-url> --follow
# Filter by status
vercel logs <deployment-url> --status error
Vercel Analytics
Web Vitals
Vercel ダッシュボード → Analytics で監視します:
- LCP(Largest Contentful Paint)
- FID(First Input Delay)
- CLS(Cumulative Layout Shift)
- TTFB(Time to First Byte)
Speed Insights
アプリにはすでに統合されています:
// apps/web/src/app/layout.tsx
import { Analytics } from "@vercel/analytics/next";
import { SpeedInsights } from "@vercel/speed-insights/next";
const RootLayout = ({ children }) => (
<html>
<body>
{children}
<Analytics />
<SpeedInsights />
</body>
</html>
);
ログのパターン
コードベースでは、ログ記録に標準の console.log/error/warn を使用しています:
// Workflow logging pattern
console.log("[WORKFLOW] Posts cache invalidated");
console.log("[COE]", coeResult);
// Error logging pattern
console.error("Error getting post view count:", error);
console.error("Download failed:", { url, status });
使用されるログのプレフィックス:
[WORKFLOW]- ワークフローの実行イベント[COE]- COE データ処理[CARS]- 車両データ処理
ヘルスチェック
アプリには /api/health にヘルスチェックエンドポイントがあります:
// apps/web/src/app/api/health/route.ts
export const GET = () => {
return NextResponse.json(
{ status: "ok", timestamp: new Date().toISOString() },
{
status: 200,
headers: {
"Cache-Control": "public, s-maxage=60, stale-while-revalidate=300",
},
},
);
};
ヘルスエンドポイントのテスト:
curl -f https://sgcarstrends.com/api/health || echo "Web unhealthy"
ワークフローのエラー処理
ワークフローでは、Vercel WDK 組み込みのエラー処理を使用しています:
// apps/web/src/workflows/cars/index.ts
import { FatalError, RetryableError } from "workflow";
// Retryable errors (will be retried automatically)
if (message.includes("429")) {
throw new RetryableError("AI rate limited", { retryAfter: "1m" });
}
// Fatal errors (will not be retried)
if (message.includes("401") || message.includes("403")) {
throw new FatalError("AI authentication failed");
}
エラーの種類:
RetryableError- 一時的な障害(レート制限、ネットワークの問題)FatalError- 恒久的な障害(認証エラー、無効な設定)
本番環境の問題のデバッグ
1. Vercel のログを確認する
# Get deployment URL
vercel ls
# Check logs
vercel logs <url> --follow
2. ビルド出力を確認する
- Vercel ダッシュボード → Deployments
- デプロイをクリックします
- 「Build Logs」を表示します
3. エンドポイントをテストする
curl -v https://sgcarstrends.com/api/health
4. 関数のランタイムを確認する
Vercel ダッシュボード → プロジェクト → Settings → Functions
- ランタイムのバージョンを表示
- メモリ割り当てを確認
- タイムアウト設定を確認
よくある問題
| 問題 | 調査方法 | 解決策 |
|---|---|---|
| レイテンシが高い | Vercel Analytics と遅いクエリを確認する | クエリを最適化し、キャッシュを追加する |
| ビルドの失敗 | ビルドログを確認する | ビルドエラーを修正し、依存関係を更新する |
| 関数のタイムアウト | 関数ログを確認する | コードを最適化し、タイムアウトを延長する |
| コールドスタート | 関数の呼び出しを確認する | エッジ関数を検討する |
| ワークフローの失敗 | Vercel のログでワークフロー ID を確認する | エラーの種類を確認し、再試行を確認する |
Vercel 関数の設定
// API route config
export const config = {
maxDuration: 60, // seconds (Pro plan allows up to 60s)
};
Cron ジョブのモニタリング
ワークフローは Vercel Cron によってトリガーされます:
// apps/web/vercel.json
{
"crons": [
{ "path": "/api/workflows/cars", "schedule": "0 10 * * *" },
{ "path": "/api/workflows/coe", "schedule": "0 10 * * *" },
{ "path": "/api/workflows/deregistrations", "schedule": "0 10 * * *" }
]
}
Cron の実行を監視する:
- Vercel ダッシュボード → プロジェクト → Cron Jobs
- 実行履歴とステータスを表示します
- 各実行のログを確認します
ベストプラクティス
- ログのプレフィックスを使用する:フィルタリングしやすいように
[CONTEXT]プレフィックスを追加します - 意味のあるデータを記録する:関連するコンテキスト(月、レコード数)を含めます
- シークレットを記録しない:パスワード、トークン、API キーは絶対に記録しないでください
- Vercel Analytics を使用する:パフォーマンス指標を監視します
- Cron ジョブを確認する:スケジュールされたワークフローの実行を監視します
参考資料
- Vercel Logs:https://vercel.com/docs/observability/runtime-logs
- Vercel Analytics:https://vercel.com/docs/analytics
- Speed Insights:https://vercel.com/docs/speed-insights
- Vercel Cron Jobs:https://vercel.com/docs/cron-jobs
コメント
Markdown 対応