statsig-dashboard について
Console v1 dashboards API を通じて Statsig のダッシュボードを作成・管理するスキルです。リクエスト仕様とスクリプトを備え、定義済みのスキーマと集計ルールに沿って作成、取得、ウィジェットの追加や置換を行います。
主な機能
- 01API リクエスト本文からのダッシュボード作成
- 02再利用しやすい形式での取得
- 03ウィジェットの追加または置換
- 04ヘッダー、テキスト、時系列ウィジェットに対応
- 05dry-run と raw 応答のオプション
活用シーン
- 01JSON リクエストからのダッシュボード作成
- 02既存ダッシュボードのテンプレート化
- 03ダッシュボードへのウィジェット追加
- 04ウィジェットの一括置換
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ statsig-io/ agent-skills --skill statsig-dashboardインストール後、Claude Code で/statsig-dashboardを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/dashboard-api.mdscripts/add_dashboard_widgets.pycreate_dashboard.pyread_dashboard.pyreplace_dashboard_widgets.py詳細
Statsig ダッシュボードの作成
コンソール v1 ダッシュボード API 用の有効なリクエストを作成し、同梱スクリプトで実行します。
正確なフィールドレベルのスキーマ、サポートされている値、編集してすぐに使える例については、references/dashboard-api.md を参照してください。
以下のコマンド例は、このスキルのディレクトリから実行することを前提としています。
クイックスタート
- API キーをエクスポートします:
export STATSIG_CONSOLE_API_KEY="..." - リクエスト本文を JSON ファイルに保存します。
- 対応するスクリプトを実行します:
python3 scripts/create_dashboard.py \
--body-file /tmp/dashboard.json
関連スクリプト
scripts/create_dashboard.py:POST /console/v1/dashboardsで新しいダッシュボードを作成しますscripts/read_dashboard.py:GET /console/v1/dashboards/{id}でダッシュボードを取得し、デフォルトで作成互換の形式を出力しますscripts/add_dashboard_widgets.py:POST /console/v1/dashboards/{id}/widgetsでウィジェットを追加しますscripts/replace_dashboard_widgets.py:PUT /console/v1/dashboards/{id}/widgetsですべてのウィジェットを置き換えます
ワークフロー
- 適切なエンドポイントを選択します:
- ダッシュボードを作成する:
create_dashboard.py - 作成互換の形式でダッシュボードを読み取る:
read_dashboard.py - ウィジェットを追加する:
add_dashboard_widgets.py - すべてのウィジェットを置き換える:
replace_dashboard_widgets.py
- ダッシュボードを作成する:
- 選択したエンドポイントに対応するリクエスト本文を作成します。
- サポートされているフィールドのみを含めます:
namedescriptiondefaultswidgets
- 要求された各ウィジェットを、サポートされているウィジェットタイプのいずれかに割り当てます:
headertexttimeseries- 各ウィジェットには、任意で
widthとheightを指定できます
timeseriesでは、クエリの仕様に厳密に従います:sourceまたはsourcesのいずれか一方だけを含めます- 各ソースには
type: "event"を指定します aggregationを含めます- サポートされているフィルター演算子とグラフタイプのみを使用します
- イベント値によるグループ化またはフィルターを要求された場合は、
valueではなく!statsig_valueを使用します
- 対応するスクリプトを実行します。
- API レスポンスを返すか、それだけで十分な場合は、作成されたダッシュボード ID またはウィジェット ID を要約します。
サービスフィルター
ウィジェットで Statsig サービスの対象を絞り込む必要がある場合は、次のフィルターを優先してください:
{
"property": {
"key": "custom.service",
"column": "user_object"
},
"operator": "EQ",
"values": ["service-name"]
}
ダッシュボードウィジェットを作成する際、単独の service をデフォルトで使用しないでください。Statsig のイベントペイロードでは、これは一般に user_object.custom の下にネストされているため、custom.service をデフォルトとして使うほうが安全です。
OTEL 集計
OTEL 由来の可能性があるメトリクスを対象にするウィジェットでは、まずメトリクスをサンプリングし、company_metadata.__metric_type を確認してください。
__metric_typeが存在する場合は、そのメトリクスを OTEL に基づくものとして扱い、通常の集計ではなく、対応する OTEL 集計ファミリーを優先します。- 代表的なサンプルに
__metric_typeが存在しない場合は、OTEL 以外のメトリクスとして扱い、通常の集計タイプを使用します。
推奨される対応関係:
__metric_type = "gauge":OTEL_GAUGE__AVG、OTEL_GAUGE__MAX、OTEL_GAUGE__MIN、またはOTEL_GAUGE__SUMを使用します__metric_type = "counter":OTEL_COUNTER__SUM、OTEL_COUNTER__AVG、OTEL_COUNTER__MIN、またはOTEL_COUNTER__MAXを使用します__metric_type = "histogram":references/dashboard-api.mdに記載されている OTEL ヒストグラム集計を使用します
変換する際も、集計の意図を維持してください:
- 平均値を求めるウィジェットでは、
AVGの代わりにOTEL_GAUGE__AVGを使用します - 最大値を求めるウィジェットでは、
MAXの代わりにOTEL_GAUGE__MAXを使用します
ガードレール
- テーブルなど、サポートされていないウィジェットタイプを作り出さないでください。
- ダッシュボードの作成時にレイアウトフィールドを含めないでください。作成エンドポイントはウィジェットの位置を受け付けません。
rowやcolumnを含めないでください。API が現在サポートしているのは、明示的な配置ではなく、widthとheightによるウィジェットのサイズ指定です。- 作成リクエスト本文に
idを含めないでください。 - ユーザーから
GET /console/v1/dashboards/{id}で取得したダッシュボードを渡された場合は、その作成互換の形式を再利用しますが、idは削除してください。 - ユーザーが既存のダッシュボードを変更したい場合は、作成エンドポイントを使用しないでください。
- テキストウィジェットでは、内容を読みやすく構造化するため、Markdown 形式を優先してください。
例
最小限のダッシュボード:
cat > /tmp/dashboard.json <<'JSON'
{
"name": "Checkout Overview"
}
JSON
python3 scripts/create_dashboard.py \
--body-file /tmp/dashboard.json
既存のダッシュボードを読み込み、再利用可能な作成用ペイロードにします:
python3 scripts/read_dashboard.py \
--dashboard-id dash_123
既存のダッシュボードにウィジェットを追加します:
python3 scripts/add_dashboard_widgets.py \
--dashboard-id dash_123 \
--body-file /tmp/add-widgets.json
既存のダッシュボード上のすべてのウィジェットを置き換えます:
python3 scripts/replace_dashboard_widgets.py \
--dashboard-id dash_123 \
--body-file /tmp/replace-widgets.json
スクリプトに関する注記
- すべてのスクリプトは、環境変数から
STATSIG_CONSOLE_API_KEYを読み込みます。 - すべてのスクリプトで、
STATSIG_API_VERSIONのデフォルト値は20240601です。 - デフォルト値を上書きするには、
--api-versionを渡すか、STATSIG_API_VERSIONを設定してください。 - すべてのスクリプトで、デフォルトの URL は
https://api.statsig.com/console/v1/dashboardsです。 - すべてのスクリプトは、Console API キーを
statsig-api-keyヘッダーで送信します。 - すべてのスクリプトは、設定された
statsig-api-versionヘッダーを送信します。 create_dashboard.py、add_dashboard_widgets.py、replace_dashboard_widgets.pyは、以下を受け付けます:--body-file--body- stdin
read_dashboard.py、add_dashboard_widgets.py、replace_dashboard_widgets.pyでは、--dashboard-idが必要です。- すべてのスクリプトは
--dry-runに対応しています。 - すべてのスクリプトは
--rawに対応しています。 read_dashboard.pyは、--rawが指定されている場合のみ、GET のレスポンスをそのまま出力します。それ以外の場合は、dataの内容を取り出してidを削除します。