GoAppMonitor —— Golang 应用性能数据监控。这是一个 Go 开发库,为你的 Go 应用程序提供监控功能。包含系统级别的监控和业务级别监控。
监控效果:
示例代码:
package main import ( "math/rand" "time" appm "github.com/wgliang/goappmonitor" ) // Base or system performance data,such as memeory,gc,network and so on. func baseOrsystem() { for _ = range time.Tick(time.Second * time.Duration(10)) { // (commonly used) Meter, used to sum and calculate the rate of change. Use scenarios // such as the number of home visits statistics, CG etc.. pv := int64(rand.Int31n(100)) appm.Meter("appm.meter", pv) appm.Meter("appm.meter.2", pv-50) // (commonly used) Gauge, used to preserve the value of the instantaneous value of the // type of record. Use scenarios such as statistical queue length, statistics CPU usage, // and so on. queueSize := int64(rand.Int31n(100) - 50) appm.Gauge("appm.gauge", queueSize) cpuUtil := float64(rand.Int31n(10000)) / float64(100) appm.GaugeFloat64("appm.gauge.float64", cpuUtil) } } // Custom or business performance data,such as qps,num of function be called, task queue and so on. func customOrbusiness() { for _ = range time.Tick(time.Second) { // Histogram, using the exponential decay sampling method, the probability distribution of // the statistical object is calculated. Using scenarios such as the probability distribution // of the statistics home page to access the delay delay := int64(rand.Int31n(100)) appm.Histogram("appm.histogram", delay) } } func main() { var ch chan int go baseOrsystem() go customOrbusiness() <-ch }