/
publish.go
66 lines (58 loc) · 1.33 KB
/
publish.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
package beater
import (
"time"
"strings"
"path/filepath"
"log"
"github.com/elastic/beats/libbeat/beat"
"github.com/elastic/beats/libbeat/common"
"github.com/elastic/beats/libbeat/logp"
//"github.com/gshamov/lustrebeat/config"
)
func PublishZpool(bt *Lustrebeat, v string) (err error) {
// publishes an event for ZFS pool/io
// make the tag
pool := strings.Split(v, "/")[5]
ios, err := GetZfsPoolIofile(v)
if err != nil {
//log.Fatal(err) // is in fatal here?
return err
}
event := beat.Event{
Timestamp: time.Now(),
Fields: common.MapStr{
"type": "zfsio",
"ios": ios,
"pool": pool,
},
}
bt.client.Publish(event)
logp.Info("Event sent")
return err
}
func PublishZstats(bt *Lustrebeat, s string, listzstats map[string]struct{}) (err error) {
// publishes a ZFS stat file, based on the mask?
cs := filepath.Base(s)
var ok bool = false
// no provision for empty lists! should be explicit stats always
// or nothing will be returned
if _, ok = listzstats[cs]; ok {
result, err := GetZfsStatfile(s)
//fmt.Println(result, err, s)
if err != nil {
log.Fatal(err)
return err
}
event := beat.Event{
Timestamp: time.Now(),
Fields: common.MapStr{
"type": "zfsstat",
"zfsstat": result,
"name": cs,
},
}
bt.client.Publish(event)
logp.Info("Event sent")
}
return err
}