instrument-metrics について
実装後やレビュー時、または依頼に応じて、コードベースにPostHogのメトリクス収集を追加するスキルです。技術スタックを判定してSDKまたはOpenTelemetryの方式を選び、属性のカーディナリティを抑えた最小限の計測を案内します。
主な機能
- 01言語と既存のメトリクス設定を判定
- 02PostHog SDKまたはOTLPを選択
- 03カウンター、ゲージ、ヒストグラムを追加
- 04値域を限定したメトリクス属性
- 05環境変数の設定と送信確認
活用シーン
- 01新機能の重要な処理を計測
- 02既存メトリクスをPostHogにも記録
- 03処理時間やキュー深度の計測追加
- 04メトリクスデータの到着確認
MCP 対応
設定が不足している場合、PostHog MCPサーバーの`projects-get`ツールでプロジェクトのAPIトークンとリージョンを取得できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ posthog/ ai-plugin --skill instrument-metricsインストール後、Claude Code で/instrument-metricsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/architecture.mdbasics.mdCOMMANDMENTS.mdjavascript.mdkubernetes.mdnodejs.mdother.mdpython.mdstart-here.md詳細
PostHog メトリクスキャプチャの追加
新規または変更したコードに PostHog メトリクスキャプチャ(カウンター、ゲージ、ヒストグラム)を追加するには、このスキルを使用してください。機能の実装後や PR のレビュー後に主要な操作が計測されているか確認する場合、ユーザーからメトリクスやカウンターの追加を依頼された場合、または既存のメトリクス計測を PostHog に反映する場合に使用します。あらゆるプラットフォームや言語に対応しています。
対応プラットフォーム:Web(JavaScript)、Node.js、posthog.metrics SDK API を使用する Python、メトリクスエージェントを使用する Kubernetes、OpenTelemetry(OTLP)を使用するあらゆる言語。
手順
次の手順を順番どおりに実行してください。
STEP 1:コードベースを分析し、プラットフォームを検出します。
- 言語、フレームワーク、既存のメトリクス設定を検出します。
- 依存関係ファイルとプロジェクトファイル(package.json、requirements.txt、pyproject.toml、go.mod、pom.xml など)を確認します。
- 既存のメトリクス計測を探します。Prometheus クライアント(prom-client、prometheus_client)、StatsD/Datadog クライアント、OpenTelemetry メーター、または OpenTelemetry Collector の設定を確認します。
- PostHog SDK(posthog-js、posthog-node、posthog-python)がすでにインストールされているか確認します。
STEP 2:キャプチャ方法を選択します。
- PostHog SDK がインストールされている(またはそのプラットフォームで利用できる)場合は、
posthog.metricsAPI を使用します。OpenTelemetry パッケージは不要です。該当するプラットフォームのリファレンスを確認してください。 - コードベースですでに OpenTelemetry メトリクスをエクスポートしている場合は、既存の OTLP メトリクスエクスポーター(または Collector)の送信先を PostHog に変更します。「Other Languages」リファレンスを確認してください。エクスポーターの設定以外にアプリケーションコードを変更する必要はありません。
- どちらにも当てはまらない場合は、フォールバックとして「Other Languages」リファレンスを使用します。汎用的な OpenTelemetry の方法が記載されています。
STEP 3:既存のメトリクスと並行して計測を追加します。
- コードベースですでにメトリクスを記録している箇所(Prometheus カウンター、StatsD 呼び出し、OTel インストゥルメント)では、同じメトリクス名と属性を再利用し、既存の呼び出しの隣に PostHog の呼び出しを追加します。既存の計測を削除したり、構成し直したりしないでください。
- 既存ファイルの基本的なアーキテクチャを変更しないでください。追加は最小限かつ対象を絞って行います。
- ファイルを書き込む前に、必ずそのファイルを読み込んでください。
STEP 4:適切な箇所に新しいメトリクスを追加します。
- ユーザーから新しいメトリクスを依頼された場合、または主要な操作が計測されていない場合は、適切な箇所に PostHog メトリクス呼び出しを追加します。重要なフローの成功と失敗をカウントし、外部呼び出しやジョブの時間をヒストグラムで計測し、キューの深さやプールのサイズをゲージで計測します。
- 適切な種類を選択します。増加するだけの値にはカウンター、増減する値にはゲージ、時間などの分布にはヒストグラムを使用します。ヒストグラムには明示的な単位(
ms、bytes)を設定します。 - 安定した、説明的なドット区切りの名前(
jobs.processed、api.request.duration)を選び、サービス名を設定して各システムを簡単に識別できるようにします。
STEP 5:カーディナリティを低く抑えます。
route、status、plan、queueなどの属性は適しています。ユーザー ID、セッション ID、リクエスト ID、タイムスタンプは使用しないでください。属性の組み合わせが一意であるごとに、新しい系列が作成されます。- ユーザー単位またはリクエスト単位の詳細が必要な場合、それはメトリクスではなく PostHog のログまたはトレースで扱います。
STEP 6: 環境変数を設定します。(PostHog SDK がすでに設定されている場合はスキップしてください。
posthog.metricsは SDK の既存のプロジェクトトークンを再利用します。) - プロジェクトに PostHog の環境変数がすでに設定されているか確認します(例:
.env、.env.local、またはフレームワーク固有の環境変数ファイル)。有効な値がすでにある場合は、この手順をスキップしてください。 - PostHog のプロジェクトトークンがない場合は、PostHog MCP サーバーの
projects-getツールを使って、プロジェクトのapi_tokenを取得します。複数のプロジェクトが返された場合は、使用するプロジェクトをユーザーに確認してください。MCP サーバーに接続されていない場合、または認証されていない場合は、代わりに PostHog のプロジェクトトークンをユーザーに尋ねてください。 - PostHog のホスト URL については、
projects-getMCP のレスポンスでregionフィールドを確認します。USはhttps://us.i.posthog.com、EUはhttps://eu.i.posthog.comに対応します。MCP のレスポンスにも既存のプロジェクト設定にもリージョンがない場合は、「PostHog US Cloud と EU Cloud のどちらをお使いですか?」とユーザーに尋ねてください。US Cloud と決めつけないでください。 - OTLP メトリクスエンドポイントには、上記で確認したリージョンに合わせて、
https://us.i.posthog.com/i/v1/metrics(US)またはhttps://eu.i.posthog.com/i/v1/metrics(EU)を使用し、プロジェクトトークンをAuthorization: Bearerヘッダーに指定します。 - フレームワークの命名規則に従って、これらの値を適切な環境変数ファイルに書き込みます。
- 値をハードコードせず、コード内でこれらの環境変数を参照します。
STEP 7: メトリクスが届くことを確認します。
- 短時間で終了するプロセス(スクリプト、cron ジョブ、サーバーレス)の場合は、終了前にフラッシュします(
posthog.metrics.flush()、または OTel プロバイダーのforceFlush()/shutdown())。 - PostHog のサイドバーで「Metrics」を開き、名前選択メニューからメトリクスを選択します。送信から 1 分以内にデータポイントが表示されるはずです。
参照ファイル
references/javascript.md- JavaScript(ウェブ)でのメトリクスのインストールreferences/nodejs.md- Node.js でのメトリクスのインストールreferences/python.md- Python でのメトリクスのインストールreferences/kubernetes.md- Kubernetes でのメトリクスのインストールreferences/other.md- その他の言語でのメトリクスのインストールreferences/start-here.md- メトリクスを始めるreferences/basics.md- メトリクスが必要な理由references/architecture.md- メトリクスの仕組みreferences/COMMANDMENTS.md- インテグレーションが従う必要のあるフレームワーク固有のルール
各プラットフォームのリファレンスには、SDK の具体的な設定、OTLP の設定、インテグレーションのパターンが記載されています。ユーザーの技術スタックに合ったものを選んでください。
主な原則
- 環境変数:PostHog のキーと OpenTelemetry のエンドポイントには、必ず環境変数を使用します。ハードコードしないでください。
- 変更は最小限に:既存のメトリクスに加えて、PostHog のメトリクス収集を追加します。既存の計装を置き換えたり、再構成したりしないでください。
- SDK を優先:PostHog SDK がある場合、
posthog.metricsに新しいパッケージや追加の認証は必要ありません。OTLP の設定は、すでに OpenTelemetry を導入しているコードベースや、SDK がサポートされていない言語に限って使用します。 - カーディナリティを低く保つ:属性の組み合わせが一意であるごとに、新しい系列が作成されます。ルート、ステータス、プランなど、値の範囲が限定されたディメンションを付与し、ユーザー ID、セッション ID、リクエスト ID は決して付与しないでください。