- 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 ...
Текст, переведенный ИИ.
Резюме публикации от ИИ durumis
- Vector — это инструмент для сбора и обработки логов, разработанный DataDog на языке Rust. Он обладает рядом преимуществ перед OTel, в том числе простотой преобразования логов и возможностью декларативного управления.
- Однако из-за неактуальности официальной документации и отсутствия достаточного количества материалов использование Vector может быть затруднено. При развертывании с помощью Helm потребуется дополнительная настройка, например, customConfig, обработка многострочных логов, настройка data_dir, экранирование и т. д.
- В частности, при использовании Helm следует обратить внимание на экранирование. Для вопросов, связанных с архитектурой, рекомендуется обращаться к разделу Topology в официальной документации.
Сегодня я расскажу об инструменте под названием Vector.
Это продукт, разработанный компанией DataDog.
Он выполняет функции, аналогичные функциям известных нам инструментов, таких как promtail и otel.
Vector поддерживает сбор, агрегацию и преобразование логов.
Его особенности следующие:
1. Написан на языке Rust, а не Go.
2. Преобразование логов проще, чем в otel.
3. Управление декларативное.
4. Хорошо написанная официальная документация.
Хотя на официальном сайте перечислены следующие преимущества...
Большинство этих преимуществ также присущи другим инструментам, поэтому в вышеприведенном списке я их не указывал.
Переходя к недостаткам, с которыми я столкнулся при использовании Vector:
1. Неактуальная официальная документация.
2. Сложно найти соответствующие материалы.
Вот, пожалуй, и все.
В процессе использования я не столкнулся с серьезными неудобствами, но отсутствие актуальной информации и материалов вызвало некоторое разочарование.
Я использую только Helm, поэтому приношу извинения за то, что примеры приведены именно для него….
Затем создайте простой файл values.yaml.
С помощью этой команды можно легко интегрировать логи из Kubernetes с Loki.
При написании этого примера я столкнулся с несколькими проблемами.
Во-первых, при настройке customConfig все опции по умолчанию отключаются, поэтому вам нужно будет вручную задать source, transform и sinks.
Во-вторых, из-за особенностей логов Kubernetes, которые поступают построчно, многострочные логи, например, трассировки ошибок, необходимо объединять.
В source.file есть опции для обработки многострочных логов, но для Kubernetes они отсутствуют.
В ходе обсуждения с командой Vector было предложено использовать transform.reduce, и мы пришли к выводу, что это оптимальное решение.
В-третьих, необходимо задать не только root.data_dir, но и data_dir внутри custom_config…
Если это значение не задано, то часто возникают ошибки, связанные с недостатком прав доступа к логам… ㅎ
В-четвертых, я использовал Helm для развертывания, и из-за совпадения синтаксиса иногда требуется экранирование.
В документации указано "{{ metadata }}", и я попытался использовать это значение как есть, но получил ошибку…
Поэтому при использовании Helm обязательно нужно экранировать значение, записывая его как "{{ {{ metadata }} }}"!
Если у вас есть вопросы по архитектуре, рекомендую ознакомиться со статьей:
https://vector.dev/docs/setup/deployment/topologies/