Альткойны Анализ крипторынка

Как мы построили платформу логирования для GitHub Actions на базе ClickHouse

Альткойны Анализ крипторынка
We built a logging platform for GitHub Actions with ClickHouse

Погружение в создание эффективной и быстрой платформы логирования для GitHub Actions с использованием возможностей ClickHouse. Подробный разбор архитектуры, преимуществ и технических решений, которые позволяют быстро и удобно анализировать CI/CD логи.

В современном мире разработки программного обеспечения непрерывная интеграция и доставка занимают ключевое место. GitHub Actions — популярная платформа, позволяющая автоматизировать процессы сборки, тестирования и деплоя. Однако, несмотря на её распространённость, опыт работы с логами во время CI/CD часто оставляет желать лучшего. Логи бывают объёмными и непрозрачными, затрудняя выявление проблем и анализ причин неудач. Мы решили эту задачу, создав собственную платформу логирования, которая преобразила работу с логами GitHub Actions, сделав их быстро доступными, удобными для поиска и масштабируемыми.

В основе платформы лежит аналитическая база данных ClickHouse, которая идеально подходит для хранения и быстрого анализа больших объёмов данных. Проблема с логами в CI и почему нужен новый подход Логирование в процессе непрерывной интеграции — один из основных инструментов разработчика для диагностики неполадок. При неудачных сборках часто возникает ситуация, когда нужно не просто просмотреть логи конкретной задачи, но и проанализировать похожие ошибки в других сборках, сравнить данные между различными ветками и коммитами. К сожалению, стандартные средства GitHub Actions не предоставляют удобных возможностей для глубинного и быстрого поиска по логам. При большом количестве данных выполнение запросов к логам становится медленным, а интерфейс оставляет желать лучшего.

Когда мы приступали к созданию платформы, перед нами стояла задача обеспечить не только хранение огромного количества логов в реальном времени, но и возможность молниеносного поиска конкретных подстрок, выполнения агрегатных запросов по логам и гибкой настройки хранения данных с учётом политик разных заказчиков. Нам был нужен инструмент, снижающий операционные издержки и покрывающий широкий спектр запросов при минимальной стоимости хранения. Почему мы выбрали ClickHouse для хранения логов ClickHouse — это аналитическая колоночная база данных с открытым исходным кодом, которая идеально подходит для обработки огромных потоков данных. Уже находясь в нашей аналитической инфраструктуре для других задач, ClickHouse продемонстрировал отличную производительность и сжатие данных, что подтолкнуло нас к его использованию для логов GitHub Actions. Одно из главных достоинств ClickHouse — низкие издержки на эксплуатацию.

В отличие от традиционных стеков на базе Elasticsearch (ELK), с которыми часто приходится устанавливать и поддерживать Kafka-кластеры для потоковой передачи сообщений, здесь мы обошлись однородной архитектурой. Это несложно в обслуживании и экономичнее с точки зрения стоимости ресурсов. ClickHouse обладает мощными механизмами сжатия, что позволило нам уменьшить объём хранимых логов почти в 12 раз. Кроме того, он отлично справляется с выполнением агрегатных функций по миллионам строк, что открывает новые возможности для анализа и визуализации данных. Мы можем быстро строить гистограммы, тренды и искать паттерны в поведении рабочих процессов.

Оптимизация поиска подстрок с помощью индексов Bloom Одна из главных сложностей при поиске по логам — высокая стоимость выполнения подстрочного поиска. Если просматривать данные построчно, запросы будут слишком медленными. Чтобы решить эту задачу, мы воспользовались возможностями ClickHouse по созданию n-граммовых Bloom-фильтров для индексации текстовых столбцов. Принцип работы заключается в разбиении текста на фрагменты фиксированной длины, которые затем индексируются в рамках гранул — специальных блоков с данными. Bloom-фильтры дают нам возможность быстро отсеивать те части данных, где искомая подстрока точно отсутствует, не затрагивая остальные.

Фильтр может возвращать ложные срабатывания, но при этом никогда не пропускает истинные совпадения. Такой подход существенно повышает быстродействие поиска даже при сканировании миллионов строк логов. Материализованные колонки и политика хранения данных Для удобства анализа мы реализовали материализованные колонки, которые автоматически извлекают уровень логов (ошибка, предупреждение, информация) на основании известных паттернов. Это облегчает пользователям выделение наиболее важных сообщений и ускоряет понимание происходящего. ClickHouse также поддерживает управление временем жизни данных на уровне отдельных строк.

Этот функционал позволил нам гибко настраивать сроки хранения логов в зависимости от требований клиентов, сохраняя при этом оптимальный объем базы данных. Устройство потока логирования и обработка данных с учётом безопасности Когда задача запускается на платформе Blacksmith, виртуальная машина Firecracker запускает её и пишет логи в виде файлов. Из соображений безопасности VM не имеет прямого доступа к инфраструктуре, поэтому отправка логов напрямую невозможна. Вместо этого на хост-машине запускается HTTP-сервер, который принимает логи от демона внутри VM по защищённому каналу. Демон blacksmithd внутри VM следит за появлением новых и обновлением существующих файлов логов.

