mcpField
M
monitoring

monitoring

github.com/motormetricsクラウド・DevOps2248 回インストール今日更新
リポジトリ

monitoring について

Vercel 上のアプリを監視する運用チーム向けのスキルです。ログ、分析指標、ヘルスチェック、ワークフローのエラー、Cron 実行の確認方法を扱います。

主な機能

  1. 01Vercel の関数・ビルド・Edge ログ確認
  2. 02Web Vitals と Speed Insights の追跡
  3. 03/api/health エンドポイントのテスト
  4. 04ワークフローの再試行と失敗の調査
  5. 05定期 Cron 実行の監視

活用シーン

  1. 01本番デプロイのエラー調査
  2. 02アプリの状態とパフォーマンス確認
  3. 03ワークフローや Cron ジョブの失敗診断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/motormetrics/motormetrics --skill monitoring

インストール後、Claude Code で/monitoringを入力して読み込まれたか確認します。

詳細

モニタリングスキル

Vercel のデプロイを監視し、ログを確認して、エラーを追跡します。

ログの表示

Vercel ダッシュボード
  1. Vercel ダッシュボード → プロジェクト → ログに移動します
  2. 次の項目でフィルターします:
    • 関数ログ
    • ビルドログ
    • 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. ビルド出力を確認する
  1. Vercel ダッシュボード → Deployments
  2. デプロイをクリックします
  3. 「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 の実行を監視する:

  1. Vercel ダッシュボード → プロジェクト → Cron Jobs
  2. 実行履歴とステータスを表示します
  3. 各実行のログを確認します

ベストプラクティス

  1. ログのプレフィックスを使用する:フィルタリングしやすいように [CONTEXT] プレフィックスを追加します
  2. 意味のあるデータを記録する:関連するコンテキスト(月、レコード数)を含めます
  3. シークレットを記録しない:パスワード、トークン、API キーは絶対に記録しないでください
  4. Vercel Analytics を使用する:パフォーマンス指標を監視します
  5. Cron ジョブを確認する:スケジュールされたワークフローの実行を監視します

参考資料

コメント