Всё это время дело было в медленном запросе. Polylane прослеживает регрессию от сервиса к ветке и к конкретному запросу.
PlanetScale запускает MySQL и Postgres, чтобы вам не приходилось. Polylane помещает ваши базы данных в тот же граф, что и сервисы, которые к ним обращаются, так что расследования не останавливаются на границе сервиса.
Встать в список ожиданияКаждый поддерживаемый ресурс.
Типы ресурсов PlanetScale, которые появляются в вашем графе.
База данных присоединяется к расследованию.
Ваши базы данных перестают быть отдельной вкладкой: агенты строят их карту и расследуют через них.
Базы данных и ветки в графе
Polylane синхронизирует каждую базу данных и каждую ветку с её планом, регионом, состоянием схемы и историей. MySQL и Postgres, рядом со всем остальным, что вы запускаете в других облаках.
Связаны с сервисами, которые к ним обращаются
Polylane сопоставляет хосты подключений и имена пользователей, чтобы выяснить, какой сервис общается с какой веткой. Когда задержка оформления заказа подскакивает, граф уже знает базу данных за ней.
Query Insights в расследовании
Посреди расследования агенты забирают Query Insights для ветки: медленные запросы, запросы с ошибками и окна задержки, которые PlanetScale сам отметил. Всё это попадает в расследование как доказательства.
Изменения схемы на таймлайне
Каждая синхронизация записывает, что изменилось: новые ветки, устаревшие ветки, схемы, которые сдвинулись. Когда приложение ломается сразу после миграции, расследование начинается с миграции.
Ваши строки остаются вашими
Polylane читает API PlanetScale и ничего больше. Он никогда не подключается к вашим базам данных, никогда не видит ваши строки и никогда не хранит учётные данные баз данных. OAuth-токены шифруются перед сохранением, и агент никогда их не видит.
Расследования, которые заканчиваются PR
Когда первопричина в плохом запросе или миграции, исправление попадает в репозиторий за сервисом, с приложенными доказательствами: отсутствующий индекс, отменённая миграция.
Вопросы.
Является ли Polylane ИИ-SRE для PlanetScale?
Это то, что большинство людей имеют в виду под этим термином: агенты, которые держат ваши базы данных и ветки PlanetScale в том же графе контекста, что и сервисы, которые к ним обращаются, читают Query Insights во время расследований и исправляют то, что могут, а человек одобряет всё, что меняет production. Мы называем это самоуправляемым программным обеспечением, а не ИИ-SRE: смысл в том, что база данных заботится о себе сама, а не в том, что бот встаёт в ротацию on-call.
Как Polylane подключается к моей организации PlanetScale?
Через OAuth. Нажмите «подключить», подтвердите в PlanetScale, и синхронизация начнётся. Polylane запрашивает только области чтения, и никаких API-ключей создавать или вставлять не нужно.
Какие ресурсы PlanetScale синхронизирует Polylane?
Базы данных и их ветки, MySQL и Postgres, каждая с планом, регионом, состоянием схемы и историей. Polylane также сопоставляет хосты подключений и имена пользователей, чтобы каждая ветка была связана с сервисами, которые к ней обращаются.
Может ли Polylane изменить мои базы данных?
Нет. Polylane читает только API PlanetScale: он никогда не подключается к вашим базам данных, никогда не видит ваши строки и никогда не хранит учётные данные баз данных. Когда исправление касается плохого запроса или миграции, оно приходит в ветку на ваше ревью, а CI по-прежнему решает судьбу merge.
Как проявляются проблемы с базой данных?
Через граф. Когда приложение регрессирует, радиус поражения включает ветку за ним, и агенты забирают Query Insights для этой ветки: медленные запросы, запросы с ошибками и собственные окна отклонений задержки PlanetScale.
Работает ли это с моим провайдером наблюдаемости?
Да. Datadog, Sentry, Honeycomb, Axiom и Grafana Cloud входят в граф как полноценные источники, а их алерты проходят триаж агентом в момент срабатывания.
Сколько это стоит?
Цены открыты, подключение самостоятельное: бесплатный план, платные планы от $80 в месяц и оплата по факту за перерасход сверх включённых кредитов. Все планы и лимиты опубликованы на polylane.com/pricing.