К основному содержанию
скилл CX Codex

testing · grafana — скилл для Claude Code: мониторинг и установка

Настраивает проверки доступности, нагрузочные тесты k6 и наблюдаемость фронтенда через Grafana Cloud. Нужен перед релизом и для поиска сбоев.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add grafana/skills --skill testing -a claude-code
Открыть на GitHub

Что делает testing

Скилл помогает настроить Synthetic Monitoring для HTTP-проверок и сетевых проб. Можно создать проверку через API, убедиться, что она включена, и смотреть метрику probe_success, а также следить за сроком TLS-сертификата. Доступны пробы из 20+ точек.

Для нагрузочных тестов он использует Grafana Cloud k6: предлагает сначала прогнать script.js локально, затем запустить его в облаке и оценить пороги http_req_duration. В CI можно подключить grafana/k6-action; код 99 означает, что порог не пройден.

Для React или Vue скилл описывает подключение Faro Web SDK, отправку событий через pushEvent и связь ошибок фронтенда с распределёнными трассировками. Понадобятся Grafana Cloud stack и отдельные токены для Synthetic Monitoring, k6 либо Faro, поэтому это повод заранее подготовить доступы.

Какие задачи решает

  • проверить доступность сайта из разных точек
  • создать HTTP-проверку и отследить probe_success
  • запустить нагрузочный тест script.js в k6 Cloud
  • заблокировать CI при нарушении порога нагрузки
  • подключить Faro к React или Vue приложению

Примеры запросов агенту

  • Настрой Synthetic Monitoring для HTTP-проверки моего API и проверь probe_success.
  • Запусти локальную проверку script.js, затем подготовь запуск в Grafana Cloud k6.
  • Подключи Faro Web SDK к React-приложению и отправь событие faro_smoketest.

Как установить testing

1Через Skills CLI (Vercel)

npx skills add grafana/skills --skill testing -a claude-code

2Вручную: положить файлы

~/.claude/skills/testing/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/testing/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о testing

Как установить testing в Claude Code?

Выполните npx skills add grafana/skills --skill testing -a claude-code, затем повторите npx skills add grafana/skills --skill testing -a claude-code. Файл скилла находится в ~/.claude/skills/testing/SKILL.md.

Что делает testing?

Скилл охватывает Synthetic Monitoring, нагрузочные запуски Grafana Cloud k6 и наблюдаемость фронтенда через Faro. Он помогает проверять доступность, пороги нагрузки, ошибки и пользовательские метрики.

Что нужно для работы с Synthetic Monitoring, k6 и Faro?

Нужен Grafana Cloud stack. Для Synthetic Monitoring требуется токен с sm:write, для k6 — токен и projectID, для Faro — приложение Faro и write-token.

Исходный текст

SKILL.md · Apache-2.0
---
name: testing
license: Apache-2.0
description: Probe, load-test, and instrument frontends from Grafana Cloud. Covers Synthetic Monitoring (HTTP / DNS / TCP / Ping / Traceroute / Multihttp / k6-browser scripted checks from 20+ global probes, alert on `probe_success` + TLS-cert expiry), Grafana Cloud k6 (distributed load tests across AWS load-zones, scenarios, `http_req_duration` thresholds, CI integration via `grafana/k6-action`), and Frontend Observability with Faro Web SDK (RUM, Core Web Vitals, custom events, `pushError`, distributed-trace correlation). Use when checking website / API uptime from multiple regions, gating a release on a load test, watching for TLS-cert renewal, instrumenting a React/Vue app, tracking Core Web Vitals, or correlating frontend errors to backend traces — even when the user says "is my login flow up?", "monitor my API", "ping our endpoint every minute", "release-gate load test", "browser performance monitoring", "session replay", or "RUM" without naming Synthetic Monitoring / k6 / Faro.
---

# Grafana Cloud Testing

> **Docs**: https://grafana.com/docs/grafana-cloud/testing/

Three pillars: external probing (Synthetic Monitoring), load testing (k6 Cloud), real-user monitoring (Faro).

## Prerequisites

- Grafana Cloud stack
- Synthetic Monitoring: SM access token (`sm:write`)
- k6 Cloud: a Grafana Cloud k6 token + projectID
- Faro: a Faro app + write-token from **Frontend Observability → Apps**

## Common Workflows

### 1. Create + verify a Synthetic HTTP check

