testing について
Grafana Cloud のテストスキルです。テストや可観測性を担うチーム向けに、Synthetic Monitoring による外形監視、k6 Cloud の負荷テスト、Faro のフロントエンド監視を扱います。
主な機能
- 01Synthetic HTTP チェックの作成と検証
- 02k6 Cloud 負荷テストの実行
- 03Faro によるフロントエンドイベントの収集
- 04チェックのメトリクスとアラートルールの確認
- 05プローブ、テスト、イベントの問題の調査
活用シーン
- 01Web サイトのエンドポイント可用性の確認
- 02クラウドでの負荷テスト実行
- 03フロントエンドのセッション、イベント、トレースの確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ grafana/ skills --skill testingインストール後、Claude Code で/testingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/k6-and-faro.mdk6-cloud.mdsynthetic-monitoring.mdsynthetic.md詳細
Grafana Cloud Testing
3 つの柱:外部からのプローブ(Synthetic Monitoring)、負荷テスト(k6 Cloud)、リアルユーザーモニタリング(Faro)。
前提条件
- Grafana Cloud スタック
- Synthetic Monitoring:SM アクセストークン(
sm:write) - k6 Cloud:Grafana Cloud k6 トークンと projectID
- Faro:Faro アプリと、Frontend Observability → Apps で発行した書き込みトークン
一般的なワークフロー
1. Synthetic HTTP チェックを作成して検証する
# 1. Create the check (full payload in references/synthetic.md)
curl -X POST https://synthetic-monitoring-api.grafana.net/sm/checks \
-H "Authorization: Bearer <sm-token>" -H "Content-Type: application/json" \
-d '{"job":"website","target":"https://example.com","frequency":60000,"timeout":15000,
"enabled":true,"probes":[1,5,10],
"settings":{"http":{"method":"GET","validStatusCodes":[200]}}}'
# 2. List checks — confirm it exists and is enabled
curl -s https://synthetic-monitoring-api.grafana.net/sm/checks \
-H "Authorization: Bearer <sm-token>" | jq '.[] | select(.job=="website")'
# 3. Verify probe_success arrived (wait ~60s for the first run)
# In Grafana Explore on the synthetic metrics datasource:
# probe_success{job="website"}
# Expect 1 from each probe in `probes:[1,5,10]`.
#
# Rollback: DELETE /sm/checks/<id> or set `"enabled": false`.
すべてのチェックタイプ、PromQL クエリ、アラートルールについては、references/synthetic.md を参照してください。
2. k6 cloud 負荷テストを実行する
# 1. Authenticate once
k6 cloud login --token <grafana-cloud-k6-token>
# 2. Validate the script locally first (smoke run, no cloud cost)
k6 run --vus 1 --duration 30s script.js
# 3. Launch in cloud
k6 cloud script.js
# → URL of the run; thresholds (p95<500ms, error<1%) decide pass/fail.
# 4. Verify in CI — exit code 0 = thresholds passed, 99 = threshold failed.
echo $?
完全なスクリプト、シナリオ、CI YAML については、references/k6-and-faro.md を参照してください。
3. Faro でフロントエンドを計測する
# 1. Install
npm install @grafana/faro-web-sdk @grafana/faro-web-tracing
// 2. initializeFaro({ url, apiKey, app, instrumentations }) — see references/k6-and-faro.md
// 3. Push a test event so we have something to look for:
faro.api.pushEvent('faro_smoketest', { ts: Date.now().toString() });
# 4. Verify the collector accepted it (browser DevTools → Network)
# POST to /collect should return 202. If 401 — apiKey mismatch.
# 5. Verify in Grafana
# - Frontend Observability → your app → Sessions: should show your session
# - Explore on Loki: `{kind="event"} |= "faro_smoketest"`
# - For traces: filter by `service.name="my-frontend"` in Tempo
トラブルシューティング
- Synthetic チェックが
probe_success=0のままになる → 失敗した段階のprobe_*_duration_secondsを確認します。プローブリージョンのラベルから、エラーが発生したプローバーを特定できます - k6 cloud の実行が「ABORTED_THRESHOLD」になる → しきい値に達しています。実行ページを確認し、どのしきい値に達したかを調べます
- Faro イベントが届かない → ブラウザーからのネットワークリクエストで
/collectが 202 を返すことを確認します。よくある原因はapiKeyまたはurlの誤りです(FE Observability アプリと一致している必要があります)
参考資料
- Synthetic Monitoring のスクリプト(k6)チェックとブラウザーチェックを詳しく作成する方法(実行モデル、アサーション、シークレット、API/Terraform ペイロード)については、
synthetic-monitoring-checksスキルを参照してください references/synthetic.md— Synthetic Monitoring の要点:チェックタイプ、主要な PromQL メトリクス、アラートルールreferences/synthetic-monitoring.md— 詳細:チェックの CRUD、プローブの選択、スクリプト(k6)チェック、複数ステップのブラウザーチェックに対応する完全な APIreferences/k6-and-faro.md— エンドツーエンドテスト用の k6 cloud スクリプトと Faro Web SDK 初期化スニペットreferences/k6-cloud.md— 詳細:k6 cloud の設定(プロジェクト、負荷ゾーン、しきい値)、CI 連携、実行分析
リソース
コメント
Markdown 対応