O Compressed Log Processor (CLP) do YScope compacta seus logs e permite pesquisar os logs compactados sem descompactação. O CLP oferece suporte a logs JSON e logs não estruturados (ou seja, texto livre). Ele também oferece suporte à compactação de log em tempo real em várias bibliotecas de log. O CLP também inclui interfaces da web específicas para pesquisar e visualizar os logs compactados. Para saber mais sobre isso, leia nosso artigo de 2021 sobre como lidar com logs não estruturados e nosso artigo de 2024 sobre estendê-lo para logs JSON.
As figuras acima mostram o desempenho de compressão e pesquisa do CLP em comparação com outras ferramentas. Separamos os experimentos entre JSON e logs não estruturados porque (1) algumas ferramentas podem lidar apenas com um tipo de log e (2) ferramentas que podem lidar com ambos os tipos geralmente têm designs diferentes para cada tipo (como CLP).
A taxa de compactação é medida como a média de vários conjuntos de dados de log. Alguns desses conjuntos de dados podem ser encontrados aqui. O desempenho da pesquisa é medido usando consultas nos logs do MongoDB (para JSON) e nos logs do Hadoop (para logs não estruturados). Observe que o CLP usa um design sem índice, portanto, para uma comparação justa, desabilitamos os índices do MongoDB e do PostgreSQL; Se os deixássemos habilitados, a taxa de compactação do MongoDB e PostgreSQL seria pior. Não desabilitamos a indexação do Elasticsearch ou do Splunk, pois essas ferramentas são fundamentalmente baseadas em índices (ou seja, os logs não podem ser pesquisados sem índices). Mais detalhes sobre nossa metodologia experimental podem ser encontrados no artigo de 2021 e no artigo de 2024.
O CLP fornece um pipeline de gerenciamento de log ponta a ponta que consiste em compactação, pesquisa, análise e visualização. A figura acima mostra a arquitetura do ecossistema CLP. Consiste nos seguintes recursos:
Compactação e pesquisa : o CLP compacta logs em arquivos, que podem ser pesquisados e analisados em uma interface da web. A entrada pode ser logs brutos ou IR compactado do CLP (representação intermediária) produzido pelas bibliotecas de log do CLP.
Compressão em tempo real com bibliotecas de log CLP : CLP fornece bibliotecas de log para Python e Java (Log4j e Logback). As bibliotecas de registro compactam os registros em tempo real, de forma que apenas os registros compactados sejam gravados no disco ou transmitidos pela rede. Os logs compactados usam o formato de representação intermediária (IR) do CLP, que atinge uma taxa de compactação mais alta do que compressores de uso geral como o Zstandard. A compactação de IR em arquivos pode dobrar ainda mais a taxa de compactação e permitir a pesquisa global, mas isso requer mais uso de memória, pois precisa armazenar logs suficientes em buffer. Mais detalhes sobre RI versus arquivos podem ser encontrados neste Blog de Engenharia da Uber.
Log Viewer : o IR compactado pode ser visualizado em um visualizador de log baseado na web. Comparado à visualização dos logs em um editor, o visualizador de logs do CLP oferece suporte a recursos avançados, como filtragem de logs com base no detalhamento do nível de log (por exemplo, exibindo apenas logs com nível de log igual ou superior a ERROR). Esses recursos são possíveis porque as bibliotecas de log do CLP analisam os logs antes de compactá-los no IR.
Bibliotecas IR Analytics : também fornecemos uma biblioteca Python e uma biblioteca Go que pode analisar IR compactado.
Analisador de log : o CLP também inclui um analisador de log personalizado baseado em autômatos pushdown que é 3x mais rápido do que mecanismos de expressão regular de última geração, como RE2. O analisador de log está disponível como uma biblioteca que pode ser usada por outros aplicativos.
Você pode baixar um pacote de lançamento que inclui suporte para compactação e pesquisa distribuída. Ou, para testar rapidamente a compactação e pesquisa principal do CLP, você pode usar um contêiner pré-construído.
Também temos guias para construir o pacote e o núcleo do CLP a partir do código-fonte.
Para alguns registros que você pode usar para testar o CLP, confira nossos conjuntos de dados de código aberto.
Você pode encontrar nossos documentos online ou visualizar a fonte em docs/src
.
Você pode usar os problemas do GitHub para relatar um bug ou solicitar um recurso.
Junte-se a nós no Zulip para conversar com desenvolvedores e outros membros da comunidade.
Este é nosso lançamento de código aberto que estaremos constantemente atualizando com correções de bugs, recursos, etc. Se você deseja um recurso ou deseja relatar um bug, registre um problema e teremos prazer em interagir.