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

alloy — скилл для Claude Code: телеметрия Grafana Alloy

Помогает писать и проверять конфиги Grafana Alloy: сбор метрик, логов, трейсов и профилей в один пайплайн.

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

Что делает alloy

Скилл alloy от Grafana учит агента языку конфигурации Alloy и типовым пайплайнам. Внутри — разбор блоков, ссылок на компоненты, sys.env, модулей import.file/git/http, кластеризации и Fleet Management remotecfg. Есть готовые связки: prometheus.scrape в remote_write, loki.source.file с loki.process в loki.write, приём OTLP через otelcol.receiver.otlp и отправка в Tempo, pyroscope.scrape для профилей.

Отдельная часть — проверка. Агент прогоняет alloy fmt и alloy validate, а потом смотрит на состояние компонентов через UI на порту 12345: если что-то отвалилось, там видно, какой компонент и почему. Для диагностики есть метрики вроде prometheus_remote_storage_samples_dropped_total и otelcol_receiver_refused_spans. Скилл пригодится, когда конфиг уже написан, но данные никуда не уходят.

Чтобы это заработало, нужен установленный alloy CLI и endpoint для отправки — Grafana Cloud, Prometheus, Loki, Tempo или Pyroscope. Для авторизации понадобится API-ключ и username, которые скилл советует держать в переменных окружения вроде GRAFANA_API_KEY. Если alloy validate ругается на «component not found», дело в старой версии бинарника — это повод проверить alloy --version и обновиться.

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

  • написать config.alloy для сбора метрик и логов
  • перевести конфиг с Grafana Agent или OTel Collector на Alloy
  • настроить scraping подов в Kubernetes с relabel
  • разобраться, почему Alloy не отправляет данные
  • принимать OTLP-трейсы и отправлять их в Tempo

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

  • Напиши config.alloy, который собирает метрики с localhost:9090 и отправляет их в Grafana Cloud
  • Добавь в конфиг сбор логов из /var/log/app/*.log и отправку в Loki
  • Alloy ничего не отправляет — посмотри, какие компоненты нездоровы на порту 12345

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

1Через Skills CLI (Vercel)

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

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

~/.claude/skills/alloy/SKILL.md

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

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

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

grafana-oss Скилл помогает агенту провизионить дашборды и датасорсы Grafana OSS из YAML, писать JSON панелей и проверять каждый шаг через API. CX Codex +1 5 600установок prometheus Справочник по PromQL, правилам алертов Prometheus и маршрутизации Alertmanager. Помогает генерировать метрики, алерты и правила записи. CX Codex +1 5 200установок alerting-irm Настраивает Grafana Alerting, IRM и SLO: от правил и маршрутизации до дежурств и эскалаций. Пригодится для YAML- и API-конфигурации. CX Codex +1 5 100установок assistant-mcp Помогает подключить ИИ-агентов к Grafana Cloud через MCP-сервер mcp-grafana. Пригодится для чтения метрик, поиска дашбордов и проверки алертов прямо в кодовой базе. CX Codex +1 5 000установок tempo Скилл для развёртывания Grafana Tempo и написания запросов TraceQL: от локального Docker Compose до Helm в Kubernetes. CX Codex +1 4 900установок pyroscope Скилл для непрерывного профилирования приложений через Grafana Pyroscope: флейм-графы CPU, памяти и аллокаций прямо в диалоге с агентом. CX Codex +1 4 700установок beyla Автоматически подключает eBPF-мониторинг HTTP, gRPC и баз данных через Grafana Beyla без изменения кода. Пригодится для сбора трейсов и RED-метрик с готовых бинарников. CX Codex +1 4 700установок app-observability Ведёт агента по настройке Grafana Cloud: RED-метрики из OTel-трейсов, карты сервисов, браузерный RUM через Faro и наблюдение за вызовами LLM. CX Codex +1 4 400установок

Похожие

monitoring-observability ahmedasmar Скилл для настройки мониторинга и наблюдаемости: стратегия метрик, алерты, дашборды, SLO и разбор инцидентов. CX Codex +1 493установок loki-logging devops-skills Скилл помогает настроить Grafana Loki, Promtail и запросы LogQL прямо в проекте, без похода в документацию. CX Codex +1 330установок mcp-grafana grafana Даёт агенту доступ к вашему Grafana: искать дашборды, читать панели, гонять PromQL и LogQL. Пригодится, когда разбираете инцидент или правите графики прямо из чата. CX Codex +1 ★ 3 598звёзд репо monitor-setup Seth Hobson Слэш-команда, которая разворачивает сбор метрик Prometheus, дашборды Grafana, распределённую трассировку и агрегацию логов. CX Codex ★ 41 729звёзд репо grafana-dashboards Seth Hobson Скилл помогает создавать Grafana-дашборды для метрик систем и приложений. Подойдёт для мониторинга, SLO и операционных интерфейсов наблюдаемости. CX Codex 13 097установок qdrant-monitoring qdrant Скилл подсказывает, как настроить мониторинг Qdrant и разобраться с зависшим оптимизатором, ростом памяти или медленными запросами. CX Codex +1 1 500установок

Рядом в теме «DevOps и инфраструктура»

Всё по теме «DevOps и инфраструктура» →

Вопросы о alloy

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

Выполните npx skills add grafana/skills --skill alloy -a claude-code, скилл встанет в ~/.claude/skills/alloy/SKILL.md.

Что делает скилл alloy?

Помогает агенту писать и проверять конфиги Grafana Alloy: пайплайны метрик, логов, трейсов и профилей, а также разбирать ошибки через UI и метрики.

Что нужно для работы скилла?

Установленный alloy CLI и endpoint для отправки данных. Для авторизации нужен API-ключ и username, скилл советует хранить их в переменных окружения.

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

SKILL.md · Apache-2.0
---
name: alloy
license: Apache-2.0
description: Build a unified telemetry pipeline with Grafana Alloy — one OpenTelemetry-compatible binary that collects metrics, logs, traces, and profiles and ships to Grafana Cloud / Prometheus / Loki / Tempo / Pyroscope. Covers the Alloy config language (blocks, `sys.env`, component refs), `prometheus.scrape` → `remote_write`, `loki.source.file` + `loki.process` → `loki.write`, `otelcol.receiver.otlp` → `otelcol.exporter.otlp`, `pyroscope.scrape`, K8s / Docker / EC2 discovery, relabeling, modules (`import.file/git/http`), clustering, Fleet Management `remotecfg`, the Alloy UI at `:12345`, and `alloy fmt` / `alloy validate`. Use when writing a `config.alloy`, replacing Grafana Agent / OTel Collector, scraping K8s pods, parsing logs, ingesting OTLP, or debugging "Alloy isn't sending anything" — even when the user says "set up the agent", "write me a scrape config", "drop these logs before sending", or "OTel collector config" without naming Alloy.
---

# Grafana Alloy

> **Docs**: https://grafana.com/docs/alloy/latest/

OpenTelemetry-compatible collector — one binary for metrics + logs + traces + profiles.

## Prerequisites

- `alloy` CLI installed (`brew install grafana/grafana/alloy`, `apt install alloy`, or `grafana/alloy` Docker image)
- An endpoint to ship to (Grafana Cloud, Prometheus, Loki, Tempo, Pyroscope)
- API key + username for that endpoint, exported as `GRAFANA_API_KEY` etc.

## Common Workflows

### 1. Write + validate a config locally

```alloy
// config.alloy — metrics → Grafana Cloud
prometheus.scrape "app" {
  targets = [{"__address__" = "localhost:9090"}]
  forward_to = [prometheus.remote_write.cloud.receiver]
  scrape_interval = "30s"
}

prometheus.remote_write "cloud" {
  endpoint {
    url = sys.env("PROMETHEUS_URL")
    basic_auth {
      username = sys.env("PROM_USER")
      password = sys.env("GRAFANA_API_KEY")
    }
  }
}
```

```bash
# 1. Format + syntax-check (catches typos before run)
alloy fmt config.alloy
alloy validate config.alloy

# 2. Run it
alloy run config.alloy
# or as a service: systemctl restart alloy

# 3. Verify all components are healthy via the UI on port 12345
curl -s http://localhost:12345/api/v0/web/components \
  | jq '.[] | select(.health.state != "healthy") | {id, state:.health.state, msg:.health.message}'
# Expect: empty (nothing unhealthy). Otherwise the row shows the failing component + reason.

# 4. Verify samples are flowing
curl -s http://localhost:12345/metrics \
  | grep -E '^prometheus_remote_storage_(samples_total|enqueue_retries_total)' | head
# samples_total should be > 0 and rising; retries should be 0.
```

### 2. Add log shipping (file → Loki)

```alloy
loki.source.file "app_logs" {
  targets    = [{ __path__ = "/var/log/app/*.log", job = "app" }]
  forward_to = [loki.write.cloud.receiver]
}

loki.write "cloud" {
  endpoint {
    url = sys.env("LOKI_URL")
    basic_auth {
      username = sys.env("LOKI_USER")
      password = sys.env("GRAFANA_API_KEY")
    }
  }
}
```

```bash
# Verify in Grafana → Explore → Loki:
#   {job="app"}
# Expect lines streaming. If empty:
#   - check /var/log/app/*.log actually exists + readable by the alloy user
#   - http://localhost:12345 → loki.source.file.app_logs → "Targets" tab
```

### 3. Receive OTLP traces and ship to Tempo

```alloy
otelcol.receiver.otlp "default" {
  grpc { endpoint = "0.0.0.0:4317" }
  http { endpoint = "0.0.0.0:4318" }
  output { traces = [otelcol.exporter.otlp.tempo.input] }
}

otelcol.exporter.otlp "tempo" {
  client {
    endpoint = "tempo-xxx.grafana.net/tempo:443"
    auth     = otelcol.auth.basic.grafana_cloud.handler
  }
}

otelcol.auth.basic "grafana_cloud" {
  username = sys.env("TEMPO_USER")
  password = sys.env("GRAFANA_API_KEY")
}
```

```bash
# Verify in Grafana → Explore → Tempo → service.name = your-service
# At the Alloy level, watch the receiver:
curl -s http://localhost:12345/metrics | grep otelcol_receiver_accepted_spans
```

Full pattern set (Kubernetes discovery + relabel, complete Cloud pipeline for all 4 signals): [`references/collection-patterns.md`](references/collection-patterns.md).

## Reference

- [`references/config-syntax.md`](references/config-syntax.md) — block/attribute/expression grammar, `import.*`, `remotecfg`, clustering
- [`references/components.md`](references/components.md) — full component catalog with purpose + typical args
- [`references/collection-patterns.md`](references/collection-patterns.md) — end-to-end pipelines (K8s pods, OTLP, profiles, logs)

## Troubleshooting

- `alloy validate` → "component not found" → version too old; `alloy --version` and upgrade
- UI shows component `unhealthy` → click into it on http://localhost:12345 for the live error
- `prometheus_remote_storage_samples_dropped_total` rising → check `enqueue_retries_total` and the remote_write endpoint URL + creds
- No spans landing in Tempo → check `otelcol_receiver_refused_spans` and the exporter's `otelcol_exporter_sent_spans` / `otelcol_exporter_send_failed_spans`

## Resources

- [Alloy docs](https://grafana.com/docs/alloy/latest/)
- [Component reference](https://grafana.com/docs/alloy/latest/reference/components/)
- [Migrate from Grafana Agent](https://grafana.com/docs/alloy/latest/set-up/migrate/from-agent/)

© grafana · Apache-2.0 · grafana/skills

Смотрите также

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

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