代码拉取完成,页面将自动刷新
package metrics_mux
import (
"expvar"
"fmt"
"gitee.com/kelvins-io/common/ptool"
"net/http"
)
var appStats = expvar.NewMap("appstats")
func GetElasticMux(mux *http.ServeMux) *http.ServeMux {
mux.HandleFunc("/debug/vars", metricsHandler)
return mux
}
// metricsHandler print expvar data.
func metricsHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
appStats.Set("Goroutine", expvar.Func(ptool.GetGoroutineCount))
appStats.Set("Threadcreate", expvar.Func(ptool.GetThreadCreateCount))
appStats.Set("Block", expvar.Func(ptool.GetBlockCount))
appStats.Set("Mutex", expvar.Func(ptool.GetMutexCount))
appStats.Set("Heap", expvar.Func(ptool.GetHeapCount))
first := true
report := func(key string, value interface{}) {
if !first {
fmt.Fprintf(w, ",\n")
}
first = false
if str, ok := value.(string); ok {
fmt.Fprintf(w, "%q: %q", key, str)
} else {
fmt.Fprintf(w, "%q: %v", key, value)
}
}
fmt.Fprintf(w, "{\n")
expvar.Do(func(kv expvar.KeyValue) {
report(kv.Key, kv.Value)
})
fmt.Fprintf(w, "\n}\n")
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。