El procesador de registros comprimidos (CLP) de YScope comprime sus registros y le permite buscar registros comprimidos sin descomprimirlos. CLP admite tanto registros JSON como registros no estructurados (es decir, texto libre). También admite la compresión de registros en tiempo real dentro de varias bibliotecas de registros. CLP también incluye interfaces web diseñadas específicamente para buscar y ver los registros comprimidos. Para obtener más información al respecto, lea nuestro artículo de 2021 sobre el manejo de registros no estructurados y nuestro artículo de 2024 sobre su extensión a registros JSON.
Las figuras anteriores muestran el rendimiento de compresión y búsqueda de CLP en comparación con otras herramientas. Separamos los experimentos entre JSON y registros no estructurados porque (1) algunas herramientas solo pueden manejar un tipo de registros y (2) las herramientas que pueden manejar ambos tipos a menudo tienen diseños diferentes para cada tipo (como CLP).
La relación de compresión se mide como el promedio de una variedad de conjuntos de datos de registros. Algunos de estos conjuntos de datos se pueden encontrar aquí. El rendimiento de la búsqueda se mide mediante consultas en los registros de MongoDB (para JSON) y los registros de Hadoop (para registros no estructurados). Tenga en cuenta que CLP utiliza un diseño sin índice, por lo que para una comparación justa, desactivamos los índices de MongoDB y PostgreSQL; Si los dejáramos habilitados, la relación de compresión de MongoDB y PostgreSQL sería peor. No deshabilitamos la indexación para Elasticsearch o Splunk ya que estas herramientas se basan fundamentalmente en índices (es decir, no se pueden buscar registros sin índices). Se pueden encontrar más detalles sobre nuestra metodología experimental en el artículo de 2021 y en el artículo de 2024.
CLP proporciona un canal de gestión de registros de un extremo a otro que consta de compresión, búsqueda, análisis y visualización. La figura anterior muestra la arquitectura del ecosistema CLP. Consta de las siguientes características:
Compresión y búsqueda : CLP comprime los registros en archivos, que se pueden buscar y analizar en una interfaz de usuario web. La entrada puede ser registros sin procesar o IR (representación intermedia) comprimida de CLP producida por las bibliotecas de registro de CLP.
Compresión en tiempo real con bibliotecas de registro CLP : CLP proporciona bibliotecas de registro para Python y Java (Log4j y Logback). Las bibliotecas de registro comprimen los registros en tiempo real, por lo que solo los registros comprimidos se escriben en el disco o se transmiten a través de la red. Los registros comprimidos utilizan el formato de representación intermedia (IR) de CLP, que logra una relación de compresión más alta que los compresores de uso general como Zstandard. La compresión de IR en archivos puede duplicar aún más la relación de compresión y permitir la búsqueda global, pero esto requiere un mayor uso de memoria, ya que necesita almacenar suficientes registros en el buffer. Se pueden encontrar más detalles sobre IR versus archivos en este blog de ingeniería de Uber.
Visor de registros : el IR comprimido se puede ver en un visor de registros basado en web. En comparación con la visualización de registros en un editor, el visor de registros de CLP admite funciones avanzadas como el filtrado de registros según la detalle del nivel de registro (por ejemplo, mostrar solo registros con un nivel de registro igual o superior a ERROR). Estas características son posibles porque las bibliotecas de registro de CLP analizan los registros antes de comprimirlos en IR.
Bibliotecas de análisis de IR : también proporcionamos una biblioteca de Python y una biblioteca de Go que pueden analizar IR comprimidos.
Analizador de registros : CLP también incluye un analizador de registros personalizado basado en autómatas pushdown que es 3 veces más rápido que los motores de expresiones regulares de última generación como RE2. El analizador de registros está disponible como una biblioteca que pueden utilizar otras aplicaciones.
Puede descargar un paquete de lanzamiento que incluye soporte para búsqueda y compresión distribuida. O bien, para probar rápidamente la compresión y la búsqueda principales de CLP, puede utilizar un contenedor prediseñado.
También tenemos guías para crear el paquete y el núcleo CLP desde el código fuente.
Para conocer algunos registros que puede utilizar para probar CLP, consulte nuestros conjuntos de datos de código abierto.
Puede encontrar nuestros documentos en línea o ver la fuente en docs/src
.
Puede utilizar los problemas de GitHub para informar un error o solicitar una función.
Únase a nosotros en Zulip para charlar con desarrolladores y otros miembros de la comunidad.
Esta es nuestra versión de código abierto que actualizaremos constantemente con correcciones de errores, funciones, etc. Si desea una función o desea informar un error, presente un problema y estaremos encantados de participar.