diff options
-rw-r--r-- | stasherpresent.slide | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/stasherpresent.slide b/stasherpresent.slide index c73f399..d23a837 100644 --- a/stasherpresent.slide +++ b/stasherpresent.slide @@ -4,7 +4,6 @@ Prototyping a logstash alternative 23 February 2017 Silvan Jegen -Computational Linguist me@sillymon.ch https://sillymon.ch @@ -94,18 +93,33 @@ Custom configuration language * Stasher + +* Stasher + Why? - Apparently Logstash is very slow - Generality of the work flow - I like Go +Code available at +.link https://sillymon.ch/cgit/stasher/ https://sillymon.ch/cgit/stasher/ + * Implementation +* Implementation + +1. Interfaces +2. Manager +3. Unfinished stuff (error handling, registry and config parser) + + * Interfaces +{input,filter,output}/interface.go + type Input interface { Start() chan *work.Work } @@ -123,6 +137,8 @@ Why? * Manager +manager/manager.go + type Manager struct { Input input.Input Filter filter.Filter @@ -157,6 +173,7 @@ Why? wg.Wait() } + * Main advantages over shell script - Error handling @@ -167,8 +184,8 @@ Why? * Error handling for w := range ic { - if w.Err != nil { - fmt.Printf("Got an error when getting Work input: %q\n", w.Err) + if w.Error() != nil { + fmt.Printf("Got an error when getting Work input: %q\n", w.Error()) continue } wg.Add(1) @@ -182,7 +199,6 @@ Why? if err != nil { fmt.Printf("Got an error when outputting Work: %q\n", err) } - wg.Done() }(w) } @@ -235,7 +251,16 @@ conf/init.go ) -* Demo +* Implemented modules + +- input: stdin, http + +- filter: str(ing), http + +- output: stdout, http + + +* Demo (a.k.a. "It totally works, I swear!") * High-level TODOs |