SASS продукт, который позволяет агрегировать отчеты различных проверок конвейера.

Вопрос или проблема

Контекст

В разработке программного обеспечения мы часто используем конвейер сборки для выполнения ряда проверок предложенного изменения. Проверки обычно включают линтинг, проверку типов и модульные тесты, но могут включать такие вещи, как проверка на изменения контрактов, отчеты о производительности, отчеты по доступности.

Конвейеры сборки не позволят изменению продолжаться, если какая-либо из этих проверок не прошла.

Что я не пытаюсь решить

Инструменты конвейера сборки, такие как BuildKite, Github Actions, Gitlab и т.д., обычно предоставляют панели управления по поведению конвейера, например, количество сборок, процент неудачных и т.д.

Общепринято видеть, что инструменты предоставляют отчеты по конкретному запросу на извлечение. Например, вот PR, в котором есть отчет о времени выполнения тестов.

Что я ищу – агрегированные отчеты по конкретным проблемам

Часто есть определенный вид ошибки, о которой мы хотим быть в курсе. Одна из распространенных – это ненадежные тесты.

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

Для этого мы хотим, чтобы наши отдельные шаги конвейера сборки предоставляли настраиваемые данные для какого-то агрегатора, а затем запрашивали агрегатор для панелей управления и т.д.

Я осведомлен о том, что инструменты, такие как Buildkite и т.д., могут уже предоставлять такую функциональность, в этом случае то, что я ищу, – это ссылка на их документацию/название концепции в их терминах.

Ответ или решение

Сервисы SASS для агрегации отчетов по проверки в пайплайнах

Введение

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

Проблематика

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

Решение: Использование SaaS-продуктов

Существует ряд SaaS-продуктов, которые могут помочь в агрегации отчетов и анализе данных по этим метрикам. Рассмотрим несколько примеров:

  1. SonarCloud/SonarQube

    • Описание: Эти инструменты предназначены для статического анализа кода и могут интегрироваться с различными CI/CD системами. SonarCloud предоставляет мощные панели мониторинга, которые агрегируют данные по качеству кода с различных проектов, включая информацию о линтинге и тестах.
    • Функционал: Возможность настраивать конкретные метрики, такие как уровень покрытия тестами или количество предупреждений по специфическим правилам линтинга. Поддержка создания собственных правил и агрегирования данных по ним.
  2. Sentry

    • Описание: Хотя Sentry в первую очередь предназначен для отслеживания ошибок в производственном окружении, он также позволяет интегрироваться с CI/CD инструментами и собирать информацию о тестах.
    • Функционал: Агрегация данных об ошибках, включая информацию о плавающих тестах, с возможностью отслеживания динамики и создания отчетов по конкретным проблемам.
  3. Datadog

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

Как реализовать агрегацию данных

Для реализации механизма агрегации данных во время выполнения пайплайнов необходимо настроить шаги процессов сборки так, чтобы они передавали данные в выбранный вами сервис. Это может быть реализовано через использование API или специализированных плагинов. Каждый шаг пайплайна должен формировать конфигурируемый payload с данными о результатах проверки.

Заключение

Решение проблемы агрегации отчетов по специфическим ошибкам в пайплайнах требует внедрения специализированного SaaS-продукта, который сможет объединить данные с различных этапов сборки и предоставить удобные дашборды для мониторинга. Сервисы такие, как SonarCloud, Sentry и Datadog, предлагают robust функции для этого. Важно правильно настроить интеграцию с вашим пайплайном и определить ключевые метрики, которые будут интересовать вашу команду для улучшения качества и надежности кода.

Оцените материал
Добавить комментарий

Капча загружается...