Wir haben mehrere Logstash(es), die Daten aus einer Warteschlange ziehen und dann Datensätze in Elasticsearch einfügen.
Gibt es eine gute Möglichkeit, Pipelines programmgesteuert zu testen, sodass wir sie einbinden können als"Unit-Tests"wenn wir Pull-Anfragen an das Pipeline-Repository erstellen?
Derzeit testen wir nur lokal, indem wir ändern, wohin die Pipeline schreiben soll (Elasticsearch, geändert in stdout
), und dann werten wir den Datensatz aus, um zu überprüfen, ob die Änderungen wie beabsichtigt funktionieren.
Antwort1
Da draußen gibt es nicht viel.
Ein Ansatz, der mit der neuen (ab LS6.x) Statistik-API möglich ist, besteht darin, die Anzahl der Filterstufentreffer für einen bestimmten Satz von Eingaben zu verfolgen. Wenn Sie eine Grok-Stufe mit einem bestimmten Namen haben, sollte sie N Dokumente berühren, damit sie durchkommt, und die Downstage-Ausgabe, die Felder verwendet, die von diesem früheren Grok-Zustand markiert wurden, sollte auch N Zeilen verarbeiten. Solche Sachen.
Antwort2
Vor drei Jahren fand ich die Lösung für meine Frage. Sie lautetedieses fantastische Projekt. Das hat mir lange Zeit gute Dienste geleistet.
Jetzt, drei Jahre später, hatte ich das gleiche Problem. Aber ich hatte vergessendie Lösungund landete bei genau dieser Frage und erkannte, dass ich es selbst aus der Vergangenheit war.
Um im nächsten zu verhinderndrei bis vier Jahreum das gleiche Problem ein drittes Mal zu haben, bestehe ich sehr auf der Antwort auf mein Problem, nämlichdieses Projekt.
Es tut mir so leid, dass ich Dich enttäuscht habe, das Ich aus der Vergangenheit.