ClickStack: Высокопроизводительный стек для обеспечения доступности операционной системы в ClickHouse
Сегодня мы рады анонсировать ClickStack, новое решение для обеспечения наблюдаемости с открытым исходным кодом, созданное на базе ClickHouse. ClickStack предоставляет полный, готовый к использованию интерфейс для ведения журналов, метрик, трассировок и воспроизведения сеансов, основанный на производительности и результативности ClickHouse, но разработанный как полный стек наблюдаемости, открытый, доступный и готовый для всех.
Начните свое путешествие с ClickStack, ознакомившись с нашим руководством по началу работы в документации.
В течение многих лет команды инженеров такого масштаба, как Netflix и eBay, обращались к ClickHouse как к базе данных, которая лучше всего подходит для обеспечения доступности. Его дизайн, ориентированный на столбцы, сжатие и высокопроизводительный векторизованный механизм запросов сделали его идеальным для хранения большого количества событий - насыщенных контекстом записей с высокой мощностью, которые объединяют журналы, метрики и трассировки. Этот современный подход к обеспечению наблюдаемости (некоторые называют его "Наблюдаемость 2.0") отличается от традиционной модели "трех столпов" и устраняет сложность объединения разрозненных источников телеметрии.
До сих пор все преимущества этой модели в полной мере могли реализовать только команды, располагающие ресурсами для создания пользовательских возможностей визуализации поверх ClickHouse. Все остальные? Они полагались на инструменты визуализации общего назначения или сторонние проприетарные платформы, созданные на базе ClickHouse. Хотя эти инструменты и предоставляли базовые интерфейсы для ClickHouse, иногда они требовали выполнения длинных SQL-запросов для рутинных задач обеспечения наблюдаемости или не в полной мере использовали возможности ClickHouse по повышению производительности и открытой архитектуре.
Сегодня это меняется. С выпуском ClickStack, работающего на базе HyperDX, мы расширяем возможности пользователей. Этот стек с полностью открытым исходным кодом включает в себя готовый сборщик данных OpenTelemetry, пользовательский интерфейс, предназначенный для широкого круга событий, запросов на естественном языке, воспроизведения сеанса, оповещений и многого другого.
И все это работает на одном и том же высокопроизводительном движке ClickHouse с высокой степенью сжатия, которому доверяют крупнейшие разработчики observability.
До этого командам часто приходилось выбирать между дорогостоящими SaaS-продуктами с закрытым исходным кодом или альтернативами с открытым исходным кодом. Поисковые системы предлагали быстрые и гибкие запросы, но их масштабирование и достижение высокой производительности агрегирования оказалось сложной задачей. Хранилища метрик предлагали более высокую производительность агрегирования, но требовали жесткой предварительной агрегации и не обладали возможностями глубокого поиска. Ни один из этих подходов не позволяет эффективно обрабатывать данные с высокой мощностью, а их объединение усложняет задачу, не решая основную проблему.
С ClickStack вам не нужно выбирать - наслаждайтесь быстрым поиском и быстрой агрегацией данных с высокой мощностью и широким спектром событий. В масштабе. Открытый исходный код. А теперь - для всех.
Эволюция ClickHouse для обеспечения наблюдаемости
Просто еще одна проблема с данными
Первые пользователи ClickHouse осознали нечто фундаментальное: наблюдаемость - это проблема данных. Выбранная вами база данных определяет стоимость, масштаб и возможности вашей платформы observability - именно поэтому правильный выбор платформы часто является наиболее важным архитектурным решением при создании собственной платформы или создании компании observability.
Именно поэтому ClickHouse уже много лет является ядром observability stacks. От таких гигантов индустрии, как Netflix и eBay, до стартапов в области observability, как Sentry и Dash0, ClickHouse использует журналы, метрики и трассировки в массовом масштабе. Хранилище, ориентированное на столбцы, интенсивное сжатие и векторизованный механизм выполнения значительно снижают затраты и позволяют инженерам выполнять запросы за доли секунды, необходимые для отладки работающих систем, не прибегая к медленным инструментам.
Все, что вам нужно, - это широкий спектр мероприятий ... и магазин колонок
В нашем предыдущем посте "Состояние наблюдаемости на основе SQL" и последующих публикациях мы подробно исследовали эту тенденцию - хотя в то время мы не давали ей названия, она идеально вписывается в сегодняшнее движение Observability 2.0: единая модель, построенная на широких событиях, а не на столпах. Слишком долго команды полагались на отдельные хранилища журналов, метрик и трассировок, что приводило к фрагментации, ручной корреляции и ненужной сложности. Масштабные события устраняют эти разрозненности, объединяя все наблюдаемые сигналы в единую структуру, доступную для запросов.
Масштабное событие фиксирует полный контекст приложения в одной записи - пользователь, служба, HTTP-путь, код состояния, результат кэширования и многое другое. Эта унифицированная структура является ключом к устранению разрозненности и обеспечению быстрого поиска и агрегации данных с высокой степенью детализации - при условии, что у вас есть механизм хранения, способный эффективно сжимать и хранить их!
В то время как решения без SQL, такие как поисковые системы, использовали эту структуру, им не хватало производительности агрегирования, чтобы выполнить обещанное - отлично подходит для поиска и "поиска иголок в галактиках", но не так хорошо, если вы хотите агрегировать данные в широком диапазоне. Секретный подход ClickHouse к решению этой проблемы остается неизменным: столбчатое хранилище, богатая библиотека кодеков для глубокого сжатия и массово-параллельный движок, оптимизированный для аналитических задач.
Ресурсосберегающий и масштабируемый
В ClickHouse Cloud мы пошли дальше и внедрили объектное хранилище, чтобы обеспечить разделение функций хранения и вычислений, что важно, если вам нужно увеличить наблюдаемость до уровня PB и выше, а также обеспечить гибкое масштабирование. Чтобы поддерживать еще более сложные варианты использования, мы также внедрили разделение вычислений, позволяющее пользователям выделять вычислительные ресурсы для определенных рабочих нагрузок, одновременно считывая одни и те же данные, например, получая их и запрашивая.
Поскольку требования к наблюдаемости становились все более сложными, мы осознали, что встроенная поддержка JSON для полуструктурированных событий необходима для работы с таблицами. ClickHouse эволюционировал, чтобы удовлетворить эту потребность, добавив первоклассную поддержку полуструктурированных данных, сохранив при этом преимущества обработки, ориентированной на столбцы. Столбцы создаются автоматически по мере поступления данных, и ClickHouse автоматически управляет продвижением типов и ростом столбцов. Это схема, которая создается при записи, что необходимо для обеспечения наблюдаемости, производительности, сжатия и гибкости, ожидаемых от современного аналитического движка.
Развитие OpenTelemetry
Это развитие совпало с появлением OpenTelemetry (OTel), которая в настоящее время является стандартом де-факто для сбора телеметрии по журналам, метрикам и трассировкам. Мы начали официально поддерживать экспортер OpenTelemetry для ClickHouse и вносить в него свой вклад.
OpenTelemetry стала важным открытием для нашей экосистемы. Она предлагает стандартизированный, не зависящий от поставщика способ сбора и экспорта данных о наблюдаемости, и сборщик может быть настроен для отправки данных непосредственно в ClickHouse с помощью экспортера, который мы теперь помогаем поддерживать. Мы тесно сотрудничали с сообществом, чтобы убедиться, что экспортер надежен, масштабируем и соответствует основным принципам ClickHouse.
Одной из самых сложных проблем, с которыми мы столкнулись на раннем этапе, была разработка схемы. Единой схемы обеспечения наблюдаемости для всех не существует; у каждой команды разные шаблоны запросов, потребности в хранении и архитектура сервисов. Итак, экспортер поставляется со схемами журналов, метрик и трассировок по умолчанию, которые подходят большинству пользователей, но мы рекомендуем командам настраивать их в соответствии с их собственными рабочими нагрузками.
Недостающие элементы
Но, как мы быстро поняли, просто наличия отличной базы данных, хорошей схемы и надежных средств сбора и обработки данных недостаточно. Инженерам нужны готовые решения для обработки данных, визуализация, оповещения и пользовательский интерфейс, адаптированный к их рабочему процессу. До сих пор это означало полагаться на OpenTelemetry для сбора данных и Grafana для информационных панелей.
Это работало достаточно хорошо - даже наша собственная команда по наблюдаемости заменила Datadog на стек на основе ClickHouse, сэкономив миллионы и снизив затраты более чем в 200 раз. Сегодня наша внутренняя система ведения журнала хранит более 43 петабайт данных OpenTelemetry со схемами и первичными ключами, настроенными специально для этого масштаба. Это доказало производительность и экономическую эффективность нашего подхода, но мы знали, что работа может быть проще.
Мы хотели чего-то более уверенного в себе. Чтобы пользователям было проще начать работу. Но самое главное - пользовательский интерфейс, созданный для ClickHouse. И не просто пользовательский интерфейс, а такой, который понимает, как создавать эффективные запросы, использовать шаблоны в различных событиях и обеспечивать исключительный пользовательский опыт, не скрывая при этом мощь базы данных.
Наконец, хотя мы считаем, что наблюдаемость на основе SQL сыграла важную роль в укреплении модели wide event, мы также знали, что должны встречаться с пользователями там, где они есть. Поисковые системы, такие как ELK stack, добились успеха, потому что они предлагали нечто интуитивно понятное: естественный язык для запроса журналов. Мы хотели, чтобы наши пользователи получили такой же опыт, но на базе ClickHouse.
Приветствуем HyperDX
Именно тогда мы нашли HyperDX, уровень наблюдаемости с открытым исходным кодом, специально созданный на ClickHouse. Когда в конце 2024 года HyperDX выпустила свой пользовательский интерфейс версии 2 с открытым исходным кодом, мы протестировали его внутри компании и быстро поняли, что этого не хватает. Настройка прошла без проблем, разработчики получили отличный опыт, и мы знали, что наши пользователи заслуживают того же.
HyperDX обеспечил все, что мы искали:
- Сбор данных на основе стандартов: HyperDX с самого первого дня использовала OpenTelemetry, что идеально соответствовало нашим инвестициям в ClickHouse OpenTelemetry exporter.
- Прежде всего, открытый исходный код: Мы считаем, что надежные инструменты обеспечения наблюдаемости должны быть доступны каждому, и HyperDX разделяет эту философию. Его облачный дизайн обеспечивает простую и экономичную эксплуатацию.
Помимо соответствия стандартам, HyperDX создан с учетом требований ClickHouse. Команда разработчиков серьезно относится к оптимизации запросов, поэтому вам не придется этого делать. Пользовательский интерфейс тесно связан с движком, обеспечивая быструю и надежную работу там, где важны миллисекунды, особенно при расследовании инцидентов.
В сочетании со встроенным модулем сбора данных OpenTelemetry и схемой, оптимизированной для пользовательского интерфейса HyperDX, ClickStack объединяет прием, хранение и визуализацию в единое целое. Схема по умолчанию предназначена для работы "из коробки", поэтому пользователям не нужно думать о ней - если только они не захотят настроить ее под свои конкретные нужды.
Простота ClickStack означает, что каждый уровень масштабируется независимо. Вам нужна более высокая пропускная способность? Просто добавьте больше шлюзов для сбора данных OpenTelemetry. Вам нужно больше ресурсов для запросов или хранения? Масштабируйте ClickHouse напрямую. Такая модульная конструкция позволяет легко расширять возможности ваших данных и вашей команды, не перестраивая стек.
С момента приобретения HyperDX мы сосредоточились на упрощении продукта и повышении его гибкости. Вы можете использовать схему по умолчанию для бесперебойной настройки "из коробки" или создать свою собственную схему, адаптированную к вашим потребностям. Как и в случае с ClickHouse, мы понимаем, что один размер никогда не подходит всем, а гибкость является ключом к масштабированию.
В то же время мы остались верны нашим корням SQL. SQL остается основным языком работы с данными, и для многих опытных пользователей ClickHouse это по-прежнему самый выразительный и эффективный способ изучения данных. Вот почему пользовательский интерфейс HyperDX включает поддержку собственных SQL-запросов, предоставляя опытным пользователям прямой доступ к движку без каких-либо компромиссов.
Мы также внедрили новые функции, упрощающие отладку и поиск информации. Одним из примеров является анализ отклонений по событиям, которые помогают пользователям быстро выявлять аномалии и снижение производительности. Благодаря выборке данных по уникальным значениям заданного атрибута пользовательский интерфейс отображает различия в производительности и отклонения, что облегчает понимание того, что изменилось и почему.
Возможно, самое главное, что стек теперь стал проще. Благодаря тому, что OpenTelemetry становится повсеместным стандартом, все данные теперь передаются через систему сбора данных OTel. В настройках по умолчанию используется стандартная схема, разработанная для быстрого внедрения, но пользователи могут изменять или расширять схему по мере необходимости. Стек основан на OpenTelemetry, но не является эксклюзивным для OpenTelemetry. Благодаря открытой схеме HyperDX также может работать с вашими существующими конвейерами передачи данных и схемами.
Заключение и взгляд в будущее
ClickStack представляет собой следующую эволюцию в увеличении инвестиций ClickHouse в экосистему observability, предоставляя интуитивно понятный и уверенный в себе полнофункциональный интерфейс, основанный на открытом исходном коде и открытых стандартах. Объединив высокопроизводительный столбчатый движок ClickHouse, стандарты инструментария OpenTelemetry и специализированный пользовательский интерфейс HyperDX в единое решение, мы, наконец, делаем современный подход к наблюдаемости доступным для всех.
Наша приверженность открытому исходному коду гарантирует, что ClickStack остается доступным для всех — от развертываний с одним сервисом до многопетабайтных систем. Мы продолжим инвестировать как в базовую базу данных для обеспечения высокой производительности и наблюдаемости, так и в интеграцию с известными инструментами, такими как Grafana, обеспечивая бесперебойную совместимость с существующими стеками наблюдаемости.
С ClickStack мы предлагаем нечто большее, чем просто еще один инструмент - мы создаем единую основу, на которой все телеметрические сигналы объединяются в высокопроизводительную столбчатую базу данных, оснащенную функциями запроса на естественном языке, воспроизведения сеанса и оповещения "из коробки".









