У нас есть несколько Logstash, которые извлекают данные из очереди, а затем вставляют записи в Elasticsearch.
Есть ли хороший способ программного тестирования конвейеров, чтобы мы могли включить его в"модульные тесты"когда мы создаем запросы на извлечение в репозиторий конвейера?
В настоящее время мы проводим только локальное тестирование, изменяя место, куда конвейер будет записывать данные (Elasticsearch изменен на stdout
), а затем оцениваем запись, чтобы проверить, работают ли изменения так, как задумано.
решение1
Там не так уж много всего.
Один из подходов, который стал возможен благодаря новому (начиная с LS6.x) API статистики, заключается в отслеживании количества попаданий на этап фильтра для заданного набора входных данных. Если у вас есть этап grok с определенным именем, он должен коснуться N документов для прохождения, а выходной сигнал нижнего этапа, который использует поля, размеченные этим более ранним состоянием Grok, также должен обрабатывать N строк. Что-то в этом роде.
решение2
Три года назад я нашел решение своего вопроса. Это былоэтот фантастический проект. Это служило мне верой и правдой долгое время.
Теперь, спустя три года, у меня была та же проблема. Но я забыл орешениеи в итоге оказался в том же самом вопросе, поняв, что это был я сам из прошлого.
Чтобы предотвратить в следующемтри-четыре годачтобы столкнуться с той же проблемой в третий раз, я очень настаиваю на решении моей проблемы, которое заключается в следующем:этот проект.
Мне так жаль, что я подвел тебя, я из прошлого.