なぜVercel CLIでWeb Vitalsを直接取得するのか?

Webパフォーマンスの最適化は、もはや選択肢ではなく必須です。特にCore Web Vitals(LCP, INP, CLS)はSEOやユーザー体験に直接影響を与えます。しかし、毎回ダッシュボードにアクセスしてデータを確認するのは手間がかかります。ましてや障害対応やデプロイ後の回帰分析には、即座のデータが必要です。

Vercelが公開した新しいCLIコマンド vercel metrics は、このニーズを正確に満たします。ターミナルから直接Speed Insightsデータをクエリできるため、開発ワークフロー内でパフォーマンスデータを確認・分析できます。特にAIコーディングエージェントと連携するとさらに強力です。エージェントに「先週と比べてINPが悪化したページを教えて」と質問すれば、CLI経由でデータを取得して即座に回答してくれます。

この記事では、vercel metrics コマンドの基本的な使い方から、実際の運用環境で活用できる高度なクエリパターンまで詳しく解説します。

根拠資料: Vercel公式チェンジログ

Developer querying Vercel Speed Insights data from terminal using CLI command for web vitals analysis

vercel metrics コマンドの基本

まず、Vercel CLIが最新バージョンであることを確認してコマンドを実行します。

# Vercel CLI の最新バージョンを確認・更新
npm i -g vercel@latest

# 特定プロジェクトの Speed Insights データを取得
vercel metrics --project=my-project-name

# 特定期間のデータだけ見たい場合
vercel metrics --project=my-project-name --from=2024-01-01 --to=2024-01-31

デフォルトの出力は、全ページの平均LCP、INP、CLS、FCP、TTFB値を表示します。しかし、より詳細な分析のために フィルター(dimensions)クエリオプション を使用できます。

主なクエリ例

# 1. 特定ページの先週比INP回帰を確認
vercel metrics --project=my-project \
  --path=/dashboard \
  --metric=INP \
  --from=$(date -d '7 days ago' +%Y-%m-%d) \
  --to=$(date +%Y-%m-%d)

# 2. アジア地域のホームページ速度を確認
vercel metrics --project=my-project \
  --path=/ \
  --dimension=country \
  --filter=country:JP,KR,CN

# 3. モバイル vs デスクトップのCLS比較
vercel metrics --project=my-project \
  --metric=CLS \
  --dimension=device \
  --filter=device:mobile,desktop

ヒント: --filter オプションは key:value 形式で複数組み合わせ可能です。サポートされているdimensionの一覧は公式ドキュメントをご確認ください。

AIコーディングエージェントとの連携

この機能の真価は、AIエージェント(Claude、GPT-4など)と組み合わせたときに発揮されます。エージェントがターミナルコマンドを実行できる場合、以下のような対話が可能になります。

# エージェントへの質問:「先週比でINPが10%以上増加したページを教えて」
# エージェントが内部で実行するコマンド:
vercel metrics --project=my-project \
  --metric=INP \
  --from=2024-10-01 \
  --to=2024-10-08 \
  --format=json \
  --order=asc

エージェントはJSON出力をパースし、特定の閾値を超えるページを特定し、原因分析のための追加措置(例:該当ページのLighthouseレポート要求)を提案できます。これが 対話型オブザーバビリティ(Conversational Observability) の始まりです。

Dashboard showing Core Web Vitals metrics like LCP, INP, CLS from real user traffic data Software Concept Art

高度な活用:デプロイパイプラインへのパフォーマンスゲート追加

CI/CDパイプラインで vercel metrics を活用すれば、パフォーマンス回帰を自動検出できます。例えば、デプロイ前に現在のプロダクションデータとプレビューデータを比較するスクリプトを作成できます。

#!/bin/bash
# デプロイ前パフォーマンスチェックスクリプト

# 現在のプロダクションの平均LCPを取得
PROD_LCP=$(vercel metrics --project=my-project \
  --metric=LCP \
  --from=$(date -d '1 day ago' +%Y-%m-%d) \
  --to=$(date +%Y-%m-%d) \
  --format=json | jq '.data[0].value')

# プレビューデプロイのLCPを取得(プレビューURLが必要)
PREVIEW_LCP=$(vercel metrics --project=my-project \
  --url=https://preview-url.vercel.app \
  --metric=LCP \
  --format=json | jq '.data[0].value')

# 閾値比較(10%以上増加で失敗)
THRESHOLD=$(echo "$PROD_LCP * 1.1" | bc)
if (( $(echo "$PREVIEW_LCP > $THRESHOLD" | bc -l) )); then
  echo "❌ LCPがプロダクション比10%以上増加。デプロイを中止します。"
  exit 1
else
  echo "✅ LCPは正常範囲内です。"
fi

このスクリプトをGitHub Actions、GitLab CI、Jenkinsなどに統合すれば、パフォーマンスが悪化するデプロイを事前にブロックできます。

注意点と制限

  • データ遅延: Speed Insightsは実際のユーザーデータに基づくため、トラフィックが少ないページではデータがないか遅延する可能性があります。
  • フィルターの精度: countrydevice などのdimensionはブラウザから収集された情報に依存するため、一部のデータが欠落することがあります。
  • コスト: Vercel Proプラン以上でのみSpeed Insights機能を利用できます。Hobbyプランでは使用が制限されます。

まとめ:CLIが開く対話型オブザーバビリティの未来

vercel metrics コマンドは、単なる便利機能を超えて、開発者体験(DX)を根本的に変えるツールです。ダッシュボードに依存していたパフォーマンスモニタリングを開発ワークフロー内に取り込むことで、より迅速で正確な意思決定が可能になります。

特にAIエージェントとのシナジーは今後ますます重要になるでしょう。「デプロイ前にパフォーマンスチェックして」という一言で、パイプライン全体が自動化される日も遠くありません。

次のステップとしての学習方向:

  • Vercel Speed Insightsの公式ドキュメントを熟読し、サポートされているすべてのdimensionとmetricを把握しましょう。
  • GitHub Actionsと連携して、実際のCI/CDパイプラインにパフォーマンスゲートを構築してみてください。
  • AIエージェント(Claude、GPT-4など)とVercel CLIを連携する方法を研究してみましょう。

合わせて読みたい記事

Developer using AI coding agent to analyze performance regression across pages on laptop Dev Environment Setup

本コンテンツは、信頼性の高い情報源をもとにAIツールを活用して作成され、編集者によるレビューを経て公開されています。専門家によるアドバイスの代替となるものではありません。