
Превратите инциденты, оповещения и команды Rootly в запрашиваемый граф знаний. Визуализируйте зависимости сервисов, пробелы в покрытии дежурств и кросс-инцидентные паттерны.
Построен на graphify — инструменте, вдохновлённом идеей LLM Wiki Андрея Карпатого: вместо того чтобы каждый запрос заново извлекать знания с нуля, LLM строит постоянный структурированный граф знаний, который со временем становится всё богаче. Graphify берёт любую папку с файлами и превращает её в доступный для запросов граф с сообществами, связями и оценками уверенности. Этот форк направляет его на API Rootly.
Подключите API Rootly, соберите инциденты, оповещения, команды и каталог сервисов за выбранный промежуток времени, экспортируйте их в локальный корпус и превратите этот корпус в доступный для запросов граф знаний. Используйте graphify rootly для сбора, а /graphify в Claude Code или Codex, когда нужен более глубокий семантический анализ.
Чистая установка (Graphify + импортёр Rootly):
pip install "graphifyy[rootly]"
graphify install # Claude Code
graphify install --platform codex # Codex
Добавление импортёра Rootly в существующую установку Graphify:
pip install "graphifyy[rootly]" --upgrade
Создайте файл .env в корне проекта:
ROOTLY_API_KEY=rootly_...
Получает инциденты, сработавшие оповещения и команды. Строит начальный граф с цветами по критичности, фильтрами оповещений и слоями команд/сервисов.
graphify rootly
Без интерактивного режима:
graphify rootly --api-key-env ROOTLY_API_KEY --days 30 --mode standard
Результат записывается в graphify-rootly-data/graphify-out/:
graph.html — откройте в браузере для просмотра графаGRAPH_REPORT.md — главные узлы, сообщества, предлагаемые вопросыgraph.json — сырой граф для запросовЗапускает параллельные подагенты над корпусом инцидентов, чтобы выявить сквозные темы, повторяющиеся паттерны и причинно-следственные связи.
Claude Code — введите в чате:
/graphify graphify-rootly-data --mode deep
Codex — введите в чате:
run graphify on graphify-rootly-data --mode deep
| Ресурс | Что | Фильтр |
|---|---|---|
| Инциденты | Заголовок, критичность, статус, хронология, сервисы, команды, описание |
Когда файл graph.html открыт в браузере:
rootly-graphify состоит из фазы сбора Rootly и фазы анализа графа.
Детерминированный сбор Rootly. Проверка ключа API, выбор окна в 7, 30 или 90 дней, получение инцидентов, чьё started_at попадает в это окно, получение их сработавших оповещений через подресурс для каждого инцидента, получение данных всех команд, запись всего в локальный каталог корпуса.
Первоначальное построение графа Rootly. Встроенный обработчик Rootly создаёт узлы для инцидентов, оповещений, команд и сервисов, соединяет их типизированными рёбрами (triggered, affects, owns, responded_by, targets), кластеризует граф и записывает graph.html, GRAPH_REPORT.md и graph.json. HTML включает цветовую кодировку по критичности, слои команд/сервисов и фильтры оповещений.
Опциональное глубокое обогащение. Запустите /graphify ./graphify-rootly-data --mode deep, чтобы отправить параллельные подагенты над файлами Markdown и выявить сквозные темы, обоснования и концептуальные связи.
Используйте текущий выходной результат верхнего уровня. После семантического обогащения откройте . Текущий универсальный экспортёр уже включает поддерживаемые фильтры и визуализации напрямую, поэтому отдельный шаг повторного применения не требуется.
Кластеризация основана на топологии графа — без эмбеддингов. Leiden находит сообщества по плотности рёбер. Рёбра семантического сходства (semantically_similar_to, помеченные INFERRED) влияют на обнаружение сообществ напрямую. Отдельного шага эмбеддингов или векторной базы данных не требуется.
Каждое отношение помечено как EXTRACTED (найдено непосредственно в источнике), INFERRED (обоснованное умозаключение с оценкой уверенности) или AMBIGUOUS (отмечено для проверки).
Главные узлы — инциденты или сервисы с наибольшей степенью (через что всё связано)
Неожиданные связи — меж-инцидентные связи, ранжированные по составной оценке, каждая с пояснением на простом английском
Предлагаемые вопросы — 4–5 вопросов, на которые граф уникально способен ответить об истории ваших инцидентов
Оценки уверенности — каждое ребро INFERRED имеет confidence_score (0.0–1.0). Рёбра EXTRACTED всегда 1.0.
Рёбра семантического сходства — меж-инцидентные концептуальные связи без структурной связи. Два инцидента, вызванные одним и тем же корневым паттерном, но не имеющие общих сервисов или команд.
Эффективность токенов — первый запуск извлекает и строит граф (тратятся токены). Каждый последующий запрос читает компактный граф вместо сырого Markdown — на этом и происходит экономия. Кэш SHA256 гарантирует, что при повторных запусках повторно обрабатываются только изменённые файлы.
# --- Рабочий процесс Rootly (терминал) ---
graphify rootly # интерактивный импорт Rootly
graphify rootly --days 30 # собрать инциденты за последние 30 дней
graphify rootly --api-key-env ROOTLY_API_KEY # неинтерактивный поиск ключа из переменной окружения
graphify rootly --output ./my-rootly-corpus # записать корпус в пользовательскую папку
# --- Семантическое обогащение (агент: Claude Code / Codex) ---
/graphify ./graphify-rootly-data # анализ корпуса Rootly
/graphify ./graphify-rootly-data --mode deep # более агрессивные рёбра INFERRED
/graphify ./graphify-rootly-data --update # повторное извлечение только изменённых файлов
# --- Запросы к графу (агент) ---
/graphify query "which services have the most recurring incidents?"
/graphify query "what patterns connect the SEV1 incidents?"
/graphify path "payment-api" "auth-service"
/graphify explain "Incident: Database connection pool exhausted"
# --- Опциональные экспорты ---
/graphify ./graphify-rootly-data --wiki # вики для агента по каждому сообществу
/graphify ./graphify-rootly-data --no-viz # пропустить HTML, только отчёт + JSON
/graphify ./graphify-rootly-data --obsidian # хранилище Obsidian
# --- Постоянные инструкции ассистенту ---
graphify claude install # CLAUDE.md + хук PreToolUse (Claude Code)
graphify codex install # AGENTS.md (Codex)
# Получить свежие данные и перестроить
graphify rootly --api-key-env ROOTLY_API_KEY --days 30 --mode standard
# Повторное обогащение с семантическим шагом (Claude Code)
/graphify graphify-rootly-data --update
| Паттерн | Что он показывает | Зачем нужен граф |
|---|
| Тепловая карта инцидентов сервисов | Какие сервисы горят и насколько сильно. Размер узла = количество инцидентов, цвет = максимальная критичность. | Группирует сервисы, которые обычно отказывают вместе, выявляя скрытые зависимости инфраструктуры. |
| Карта дежурств и эскалаций команды | Кто что покрывает во всех расписаниях и политиках эскалации в одном окне. | Выявляет единые точки отказа — человека на 4 расписаниях в 3 командах — и пробелы в покрытии. |
| Воронка оповещение→инцидент | Какие источники оповещений порождают реальные инциденты, а какие — чистый шум. | Источник с 200 оповещениями и 0 инцидентов сразу виден по размеру узла. |
| Инцидент → выполнение действия | Действительно ли мы исправляем то, что ломается? Сплошные рёбра = выполнено, пунктирные = открыто. | Кластеры открытых действий вокруг команды или сервиса выявляют системные проблемы с последующим исправлением. |
| Корреляция отказов между сервисами | Какие сервисы отказывают вместе в одном временном окне. | Обнаружение сообществ находит группы общей судьбы, которые, вероятно, зависят от одной и той же инфраструктуры. |
Окно дат (--days) |
| Оповещения | Сводка, статус, источник, флаг шума, хронология | Только сработавшие (связанные с инцидентом) |
| Команды | Название, slug, владение сервисами | Все команды в аккаунте |
graphify-out/graph.html