Процессор сжатых журналов YScope (CLP) сжимает ваши журналы и позволяет выполнять поиск в сжатых журналах без распаковки. CLP поддерживает как журналы JSON, так и неструктурированные (т. е. свободный текст) журналы. Он также поддерживает сжатие журналов в реальном времени в нескольких библиотеках журналов. CLP также включает специальные веб-интерфейсы для поиска и просмотра сжатых журналов. Чтобы узнать больше об этом, прочитайте нашу статью 2021 года об обработке неструктурированных журналов и нашу статью 2024 года о ее расширении до журналов JSON.
На рисунках выше показана производительность сжатия и поиска CLP по сравнению с другими инструментами. Мы разделяем эксперименты с JSON и неструктурированными журналами, потому что (1) некоторые инструменты могут обрабатывать только один тип журналов и (2) инструменты, которые могут обрабатывать оба типа, часто имеют разные конструкции для каждого типа (например, CLP).
Коэффициент сжатия измеряется как среднее значение для различных наборов каротажных данных. Некоторые из этих наборов данных можно найти здесь. Производительность поиска измеряется с помощью запросов к журналам MongoDB (для JSON) и журналам Hadoop (для неструктурированных журналов). Обратите внимание, что CLP использует дизайн без индексов, поэтому для справедливого сравнения мы отключили индексы MongoDB и PostgreSQL; Если бы мы оставили их включенными, степень сжатия MongoDB и PostgreSQL была бы хуже. Мы не отключили индексирование для Elasticsearch или Splunk, поскольку эти инструменты по своей сути основаны на индексах (т. е. без индексов поиск в журналах невозможен). Более подробную информацию о нашей экспериментальной методологии можно найти в статье 2021 года и статье 2024 года.
CLP предоставляет комплексный конвейер управления журналами, включающий сжатие, поиск, аналитику и просмотр. На рисунке выше показана архитектура экосистемы CLP. Он состоит из следующих функций:
Сжатие и поиск . CLP сжимает журналы в архивы, которые можно искать и анализировать в веб-интерфейсе. Входными данными могут быть либо необработанные журналы, либо сжатые IR (промежуточное представление) CLP, созданные библиотеками журналов CLP.
Сжатие в реальном времени с помощью библиотек журналирования CLP . CLP предоставляет библиотеки журналирования для Python и Java (Log4j и Logback). Библиотеки журналов сжимают журналы в режиме реального времени, поэтому только сжатые журналы записываются на диск или передаются по сети. Сжатые журналы используют формат промежуточного представления (IR) CLP, который обеспечивает более высокую степень сжатия, чем компрессоры общего назначения, такие как Zstandard. Сжатие IR в архивы может еще больше удвоить степень сжатия и включить глобальный поиск, но это требует большего использования памяти, поскольку необходимо буферизовать достаточное количество журналов. Более подробную информацию о IR и архивах можно найти в этом инженерном блоге Uber.
Средство просмотра журналов : сжатый IR можно просмотреть в веб-средстве просмотра журналов. По сравнению с просмотром журналов в редакторе, средство просмотра журналов CLP поддерживает расширенные функции, такие как фильтрация журналов на основе подробностей уровня журнала (например, отображение только журналов с уровнем журнала, равным или выше, чем ERROR). Эти функции возможны, поскольку библиотеки журналов CLP анализируют журналы перед их сжатием в IR.
Библиотеки IR Analytics : мы также предоставляем библиотеку Python и Go, которые могут анализировать сжатые IR.
Анализатор журналов : CLP также включает специальный анализатор журналов на основе автоматов, который в 3 раза быстрее, чем современные механизмы регулярных выражений, такие как RE2. Анализатор журналов доступен в виде библиотеки, которую могут использовать другие приложения.
Вы можете загрузить пакет выпуска, который включает поддержку распределенного сжатия и поиска. Или, чтобы быстро опробовать основное сжатие и поиск CLP, вы можете использовать готовый контейнер.
У нас также есть руководства по сборке пакета и ядра CLP из исходного кода.
Некоторые журналы, которые можно использовать для тестирования CLP, можно найти в наших наборах данных с открытым исходным кодом.
Вы можете найти нашу документацию в Интернете или просмотреть исходный код в docs/src
.
Вы можете использовать проблемы GitHub, чтобы сообщить об ошибке или запросить функцию.
Присоединяйтесь к нам на Zulip, чтобы общаться с разработчиками и другими членами сообщества.
Это наша версия с открытым исходным кодом, которую мы будем постоянно обновлять, добавляя исправления ошибок, функции и т. д. Если вам нужна новая функция или вы хотите сообщить об ошибке, сообщите о проблеме, и мы будем рады сотрудничать.