Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Golang application performance data monitoring.

License

NotificationsYou must be signed in to change notification settings

wgliang/goappmonitor

Repository files navigation

goappmonitor

goappmonitor

Build StatuscodecovGoDocJoin the chat at https://gitter.im/goappmonitor/LobbyCode HealthGo Report CardLicense

Golang application performance data monitoring.

GoAppMonitor is a library which provides a monitor on your golang applications. It contains system level based monitoring and business level monitoring(custom monitoring).Just add the repository into your apps and register what you want to monitoring.

Summary

Using GoAppMonitor to monitor the golang applications, in general as following:

In your golang application code, the user calls the statistics function provided by goappmonitor; when the statistics function is called, the appmonitor generates a statistical record, and is stored in memory.GoAppMonitor will automatically and regularly record these statistics push to the agent such as Open-Falcon agent.

Version

Current version support:

  • v0.0.2

    • Open-Falcon (Open source monitoring system of Xiaomi)
    • InfluxDB (Scalable datastore for metrics, events, and real-time analytics)

todo....

  • support more agent frameworks,such as elasticsearch...
  • go processes manager and debug online...

Install

go get github.com/wgliang/goappmonitor

Demo

demo

Usage

Below is an example which shows some common use cases for goappmonitor. Checkexample for moreusage.

DetailAPI

package mainimport ("math/rand""time"appm"github.com/wgliang/goappmonitor")// Base or system performance data,such as memeory,gc,network and so on.funcbaseOrsystem() {for_=rangetime.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.funccustomOrbusiness() {for_=rangetime.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 delaydelay:=int64(rand.Int31n(100))appm.Histogram("appm.histogram",delay)}}funcmain() {varchchanintgobaseOrsystem()gocustomOrbusiness()<-ch}

Credits

Repository is base on goperfcounter ofniean

Logo is desigend byxuri


[8]ページ先頭

©2009-2025 Movatter.jp