Как только записи завершены, они передаются на хост для дальнейшей обработки, пакетирования и следующей отправки в ClickHouse. Важно отметить, что мы сознательно отказались от использования промежуточных очередей, так как ClickHouse поддерживает высокопроизводительные асинхронные вставки и справляется с пиковыми нагрузками самостоятельно. Механизм обработки сбоев и дублирования Для обеспечения устойчивости при временных сетевых сбоях мы предусмотрели повторные попытки загрузки данных. Одной из важных задач стала борьба с дублированием. Повторные вставки одинаковых строк приводят к появлению «лишних» логов, что усложняет анализ и портит пользовательский опыт.

Решение находится в использовании движка ReplacingMergeTree, который встроен в ClickHouse и позволяет устранять дубли ещё на этапе обработки данных. С помощью особенности, связанной с окном дедупликации при асинхронных вставках, платформа эффективно исключает повторяющиеся записи, сохраняя при этом высокую скорость загрузки. Проектирование языка запросов для удобного поиска Чтобы пользователи получали максимальную пользу от платформы, мы создали собственный легковесный язык запросов для работы с логами. Он поддерживает подстрочечный поиск, фильтрацию по свойствам (например, идентификатору задачи или ветке), а также логические и сравнительные операторы. Вдохновившись языком Lucene, мы сохранили его основные преимущества, но упростили синтаксис, чтобы ускорить первые шаги пользователей и облегчить компиляцию запросов в SQL-запросы ClickHouse.

Такой подход позволяет соединять логи с другими данными из GitHub для расширенного анализа, например, связывая токены выполнения с конкретными идентификаторами задач. Возможности агрегации и трендовый анализ ClickHouse отлично справляется с задачами агрегации благодаря своей колоночной структуре и оптимизированным алгоритмам. Платформа позволяет быстро строить отчёты и графики по логам, что раскрывает новые горизонты для понимания поведения рабочих процессов и выявления аномалий. Разработчики могут мониторить рост числа ошибок, изменения в поведении тестов и распространённость конкретных исключений по времени, что автоматизирует процесс диагностики и снижает время на поиск корня проблем. Перспективы развития наблюдаемости для GitHub Actions Через нашу платформу мы открываем новую эру наблюдаемости CI/CD на базе GitHub Actions.

Раньше разработчикам приходилось довольствоваться ограниченными средствами и сталкиваться с недостатками стандартных инструментов. Сейчас появилась возможность видеть полную картину происходящего с мгновенным доступом к миллионам логов и гибкими средствами анализа. Мы продолжаем активно работать над улучшением продукта и внедряем новые функции, которые сделают процесс непрерывной интеграции ещё более прозрачным и эффективным. Платформа уже доступна нашим клиентам, и мы рекомендуем всем заинтересованным опробовать её, чтобы оценить преимущества нового уровня контроля над CI-процессами. Заключение Создание платформы логирования для GitHub Actions с использованием ClickHouse позволило решить множество накопившихся проблем, связанных с хранением, поиском и анализом логов.

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

Автоматическая торговля на криптовалютных биржах Покупайте и продавайте криптовалюты по лучшим курсам Privatejetfinder.com (RU)

Далее
Looking to acquire a job board or ATS side project – any leads?
Четверг, 02 Октябрь 2025 Как приобрести готовый проект вакансий или ATS: Полное руководство для стартаперов и инвесторов

Обзор возможностей приобретения готовых проектов в сфере досок вакансий и систем управления кандидатами (ATS). Рассмотрены ключевые аспекты выбора, интеграций и перспектив развития для предпринимателей, заинтересованных в расширении своего бизнеса или старте с уже готовым продуктом.

Show HN: Opasm, an Assembly REPL
Четверг, 02 Октябрь 2025 Opasm – Интерактивный REPL для Ассемблера: Революция в Обучении и Реверс-Инжиниринге

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

Flounder Mode – Kevin Kelly on a different way to do great work
Четверг, 02 Октябрь 2025 Режим «Flounder»: новый взгляд Кевина Келли на достижение выдающихся результатов

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

I bulit Kanba, open source alternative to Trello, self-hostable PM tool
Четверг, 02 Октябрь 2025 Kanba — открыт альтернатива Trello с открытым исходным кодом для управления проектами

Kanba — это инновационное решение для управления проектами с открытым исходным кодом, которое позволяет командам полностью контролировать свои данные и процессы благодаря возможности самостоятельного хостинга. Канба совмещает простоту и удобство Trello с гибкостью и прозрачностью открытых технологий.

Akamai App Platform Makes Kubernetes Production-Ready – Now in GA
Четверг, 02 Октябрь 2025 Akamai App Platform: Как сделать Kubernetes готовым к продакшену без лишних сложностей

Обзор Akamai App Platform — интегрированной платформы на базе Kubernetes, которая упрощает внедрение, управление и масштабирование контейнеризированных приложений. Платформа подходит для быстрого запуска и эксплуатации, снижая сложности и затраты при работе с Kubernetes.

Using AI to Research the Missing Heritability Post
Четверг, 02 Октябрь 2025 Использование ИИ для исследования феномена отсутствующей наследуемости

Рассмотрение роли искусственного интеллекта в решении загадки отсутствующей наследуемости, а также анализ современных методик и перспектив в генетических исследованиях.

Valeo Foods Group buys Italian panettone maker Melegatti 1894
Четверг, 02 Октябрь 2025 Valeo Foods Group расширяет присутствие в Италии, приобретая легендарного производителя панеттоне Melegatti 1894

Valeo Foods Group укрепляет свои позиции на международном рынке сладкой выпечки, приобретая историческую итальянскую компанию Melegatti 1894, известную своими традиционными панеттоне и другими кондитерскими изделиями.