Simple hardware metrics collection + alerting (#115)

* Add CPU and RAM usage alerting

* Create basic troubleshooting document to point alerts at

* Limit max number of hardware values collected

* Save metric value with the point in time it was taken
This commit is contained in:
Gabe Kangas
2020-08-27 00:37:32 -07:00
committed by GitHub
parent e791a3c1dc
commit 4c3da2704f
7 changed files with 137 additions and 15 deletions

39
metrics/metrics.go Normal file
View File

@ -0,0 +1,39 @@
package metrics
import (
"time"
)
// How often we poll for updates
const metricsPollingInterval = 15 * time.Second
type value struct {
Time time.Time
Value int
}
type metrics struct {
CPUUtilizations []value
RAMUtilizations []value
}
// Metrics is the shared Metrics instance
var Metrics *metrics
// Start will begin the metrics collection and alerting
func Start() {
Metrics = new(metrics)
for range time.Tick(metricsPollingInterval) {
handlePolling()
}
}
func handlePolling() {
// Collect hardware stats
collectCPUUtilization()
collectRAMUtilization()
// Alerting
handleAlerting()
}