Documentation
¶
Overview ¶
Package profiler contains tools to help profile a running Go service.
Index ¶
- func Asset(name string) ([]byte, error)
- func AssetDir(name string) ([]string, error)
- func AssetInfo(name string) (os.FileInfo, error)
- func AssetNames() []string
- func MemStatsHTMLHandler(w http.ResponseWriter, r *http.Request)
- func MustAsset(name string) []byte
- func ProfilingInfoJSONHandler(w http.ResponseWriter, r *http.Request)
- func RegisterExtraServiceInfoRetriever(infoRetriever ExtraServiceInfoRetriever)
- func RestoreAsset(dir, name string) error
- func RestoreAssets(dir, name string) error
- func StartProfiling()
- func StartProfilingHandler(w http.ResponseWriter, r *http.Request)
- func StopProfiling()
- func StopProfilingHandler(w http.ResponseWriter, r *http.Request)
- func TrackMemoryStatistics(bufferSize int, sampleIntervalMs int64, ...)
- type ExtraServiceInfoRetriever
- type HeapMemStat
- type TimedMemStats
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Asset ¶
Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.
func AssetDir ¶
AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:
data/
foo.txt
img/
a.png
b.png
then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("notexist") would return an error AssetDir("") will return []string{"data"}.
func AssetInfo ¶
AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.
func MemStatsHTMLHandler ¶
func MemStatsHTMLHandler(w http.ResponseWriter, r *http.Request)
MemStatsHTMLHandler is a HTTP Handler to fetch memstats.html or memstats-off.html content
func MustAsset ¶
MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.
func ProfilingInfoJSONHandler ¶
func ProfilingInfoJSONHandler(w http.ResponseWriter, r *http.Request)
ProfilingInfoJSONHandler is a HTTP Handler to return JSON of the Heap memory statistics and any extra info the server wants to tell us about
func RegisterExtraServiceInfoRetriever ¶
func RegisterExtraServiceInfoRetriever(infoRetriever ExtraServiceInfoRetriever)
RegisterExtraServiceInfoRetriever sets the function that will provide us with extra service info when requested
func RestoreAsset ¶
RestoreAsset restores an asset under the given directory
func RestoreAssets ¶
RestoreAssets restores an asset under the given directory recursively
func StartProfiling ¶
func StartProfiling()
StartProfiling is a function to start profiling automatically without web button
func StartProfilingHandler ¶
func StartProfilingHandler(w http.ResponseWriter, r *http.Request)
StartProfilingHandler is a HTTP Handler to start memory profiling, if we're not already
func StopProfiling ¶
func StopProfiling()
StopProfiling is a function to stop profiling automatically without web button
func StopProfilingHandler ¶
func StopProfilingHandler(w http.ResponseWriter, r *http.Request)
StopProfilingHandler is a HTTP Handler to stop memory profiling, if we're profiling
func TrackMemoryStatistics ¶
func TrackMemoryStatistics(bufferSize int, sampleIntervalMs int64, memStatsRequestChannel <-chan chan []TimedMemStats, quitChannel chan bool)
TrackMemoryStatistics keeps track of runtime.MemStats. Sample memory statistics every [sampleIntervalMs] milliseconds, keeping the last [bufferSize] samples. Returns a request/response channel to get recent memory statistics and a quit channel to stop polling. Parameters:
bufferSize: number of samples to keep sampleIntervalMs: number of milliseconds to wait between polling memStatsRequestChannel: request/reply channel to report back the most recent N samples quitChannel: once closed, all polling stops
Types ¶
type ExtraServiceInfoRetriever ¶
type ExtraServiceInfoRetriever func() map[string]interface{}
ExtraServiceInfoRetriever functions return a map with info about the running service.
type HeapMemStat ¶
type HeapMemStat struct {
TimeMsAgo int64 // ms ago (negative)
SysKb uint64
HeapSysKb uint64
HeapAllocKb uint64
HeapIdleKb uint64
HeapReleasedKb uint64
}
HeapMemStat represents a snapshot of the heap memory at a given time.
type TimedMemStats ¶
type TimedMemStats struct {
// the unix time (seconds) the stats were polled
TimeEpochMs int64
// memory statistics
MemStats runtime.MemStats
}
TimedMemStats represents a MemStats reading with the time it was taken
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
extra_service_info
command
Example service with the profiler listening on a separate port, and sharing extra diagnostic info as key/value pairs
|
Example service with the profiler listening on a separate port, and sharing extra diagnostic info as key/value pairs |
|
separate_port
command
Example service with the profiler listening on a separate port from other HTTP endpoints
|
Example service with the profiler listening on a separate port from other HTTP endpoints |
|
simple
command
Example service with the profiler listening on its only HTTP IP:port
|
Example service with the profiler listening on its only HTTP IP:port |
