grafana-oss — скилл для Claude Code: настройка Grafana OSS
Скилл помогает агенту провизионить дашборды и датасорсы Grafana OSS из YAML, писать JSON панелей и проверять каждый шаг через API.
npx skills add grafana/skills --skill grafana-oss -a claude-codeЧто делает grafana-oss
Скилл описывает, как настраивать Grafana OSS через файлы провижининга. Агент кладёт JSON дашбордов в /var/lib/grafana/dashboards/, добавляет провайдера в provisioning/dashboards/default.yaml и перезапускает Grafana, чтобы конфиг подхватился. Датасорсы — Prometheus, Loki, Tempo, Pyroscope — прописываются в provisioning/datasources/datasources.yaml.
Внутри есть справочники по JSON дашбордов с шаблонными переменными, по типам панелей, алертингу и полному API Grafana OSS. Отдельно разобраны встроенные роли Viewer, Editor, Admin и GrafanaAdmin, выпуск токенов сервисных аккаунтов и правка grafana.ini — SMTP, OAuth, база данных, feature-тоглы. Каждый шаг скилл советует проверять curl-запросом: health датасорса, наличие дашборда по uid, работу токена.
Провижининг дашбордов ломается тихо: если JSON не распарсился, панель просто не появится, а в ответ на запрос придёт 404. Скилл поэтому отправляет смотреть логи journalctl -u grafana-server | grep -i provisioning. Роли с тонкими правами — это уже Enterprise и Cloud, в OSS доступны только встроенные.
Токен для проверок нужен заранее: без него curl к API вернёт 401, а неверная роль даст 403.
Какие задачи решает
- провизионить дашборды из git, а не руками через UI
- подключить Prometheus, Loki, Tempo и Pyroscope одним YAML
- выпустить токен сервисного аккаунта для CI
- разобраться, почему провизионенный дашборд не появился
- настроить SMTP или OAuth в
grafana.ini
Примеры запросов агенту
- Настрой провижининг дашбордов из
/var/lib/grafana/dashboards/и проверь, что дашборд подхватился - Добавь датасорс Prometheus в
provisioning/datasources/datasources.yamlи прогони health-check - Создай сервисный аккаунт
ci-readerс ролью Viewer и выпусти токен
Как установить grafana-oss
1Через Skills CLI (Vercel)
npx skills add grafana/skills --skill grafana-oss -a claude-code2Вручную: положить файлы
~/.claude/skills/grafana-oss/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/grafana-oss/
1Через Skills CLI (Vercel)
npx skills add grafana/skills --skill grafana-oss -a codex2Вручную: положить файлы
.agents/skills/grafana-oss/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add grafana/skills --skill grafana-oss -a cursor2Вручную: положить файлы
.cursor/skills/grafana-oss/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install grafana/skills grafana-oss2Вручную: положить файлы
.github/skills/grafana-oss/SKILL.md1Через Skills CLI (Vercel)
npx skills add grafana/skills --skill grafana-oss -a gemini-cli2Командой платформы
gemini skills install https://github.com/grafana/skills --path skills/grafana-core/grafana-ossВручную: положить файлы
.devin/skills/grafana-oss/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add grafana/skills --skill grafana-oss -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора44
Похожие
Рядом в теме «DevOps и инфраструктура»
Всё по теме «DevOps и инфраструктура» →Вопросы о grafana-oss
Как установить grafana-oss в Claude?
Выполните npx skills add grafana/skills --skill grafana-oss -a claude-code. Скилл окажется в ~/.claude/skills/grafana-oss/SKILL.md.
Что делает скилл grafana-oss?
Он ведёт агента по настройке Grafana OSS: провижининг дашбордов и датасорсов из YAML, JSON панелей с шаблонными переменными, роли, токены сервисных аккаунтов, правка grafana.ini и проверка шагов через API.
Можно ли через этот скилл настроить роли с тонкими правами?
Нет. Кастомные RBAC-роли с детальными правами доступны только в Enterprise и Cloud, в OSS есть встроенные Viewer, Editor, Admin и GrafanaAdmin.
Исходный текст
SKILL.md · Apache-2.0
---
name: grafana-oss
license: Apache-2.0
description: Configure Grafana OSS — provisions dashboards from YAML, sets up data sources (Prometheus / Loki / Tempo / Pyroscope), writes dashboard JSON with template variables, builds panel queries, assigns built-in roles (Viewer / Editor / Admin / GrafanaAdmin), mints service-account tokens, edits grafana.ini server config, creates annotations, installs plugins via provisioning, and validates each step with a health-check curl. Use when building dashboards, configuring data sources, setting up provisioning YAML, picking a panel type, writing template variables, managing users and roles, configuring SMTP/OAuth in grafana.ini, creating annotations via API, troubleshooting why a provisioned dashboard isn't showing up, or running Grafana OSS locally — even when the user says "set up a Prometheus data source", "provision dashboards from git", "make a service account", or "configure SSO in OSS" without saying "Grafana OSS".
---
# Grafana OSS
> **Docs**: https://grafana.com/docs/grafana/latest.md
## Common Workflows
### Provisioning dashboards from disk
1. Drop dashboard JSON file(s) under `/var/lib/grafana/dashboards/`
2. Add a provider in `provisioning/dashboards/default.yaml` (see [§ Dashboard provisioning](#dashboard-provisioning) below)
3. Restart Grafana so the provider config is loaded
4. **Verify the dashboard landed**:
```bash
curl https://grafana.example.com/api/dashboards/uid/<uid> \
-H "Authorization: Bearer <token>" | jq '.dashboard.title'
```
Returns the title → success. 404 → provisioning didn't pick it up; check Grafana server logs (`journalctl -u grafana-server | grep -i provisioning`) for parse errors.
### Provisioning data sources
1. Write `provisioning/datasources/datasources.yaml` (see [§ Data source provisioning](#data-source-provisioning) below)
2. Restart Grafana
3. **Health-check the data source via API**:
```bash
curl https://grafana.example.com/api/datasources/uid/<uid>/health \
-H "Authorization: Bearer <token>"
# { "status": "OK", "message": "..." } → working
# { "status": "ERROR", ... } → URL unreachable or auth misconfigured
```
### Creating a service account + token
1. Provision via YAML or `POST /api/serviceaccounts` (full API in [references/api.md § Users + service accounts](references/api.md#users--service-accounts))
2. Mint a token via `POST /api/serviceaccounts/{id}/tokens`
3. **Verify the token works**:
```bash
curl https://grafana.example.com/api/org \
-H "Authorization: Bearer <new-token>"
# 200 + org JSON → token + role assignment work
# 401 → token wrong; 403 → role wrong
```
## Dashboard provisioning
```yaml
# provisioning/dashboards/default.yaml
apiVersion: 1
providers:
- name: default
folder: MyFolder
type: file
disableDeletion: false
updateIntervalSeconds: 30
options:
path: /var/lib/grafana/dashboards
foldersFromFilesStructure: true
```
For the dashboard JSON shape itself (panels, queries, template variables), see [references/dashboard-json.md](references/dashboard-json.md).
## Data source provisioning
```yaml
# provisioning/datasources/datasources.yaml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
jsonData:
timeInterval: 15s
httpMethod: POST
- name: Loki
type: loki
access: proxy
url: http://loki:3100
- name: Tempo
type: tempo
access: proxy
url: http://tempo:3200
jsonData:
tracesToLogsV2:
datasourceUid: loki_uid
tags: [{ key: "service.name", value: "app" }]
serviceMap:
datasourceUid: prometheus_uid
nodeGraph:
enabled: true
- name: Pyroscope
type: grafana-pyroscope-datasource
url: http://pyroscope:4040
```
## RBAC (built-in roles)
| Role | Permissions |
|------|-------------|
| **Viewer** | Read dashboards, alerts |
| **Editor** | Create/edit dashboards, alerts |
| **Admin** | Manage data sources, users, plugins |
| **GrafanaAdmin** | Server-wide admin (superuser) |
Service-account provisioning:
```yaml
# provisioning/access-control/service_accounts.yaml
apiVersion: 1
serviceAccounts:
- name: ci-reader
orgId: 1
role: Viewer
tokens:
- name: ci-token
# expires: optional ISO 8601 timestamp; omit for no-expiry tokens
```
(Custom RBAC roles with fine-grained permissions are Enterprise / Cloud only — see the `grafana-cloud/admin` skill if you need those.)
## Plugin provisioning
```yaml
# provisioning/plugins/plugins.yaml
apiVersion: 1
apps:
- type: grafana-pyroscope-app
disabled: false
jsonData:
backendUrl: http://pyroscope:4040
```
After restart, verify via `GET /api/plugins/<plugin-id>/health`.
## References
- [`references/dashboard-json.md`](references/dashboard-json.md) — full dashboard JSON model + template variables + common problems (uid uniqueness, gridPos arithmetic, datasource uid matching)
- [`references/dashboards.md`](references/dashboards.md) — dashboard workflows, settings, variables, annotations, sharing, versions, playlists, and provisioning-as-code
- [`references/datasources.md`](references/datasources.md) — data source setup and query examples for Prometheus, Loki, Tempo, SQL, CloudWatch, and plugins
- [`references/panel-types.md`](references/panel-types.md) — panel-type table + decision guide for picking the right one
- [`references/panels.md`](references/panels.md) — panel editor, visualization options, field config, transformations, query options, inspection, and performance tips
- [`references/alerting.md`](references/alerting.md) — alerting concepts, contact points, notification policies, templates, silences, and common rule examples
- [`references/api.md`](references/api.md) — full Grafana OSS API reference (dashboards, data sources, users, service accounts, annotations) with verification curls and common failure modes
- [`references/config.md`](references/config.md) — `grafana.ini` server / database / SMTP / auth / security / feature-toggle config + restart-required issues
© grafana · Apache-2.0 · grafana/skills