Orbit

Orbit Build Insights and Delivery Insights

Orbit has two insight views: a per-project Build Insights tab that answers "why are our builds slow", and an account-wide Insights page that answers "how well are we shipping". This guide covers…

Orbit имеет два представления информации: вкладка Build Insights для каждого проекта, которая отвечает на вопрос "почему наши сборки медленные", и страница Insights для всего аккаунта, которая отвечает на вопрос "насколько хорошо мы доставляем". Это руководство охватывает оба представления и когда использовать каждое.

Где находятся оба представления

Build Insights, это представление для каждого проекта. Откройте Orbit, выберите проект и нажмите на Build Insights в группе Observability в полосе вкладок проекта.

Insights, это представление для всего аккаунта. Откройте Orbit и выберите Insights из верхней навигации, рядом с Mission control и Usage.

Build Insights tab for an Orbit project

Build Insights: карточки сводки

На вкладке представлены процентили продолжительности сборки, коэффициент попадания в кеш, коэффициент успеха и тренд за выбранный период времени. Период времени можно изменить в верхней части страницы.

КарточкаЧто она показывает
Total buildsСколько сборок запустилось, разделенных на успешные и неудачные
Success rateОценивается как Healthy, OK или Needs attention
Build duration p50Средняя сборка, с p95 и p99 ниже
Cache hit rateПопадания против промахов
Cache savingsВремя вычисления, сэкономленное кешем

Парность p50 с p95 и p99, это суть. p50 в 90 секунд с p99 в 95 секунд, это хорошо ведущая себя сборка. p50 в 90 секунд с p99 в одиннадцать минут означает, что что-то изредка идет очень неправильно, и усреднение полностью скрыло бы это.

Если в период времени нет сборок, страница сообщает об этом и рекомендует выбрать больший период, если ваши развертывания старше.

Тренд объема и продолжительности сборок

График тренда отображает ежедневное количество сборок за период времени с наложением средней продолжительности. При наведении на день показывается количество, разделение на успешные и неудачные, а также среднее значение.

Читайте обе серии вместе. Увеличение объема с плоской продолжительностью, это здоровая команда, которая доставляет больше. Плоский объем с растущей продолжительностью, это сборка, которая тихо деградирует, обычно из-за роста зависимостей или кеша, который перестал работать.

Фреймворки и менеджеры пакетов

Две разбивки расположены ниже тренда:

  • By framework, группирующая успешные сборки по фреймворку, обнаруженному Orbit.
  • Package managers, по всем сборкам.

В проекте с одним приложением это одна строка каждая и не очень интересно. В монорепо или аккаунте с несколькими проектами это то, как вы находите выбросы: одно приложение на другом менеджере пакетов или фреймворк, который тянет вниз среднее значение.

Обнаружение фреймворка также управляет стандартными параметрами сборки Orbit: см. Фреймворки, поддерживаемые Orbit.

Самые медленные сборки

Таблица Slowest 10 successful builds выводит ваши наихудшие результаты с их веткой, продолжительностью и временем ожидания в очереди, описанные на странице как кандидаты на оптимизацию.

Обратите внимание на столбец Queued конкретно. Сборка, которая длилась восемь минут, из которых шесть были потрачены на ожидание в очереди,, это не медленная сборка, это занятый хост сборки, и никакая оптимизация npm ci не поможет. Сборка, которая длилась восемь минут без времени ожидания в очереди, действительно медленная и стоит того, чтобы с ней разобраться.

Сначала атакуйте фазу установки самой медленной сборки, а не фазу сборки. Установка, это то место, где теплый кеш окупается, и это обычно самый легкий выигрыш. Configuring Your Build Command and Output Directory охватывает вовлеченные параметры.

Сбережения кеша

На вкладке количественно определяется, что кеш сборки сэкономил вам в вычислительном времени за период. Это число, аргумент в пользу поддержания здоровья кеша.

Если коэффициент попадания в кеш низкий, обычные причины:

  • Файл блокировки, который изменяется при каждом коммите, что каждый раз инвалидирует кеш.
  • Сборки, которые были намеренно очищены и еще не прогрелись снова.
  • Долгие перерывы между развертываниями.

Очистка кеша это сбрасывает, что стоит помнить перед тем, как очищать его по привычке во время отладки.

Delivery Insights: метрики DORA

На странице Insights для всего аккаунта охватываются последние 30 дней по всем проектам, и числа представлены как метрики DORA с диапазоном производительности Elite, High, Medium или Low, а также сравнение с предыдущими 30 днями.

МетрикаОпределение на странице
Deploy frequencyКак часто вы выполняете развертывание, все окружения, все проекты
Lead time (P50)Коммит в очередь до развертывания, с P95 рядом
Change failure rateРазвертывания в production, которые не удались
MTTR (median)От сбоя к следующему успеху в production

Эти четыре метрики намеренно находятся в напряжении. Вы можете сделать коэффициент изменения неудачного развертывания идеальным, выполняя развертывание один раз в месяц, и вы можете сделать частоту развертывания отличной, постоянно доставляя и ломая вещи. Набор имеет смысл только при чтении вместе, и тренд в сравнении с предыдущими 30 днями имеет большее значение, чем абсолютный диапазон.

Разбивка по проектам

Ниже метрик находится таблица каждого проекта за одни и те же 30 дней: развертывания, успехи, сбои и среднее время сборки.

Это самый быстрый способ найти проект, который тянет вниз аккаунт: проект с низким коэффициентом успеха или проект, у которого средняя сборка в несколько раз больше, чем у остальных. Откройте его вкладку Build Insights затем, чтобы увидеть детали.

Если данных вообще нет, страница сообщит об этом и предложит отправить в ветку, чтобы начать работу.

Какое представление открыть

  • Сборка медленная. Build Insights для проекта. Посмотрите p50 против p95, затем время ожидания в очереди, затем таблицу самых медленных сборок.
  • Сборки часто не выполняются. Build Insights для коэффициента, затем вкладка Analytics с классификацией причины сбоя: см. Orbit Project Analytics.
  • Кто-то спрашивает, как команда выполняет развертывание. Insights, для всего аккаунта. Четыре метрики DORA с их стрелками тренда прямо отвечают на этот вопрос.
  • Вы выбираете, над чем работать дальше. Сначала Insights, чтобы найти проект, затем Build Insights, чтобы найти причину.

Решение проблем

Страница пустая, но я знаю, что мы выполняем развертывание. Расширьте период времени. Build Insights по умолчанию использует более короткий период, чем вы могли ожидать, а страница для всего аккаунта зафиксирована на 30 дней.

Коэффициент попадания в кеш равен нулю. Либо кеш был недавно очищен, либо ваш план не включает кеширование сборок. См. Orbit Plan Limits.

Lead time выглядит огромным. Lead time измеряется от коммита до живого развертывания, поэтому долгоживущая ветка, которая была объединена спустя недели после своего первого коммита, это увеличивает. Это реальная информация, не ошибка: она говорит вам, что работа остается необъединенной.

MTTR пустой. В период времени не было сбоев в production, поэтому восстанавливаться нечего. Это хороший случай.

Куда идти дальше

Вам всё ещё нужна помощь?

Напишите нам на support@kapsulehost.com или откройте чат в KPanel.

Открыть KPanel
Orbit Build Insights and Delivery Insights