/
main.go
68 lines (52 loc) · 1.15 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package main
import (
"flag"
"fmt"
"time"
"github.com/amir/raidman"
"github.com/joiggama/riemann-tools/health"
)
var (
INTERVAL = flag.Duration("interval", time.Second, "Agent refresh interval (Default: 1s)")
HOST = flag.String("host", "127.0.0.1", "Riemann host (default: 127.0.0.1)")
PORT = flag.String("port", "5555", "Riemann port (default: 5555")
)
func main() {
flag.Parse()
tick := time.NewTicker(*INTERVAL)
for {
<-tick.C
cpu_event_err := Notify(&raidman.Event{
State: "ok",
Service: "cpu",
Metric: health.CPU(),
Ttl: 10,
})
if cpu_event_err != nil {
fmt.Println(cpu_event_err)
}
mem_event_err := Notify(&raidman.Event{
State: "ok",
Service: "memory",
Metric: health.Memory(),
Ttl: 10,
})
if mem_event_err != nil {
fmt.Println(mem_event_err)
}
}
}
func Notify(event *raidman.Event) error {
conn, err := raidman.Dial("tcp", *HOST + ":" + *PORT)
if err != nil {
return err
} else {
send_err := conn.Send(event)
if send_err != nil {
return send_err
} else {
conn.Close()
return nil
}
}
}