airtime + no panic on lost of influxdb connection
This commit is contained in:
parent
5011719fdf
commit
93fe0fadb5
|
@ -23,5 +23,5 @@ _testmain.go
|
||||||
*.test
|
*.test
|
||||||
*.prof
|
*.prof
|
||||||
respond-collector
|
respond-collector
|
||||||
webroot/
|
webroot
|
||||||
config.yml
|
config.yml
|
||||||
|
|
|
@ -9,3 +9,17 @@ type Wireless struct {
|
||||||
type SwitchPort struct {
|
type SwitchPort struct {
|
||||||
Speed uint32 `json:"speed"`
|
Speed uint32 `json:"speed"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type WirelessStatistics struct {
|
||||||
|
Airtime24 *WirelessAirtime `json:"airtime24,omitempty"`
|
||||||
|
Airtime5 *WirelessAirtime `json:"airtime5,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WirelessAirtime struct {
|
||||||
|
Active uint64 `json:"active"`
|
||||||
|
Busy uint64 `json:"busy"`
|
||||||
|
Rx uint64 `json:"rx"`
|
||||||
|
Tx uint64 `json:"tx"`
|
||||||
|
Noise uint32 `json:"noise"`
|
||||||
|
Frequency uint32 `json:"frequency"`
|
||||||
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ type Statistics struct {
|
||||||
MgmtRx *Traffic `json:"mgmt_rx"`
|
MgmtRx *Traffic `json:"mgmt_rx"`
|
||||||
} `json:"traffic,omitempty"`
|
} `json:"traffic,omitempty"`
|
||||||
Switch map[string]*SwitchPort `json:"switch,omitempty"`
|
Switch map[string]*SwitchPort `json:"switch,omitempty"`
|
||||||
|
Wireless *WirelessStatistics `json:"wireless,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type MeshVPNPeerLink struct {
|
type MeshVPNPeerLink struct {
|
||||||
|
|
25
stats_db.go
25
stats_db.go
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -83,6 +84,26 @@ func (c *StatsDb) Add(stats *data.Statistics) {
|
||||||
fields["traffic.mgmt_tx.bytes"] = int64(t.Bytes)
|
fields["traffic.mgmt_tx.bytes"] = int64(t.Bytes)
|
||||||
fields["traffic.mgmt_tx.packets"] = t.Packets
|
fields["traffic.mgmt_tx.packets"] = t.Packets
|
||||||
}
|
}
|
||||||
|
if w := stats.Wireless; w != nil {
|
||||||
|
if time := w.Airtime24; time != nil {
|
||||||
|
fields["airtime24.active"] = time.Active
|
||||||
|
fields["airtime24.busy"] = time.Busy
|
||||||
|
fields["airtime24.tx"] = time.Tx
|
||||||
|
fields["airtime24.rx"] = time.Rx
|
||||||
|
fields["airtime24.noise"] = time.Noise
|
||||||
|
fields["airtime24.frequency"] = time.Frequency
|
||||||
|
tags["frequency24"] = strconv.Itoa(int(time.Frequency))
|
||||||
|
}
|
||||||
|
if time := w.Airtime5; time != nil {
|
||||||
|
fields["airtime5.active"] = time.Active
|
||||||
|
fields["airtime5.busy"] = time.Busy
|
||||||
|
fields["airtime5.tx"] = time.Tx
|
||||||
|
fields["airtime5.rx"] = time.Rx
|
||||||
|
fields["airtime5.noise"] = time.Noise
|
||||||
|
fields["airtime5.frequency"] = time.Frequency
|
||||||
|
tags["frequency5"] = strconv.Itoa(int(time.Frequency))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
point, err := client.NewPoint("node", tags, fields, time.Now())
|
point, err := client.NewPoint("node", tags, fields, time.Now())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -119,7 +140,7 @@ func (c *StatsDb) worker() {
|
||||||
// create new batch
|
// create new batch
|
||||||
timer.Reset(batchDuration)
|
timer.Reset(batchDuration)
|
||||||
if bp, err = client.NewBatchPoints(bpConfig); err != nil {
|
if bp, err = client.NewBatchPoints(bpConfig); err != nil {
|
||||||
panic(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bp.AddPoint(point)
|
bp.AddPoint(point)
|
||||||
|
@ -139,7 +160,7 @@ func (c *StatsDb) worker() {
|
||||||
log.Println("saving", len(bp.Points()), "points")
|
log.Println("saving", len(bp.Points()), "points")
|
||||||
|
|
||||||
if err = c.client.Write(bp); err != nil {
|
if err = c.client.Write(bp); err != nil {
|
||||||
panic(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
writeNow = false
|
writeNow = false
|
||||||
bp = nil
|
bp = nil
|
||||||
|
|
Loading…
Reference in New Issue