- Remap inspired `reduce` transform to solve multiline merging · Issue #4258 · vectordotdev/vector
- This issue proposes an idea for a new reduce transform that borrows from the new remap transform. The intent is to solve event merging, as well as other reduce-like problems, through robust reduce ...
Hoje, pretendo apresentar a ferramenta Vector.
É um produto da DataDog.
Ele desempenha o papel de ferramentas como promtail e otel, que já conhecemos.
Suporta a coleta, agregação e transformação de logs.
Suas características são as seguintes:
1. Escrito em Rust, não em Golang
2. Mais fácil de escrever código de transformação de logs em comparação com o otel
3. Gerenciável de forma declarativa
4. Documentação oficial bem escrita
Embora o site oficial destaque os seguintes pontos como vantagens...
Acho que a maioria dessas vantagens também são promovidas por outras ferramentas, então as excluí da lista acima.
E, ao usar a ferramenta, encontrei algumas desvantagens:
1. Documentação oficial não atualizada
2. Dificuldade em encontrar materiais relacionados
Acho que é isso.
Embora não tenha encontrado grandes inconvenientes durante o uso, senti falta da falta de materiais relacionados e da falta de atualização em muitas partes, o que foi decepcionante.
Como estou usando apenas o Helm, peço desculpas antecipadamente por escrever com base no Helm... 흑....
Crie um arquivo values.yaml simples como este:
Com este comando, consegui integrar facilmente os logs do k8s com o Loki.
Encontrei alguns problemas ao escrever este conteúdo.
O primeiro é que, ao escrever o customConfig, as opções que eram aplicadas por padrão são desativadas, então você precisa escrever source, transform e sinks manualmente.
Em segundo lugar, devido à natureza dos logs do k8s, que são recebidos linha por linha, os logs multilinha, como rastreamento de erros, precisam ser mesclados.
A fonte de arquivos tem uma opção multiline, mas o k8s não tem.
Após uma discussão interna da equipe do Vector, foi decidido que o transform.reduce é compatível e que essa é a forma de fazer.
Terceiro, além do root.data_dir, você também precisa definir o data_dir dentro do custom_config...
Se o valor não estiver definido, erros de permissão relacionados ao log ocorrem com frequência... ㅎ
Quarto, eu usei o Helm para a implantação, então houve alguns casos em que a sintaxe se sobrepunha, e foi necessário escapar.
Por causa disso, a documentação mostra "{{ metadata }}", mas colei isso diretamente e deu erro...
Portanto, no Helm, você deve sempre fazer escape como "{{ {{ metadata }} }}"!
Além disso, se você tiver dúvidas sobre a arquitetura, recomendo que consulte o artigo abaixo.
https://vector.dev/docs/setup/deployment/topologies/
Comentários0