Skip to content

Commit 688ca71

Browse files
committed
chg: [sshd] retry delay for empty queue + flag for parsing a file
1 parent 587d418 commit 688ca71

File tree

2 files changed

+64
-32
lines changed

2 files changed

+64
-32
lines changed

logparser/sshd.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"log"
66
"math"
77
"os"
8+
"path/filepath"
89
"regexp"
910
"strconv"
1011
"strings"
@@ -175,12 +176,23 @@ func (s *SshdParser) Compile() error {
175176
p.NominalY(keys...)
176177

177178
// Create folder to store plots
178-
if _, err := os.Stat(stype[0]); os.IsNotExist(err) {
179-
os.Mkdir(stype[0], 0700)
179+
180+
if _, err := os.Stat("data"); os.IsNotExist(err) {
181+
err := os.Mkdir("data", 0700)
182+
if err != nil {
183+
return err
184+
}
185+
}
186+
187+
if _, err := os.Stat(filepath.Join("data", stype[0])); os.IsNotExist(err) {
188+
err := os.Mkdir(filepath.Join("data", stype[0]), 0700)
189+
if err != nil {
190+
return err
191+
}
180192
}
181193

182194
xsize := 3 + vg.Length(math.Round(float64(len(keys)/2)))
183-
if err := p.Save(15*vg.Centimeter, xsize*vg.Centimeter, fmt.Sprintf("data/%v/%v.svg", stype[0], v)); err != nil {
195+
if err := p.Save(15*vg.Centimeter, xsize*vg.Centimeter, filepath.Join("data", stype[0], fmt.Sprintf("%v.svg", v))); err != nil {
184196
return err
185197
}
186198

main.go

Lines changed: 49 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package main
22

33
import (
4-
"errors"
4+
"bufio"
55
"flag"
66
"fmt"
77
"log"
@@ -45,6 +45,8 @@ var (
4545
all = flag.Bool("a", true, "run all parsers when set. Set by default")
4646
specific = flag.String("o", "", "run only a specific parser [sshd]")
4747
debug = flag.Bool("d", false, "debug info in logs")
48+
fromfile = flag.String("f", "", "parse from file on disk")
49+
retry = flag.Int("r", 1, "time in minute before retry on empty d4 queue")
4850
redisD4 redis.Conn
4951
redisParsers *redis.Pool
5052
parsers = [1]string{"sshd"}
@@ -175,38 +177,56 @@ func main() {
175177
log.Println("TODO should run specific parser here")
176178
}
177179

178-
f, err = os.Open("./test_seed.log")
179-
if err != nil {
180-
log.Fatalf("Error opening test file: %v", err)
181-
}
182-
defer f.Close()
183-
// scanner := bufio.NewScanner(f)
184-
// for scanner.Scan() {
185-
186-
// Pop D4 redis queue
187-
for {
188-
189-
err := errors.New("")
190-
logline, err := redis.String(redisD4.Do("LPOP", "analyzer:3:"+rd4.redisQueue))
191-
// logline := scanner.Text()
180+
// Parsing loop
181+
if *fromfile != "" {
182+
f, err = os.Open(*fromfile)
192183
if err != nil {
193-
log.Fatal(err)
184+
log.Fatalf("Error opening seed file: %v", err)
194185
}
195-
fmt.Println(logline)
196-
197-
// Run the parsers
198-
for _, v := range torun {
199-
err := v.Parse(logline)
200-
if err != nil {
201-
log.Fatal(err)
186+
defer f.Close()
187+
scanner := bufio.NewScanner(f)
188+
for scanner.Scan() {
189+
logline := scanner.Text()
190+
for _, v := range torun {
191+
err := v.Parse(logline)
192+
if err != nil {
193+
log.Fatal(err)
194+
}
195+
}
196+
nblines++
197+
if nblines > compilationTrigger {
198+
nblines = 0
199+
// Non-blocking
200+
if !compiling.compiling {
201+
go compile()
202+
}
202203
}
203204
}
204-
nblines++
205-
if nblines > compilationTrigger {
206-
nblines = 0
207-
// Non-blocking
208-
if !compiling.compiling {
209-
go compile()
205+
} else {
206+
// Pop D4 redis queue
207+
for {
208+
logline, err := redis.String(redisD4.Do("LPOP", "analyzer:3:"+rd4.redisQueue))
209+
if err == redis.ErrNil {
210+
// redis queue empty, let's sleep for a while
211+
time.Sleep(time.Duration(*retry) * time.Minute)
212+
} else if err != nil {
213+
log.Fatal(err)
214+
// let's parse
215+
} else {
216+
for _, v := range torun {
217+
err := v.Parse(logline)
218+
if err != nil {
219+
log.Fatal(err)
220+
}
221+
}
222+
nblines++
223+
if nblines > compilationTrigger {
224+
nblines = 0
225+
// Non-blocking
226+
if !compiling.compiling {
227+
go compile()
228+
}
229+
}
210230
}
211231
}
212232
}

0 commit comments

Comments
 (0)