Ficou mais fácil de executar o Loki 2.4 com um novo modelo de implementação simplificado
O Loki 2.4 do Grafana chegou!
Ele acompanha uma longa lista de novos recursos legais. Vamos conferir algumas coisas importantes.
- O Loki agora pode aceitar logs fora de ordem
- Nunca foi tão fácil executar o Loki
Não se esqueça de verificar as notas da versão e, é claro, o guia de atualização para ver todas as novas informações sobre a atualização do Loki. Confira também a nossa sessão do ObservabilityCON 2021 Por que o Loki está mais fácil de usar e executar do que nunca.
Suporte para logs fora de ordem
A restrição inflexível de ordem do Loki tem sido um desafio há muito tempo para muitos usuários, e acredite em mim quando digo que não planejávamos que fosse difícil. Ingerir os dados de registro rapidamente e utilizando a memória de forma eficiente é desafiador!
Hoje, grupos Loki recebem logs em blocos e, ao atingir um tamanho específico, esses blocos são comprimidos. No entanto, assim que novas linhas de logs são compactadas, torna-se muito difícil inserir novas entradas que são recebidas fora de ordem, especialmente se essa entrada precisaria ser inserida em um bloco já comprimido. Descomprimir, gravar e recomprimir é um processo lento e caro.
Exploramos várias formas de suporte para logs fora de ordem, ao mesmo tempo que tentamos gerir da melhor forma o equilíbrio entre o desempenho e a flexibilidade de ordenação. No final, encontramos uma solução de que nos orgulhamos muito, e ela está agora disponível na versão 2.4. Um próximo post do blog fornecerá todos os detalhes desta solução, ou, se você tiver interesse, pode conferir o documento de design.
Resumidamente, estamos muito entusiasmados por conseguirmos finalmente solucionar esse problema e simplificar as vidas de muitos usuários do Loki, permitindo que os logs sejam enviados fora de ordem para o Loki!
Implementação simples e escalável
Em seguida, quero falar sobre o trabalho que fizemos para tornar mais fácil executar o Loki. Falamos por muito tempo sobre como é fácil começar a usar o Loki como um processo único capaz de ingerir e servir os seus logs.
Mas e se você quiser executar Loki em uma configuração altamente disponível? E se você quiser aproveitar o paralelismode consultas frequentemente comentadas em nossas palestras nas conferências e webinars? Você rapidamente se encontrou nos limites do que o único binário poderia oferecer e provavelmente teve que ficar observando tediosamente para o Helm ou jsonnet de configuração de microsserviços do Loki.
Não me entenda mal: nós amamos microsserviços. É assim que usamos o Loki no Grafana Labs. E ele oferece a maior flexibilidade e configurabilidade, além do potencial de escalar para centenas de TBs de logs por dia. No entanto, reconhecemos que também é nosso trabalho executar o Loki e que os microsserviços são complexos. Para a maioria das pessoas, este nível de complexidade é desnecessário e constitui um obstáculo à adoção.
É por isso que investimos os nossos esforços em um modo híbrido que chamamos de implementação simples e escalável. A ideia é a seguinte: tenha a simplicidade de executar Loki como um binário único, mas implemente um caminho fácil para alta disponibilidade e escalabilidade.
Passo 1: Binário único
Também conhecido como o modo monolítico, esta é a maneira mais fácil de começar a usar o Loki, e fizemos várias melhorias significativas neste modo de funcionamento. Em primeiro lugar, o modo binário único executa um query frontend, que é o componente responsável pela divisão e fragmentação de consultas. Agora um binário único do Loki pode paralelizar consultas também!
Em segundo lugar, o binário único do Loki também pode escalar adicionando mais instânciase conectando-as com um hash ring compartilhado. Nós também nos certificamos de que o compactador está executando e de que apenas uma instância seja executada automaticamente!
Adicionar mais instâncias permite fragmentar as gravações de logs utilizando mais processos, além de fornecer mais CPU para mais paralelização de consultas, permitindo que você escale facilmente uma instância monolítica única do Loki para garantir alto desempenho, permitindo também executar em alta disponibilidade.
Observação: não mostrado acima, é o compactador que usará o hash ring para eleger uma única instância para executar as compactações.
Passo 2: Implementação simples e escalável
Este modo é uma ponte entre executar o Loki como um modo binário único/monolítico e executados completamente em microsserviços. A ideia é dar aos usuários mais flexibilidade no dimensionamento e oferecer as vantagens de separar o processo de leitura e escrita no Loki.
Isso deve ser particularmente interessante para quem quer executar o Loki fora do Kubernetes.
Isso funciona ao usar o mesmo binário/imagem e passar por um parâmetro de configuração -target=read
e -target=write
.
Observação: não mostrado acima, é o compactador que usará o hash ring para eleger uma única instância para executar compactações.
Esses novos parâmetros dividem os componentes internos necessários para leituras/escritas em processos separados, facilitando muito para escalar e monitorar a sua leitura e escrita separadamente. Isso também permite adicionar e remover instâncias de leitura para aumentar/diminuir a quantidade de paralelismo de consulta que o Loki é capaz de fazer, permitindo que você possa escalar o desempenho de leitura sob demanda, assim como no modelo de microsserviços.
Passo 3: Microsserviços
Para quem quer a melhor flexibilidade, observabilidade e desempenho, o Loki pode ainda ser executado como microsserviços, componentes individuais, como antes.
No entanto, acredito que muitas pessoas acharão que este modo é desnecessário, e o aumento do número de partes em movimento será, talvez, mais um obstáculo do que um benefício. Deixaremos isso ao seu critério e estamos muito animados para oferecer mais opções para executar o Loki da forma mais conveniente para você!
Considerações finais
A equipe do Loki trabalhou muito para tornar a versão 2.4 do Loki ainda mais fácil de usar. Estamos atualizando a nossa documentação do Loki do Grafana e fique por dentro de novos posts e exemplos sobre a execução do Loki nestes vários modos em breve!
A maneira mais fácil de começar a usar o Loki do Grafana é com a Nuvem do Grafana, com planos grátis e pagos para atender a cada caso. Se você ainda não estiver usando a Nuvem do Grafana, registre-se grátis agora mesmo.