Revert "update code"

This reverts commit 2c2ca4655f.
This commit is contained in:
Cadey Ratio 2017-01-25 12:15:46 -08:00
parent 2c2ca4655f
commit 8506cd5023
2 changed files with 27 additions and 32 deletions

49
main.go
View File

@ -25,10 +25,6 @@ const dateFormat = "2006-01-02T15:04:05.999999Z07:00"
const outDateFormat = "2006-01-02T15:04:05" const outDateFormat = "2006-01-02T15:04:05"
const outDateFormatNoSeconds = "2006-01-02T15:04" const outDateFormatNoSeconds = "2006-01-02T15:04"
var (
seenHosts []string
)
func ParseLogLine(line []byte) (*LogLine, error) { func ParseLogLine(line []byte) (*LogLine, error) {
sl := bytes.Split(line, []byte(" ")) sl := bytes.Split(line, []byte(" "))
@ -112,11 +108,10 @@ func main() {
_, ltm, _ := lastTime.Clock() _, ltm, _ := lastTime.Clock()
if llm != ltm { if llm != ltm {
processBuckets(ab)
processBuckets(lastTime, ab)
ab = map[string]*Bucket{} ab = map[string]*Bucket{}
lastTime = lastTime.Add(time.Minute) lastTime = lastTime.Add(5 * time.Minute)
} }
b := ab[ll.Host] b := ab[ll.Host]
@ -134,41 +129,31 @@ func main() {
ab[ll.Host] = b ab[ll.Host] = b
} }
processBuckets(lastTime, ab) processBuckets(ab)
}
// sees if the minute and hour field of a == the minute and hour field of b
func cmpTime(a, b time.Time) bool {
_, am, _ := a.Clock()
_, bm, _ := b.Clock()
return am == bm
} }
func toMS(dur time.Duration) int64 { func toMS(dur time.Duration) int64 {
return dur.Nanoseconds() / 1000000 return dur.Nanoseconds() / 1000000
} }
func contains(host string) bool { func processBuckets(set map[string]*Bucket) {
for _, val := range seenHosts { hosts := []string{}
if val == host {
return true
}
}
return false
}
func processBuckets(lt time.Time, set map[string]*Bucket) {
log.Printf("printing buckets for %s", lt.Format(outDateFormatNoSeconds))
for host, _ := range set { for host, _ := range set {
if !contains(host) { hosts = append(hosts, host)
seenHosts = append(seenHosts, host)
}
} }
sort.Sort(sort.StringSlice(seenHosts)) sort.Sort(sort.StringSlice(hosts))
for _, host := range seenHosts {
bucket, ok := set[host]
if !ok {
fmt.Printf("%s,%s,0,0,0,0\n", lt.Format(outDateFormat), host)
return
}
for _, host := range hosts {
bucket := set[host]
var longest time.Duration var longest time.Duration
var shortest time.Duration var shortest time.Duration
var total time.Duration var total time.Duration

View File

@ -2,6 +2,7 @@ package main
import ( import (
"testing" "testing"
"time"
"github.com/kr/pretty" "github.com/kr/pretty"
) )
@ -25,3 +26,12 @@ func TestParseLogLine(t *testing.T) {
t.Fatal("invalid host") t.Fatal("invalid host")
} }
} }
func TestCmpTime(t *testing.T) {
now := time.Date(2016, time.January, 1, 13, 37, 0, 0, time.UTC)
then := now.Add(5 * time.Minute)
if cmpTime(then, now) {
t.Fatal("cmpTime error")
}
}