```bash
# 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`.
```

See [`references/synthetic.md`](references/synthetic.md) for all check types, PromQL queries, and alert rules.

### 2. Run a k6 cloud load test

```bash
# 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 $?
```

Full script + scenarios + CI YAML: [`references/k6-and-faro.md`](references/k6-and-faro.md).

### 3. Instrument a frontend with Faro

```bash
# 1. Install
npm install @grafana/faro-web-sdk @grafana/faro-web-tracing
```

```javascript
// 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() });
```

```bash
# 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
```

## Troubleshooting

- Synthetic check stuck at `probe_success=0` → check `probe_*_duration_seconds` for the failing stage; the probe-region label tells you which prober errored
- k6 cloud run "ABORTED_THRESHOLD" → a threshold tripped; inspect the run page to see which one
- Faro events not landing → check the browser network call to `/collect` returns 202; common cause is wrong `apiKey` or `url` (must match the FE Observability app)

## References

- For deep authoring of Synthetic Monitoring scripted (k6) and browser checks — execution model, assertions, secrets, API/Terraform payloads — see the [`synthetic-monitoring-checks`](../synthetic-monitoring-checks/SKILL.md) skill
- [`references/synthetic.md`](references/synthetic.md) — Synthetic Monitoring essentials: check types, key PromQL metrics, alert rules
- [`references/synthetic-monitoring.md`](references/synthetic-monitoring.md) — deep dive: full API for check CRUD, probe selection, scripted (k6) checks, multi-step browser checks
- [`references/k6-and-faro.md`](references/k6-and-faro.md) — k6 cloud script + Faro Web SDK init snippets for end-to-end testing
- [`references/k6-cloud.md`](references/k6-cloud.md) — deep dive: k6 cloud config (project + load zones + thresholds), CI integration, run analysis

## Resources

- [Synthetic Monitoring docs](https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/)
- [Grafana Cloud k6 docs](https://grafana.com/docs/grafana-cloud/testing/k6/)
- [Faro / Frontend Observability docs](https://grafana.com/docs/grafana-cloud/monitor-applications/frontend-observability/)

© grafana · Apache-2.0 · grafana/skills

Похожие скиллы

Всё по теме «Тесты и QA» →

Сначала — testing от других авторов.

testing tursodatabase Скилл помогает писать тесты для SQL и Rust: учит выбирать между форматами .sqltest, TCL и интеграционными тестами, показывает команды для запуска. CX Codex +1 1 300установок testing codewithmukesh Скилл задаёт стратегию тестирования приложений .NET 10: интеграционные тесты через WebApplicationFactory, реальные базы в Testcontainers, снапшоты Verify. CX Codex +1 2 800установок testing rshankras Набор TDD-воркфлоу и тестовой инфраструктуры для приложений на платформах Apple. Пригодится, когда ИИ пишет код, а вам нужны тесты до и после. CX Codex +1 468установок testing modelcontextprotocol Скилл объясняет, как писать и запускать тесты для серверов MCP: где лежит файл, какой раннер и как пройти порог покрытия. Пригодится, когда тест молча пропускается или проходит на устаревшей сборке. CX Codex +1 ★ 91 547звёзд репо monitoring-observability ahmedasmar Скилл для настройки мониторинга и наблюдаемости: стратегия метрик, алерты, дашборды, SLO и разбор инцидентов. CX Codex +1 493установок web-testing mrgoonie Скилл для веб-тестирования: юнит, интеграция, E2E, нагрузка, безопасность, визуальные регрессии и доступность. Пригодится, когда нужно навести порядок в тестах проекта. CX Codex +1 442установок qa-dashboard kindlmann Собирает дашборды и отчёты по тестам: Allure, Grafana, ReportPortal. Пригодится, когда результаты прогонов нужно показать команде или руководству. CX Codex +1 1 100установок testing-mwaa-workflow aws Скилл запускает и проверяет пайплайны в Amazon MWAA до финального статуса. Он помогает протестировать Python DAG или Serverless-сценарий перед сдачей в работу. CX Codex +1 861установок performance-testing kindlmann Помогает настроить нагрузочные тесты k6 и замеры Core Web Vitals через Lighthouse CI, превращая бюджеты производительности в блокирующие проверки в пайплайне. CX Codex +1 1 100установок stress-testing aj-geddes Скилл для нагрузочного стресс-тестирования: помогает найти точку отказа, проверить автоскейлинг и восстановление после перегрузки. CX Codex +1 497установок

Из того же набора47

send-data Помогает настроить отправку метрик, логов, трейсов и профилей в Grafana Cloud. Пригодится при настройке Alloy, OTLP-экспортёров, Prometheus remote write и Helm-чартов. CX Codex +1 4 200установок fleet-management Скилл для управления парком коллекторов Grafana Alloy: один раз описать пайплайн, раскатать его на нужные коллекторы по атрибутам и без перезапуска. CX Codex +1 4 200установок cost-management Скилл разбирает счёт Grafana Cloud по командам и сервисам и подсказывает, как урезать метрики, логи и трейсы. CX Codex +1 4 200установок k6-docs Скилл для составления и проверки документации k6, генерации типов TypeScript и подготовки заметок к релизу. CX Codex +1 4 200установок cue-kind-definition Помогает описывать ресурсы приложения в CUE: схемы spec и status, версии, ограничения полей и кодогенерация через grafana-app-sdk. CX Codex +1 4 200установок reconciler-logic Помогает создавать реконсилеры и вотчеры для приложений на grafana-app-sdk. Настраивает цикл согласования, атомарные обновления статуса и фильтры ресурсов. CX Codex +1 4 200установок app-sdk-concepts Скилл помогает начинать разработку приложений для Grafana App Platform: выбрать режим, создать каркас и связать CUE-схемы с Go-логикой. CX Codex +1 4 200установок adaptive-metrics Скилл для работы с правилами агрегации Adaptive Metrics: помогает уменьшить число активных серий в Grafana Cloud Metrics и разобраться с высоким счётом за Mimir. CX Codex +1 4 200установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой