Documentation
¶
Index ¶
Constants ¶
View Source
const ( Env = iota Info Metrics Ping //Shutdown GoRoutineDump ThreadDump )
Endpoints enumeration
View Source
const (
EnvKey = "env"
)
Common Constants
Variables ¶
View Source
var ( BuildStamp string GitCommitAuthor string GitCommitID string GitCommitTime string GitPrimaryBranch string GitURL string HostName string Username string )
Set of linked build time variables for providing relevant information for the application
View Source
var AllEndpoints = []int{Env, Info, Metrics, Ping, ThreadDump, GoRoutineDump}
AllEndpoints is the list of endpoints supported
Functions ¶
func GetActuatorHandler ¶
func GetActuatorHandler(config *Config) http.HandlerFunc
GetActuatorHandler is used to get the handler function for the actuator endpoints This single handler is sufficient for handling all the endpoints.
func HandleDump ¶ added in v0.9.2
Types ¶
type BySizeElement ¶
type BySizeElement struct {
// Size is the maximum byte size of an object in this
// size class.
Size uint32
// M-allocations is the cumulative count of heap objects
// allocated in this size class. The cumulative bytes
// of allocation is Size * M-allocations. The number of live
// objects in this size class is M-allocations - Frees.
MAllocations uint64
// Frees is the cumulative count of heap objects freed
// in this size class.
Frees uint64
}
BySizeElement reports per-size class allocation statistics. BySize[N] gives statistics for allocations of size S where BySize[N-1].Size < S ≤ BySize[N].Size. This does not report allocations larger than BySize[60].Size.
type MemStats ¶
type MemStats struct {
// Alloc is bytes of allocated heap objects.
Alloc uint64 `json:"alloc"`
// TotalAlloc is cumulative bytes allocated for heap objects.
// This increases as heap objects are allocated, but
// unlike Alloc, it does not decrease when
// objects are freed.
TotalAlloc uint64 `json:"totalAlloc"`
// Sys is the total bytes of memory obtained from the OS.
// It is the sum of the XSys fields below. It measures the
// virtual address space reserved by the Go runtime for the
// heap, stacks, and other internal data structures. It's
// likely that not all of the virtual address space is backed
// by physical memory at any given moment, though in general
// it all was at some point.
Sys uint64 `json:"sys"`
// Lookups is the number of pointer lookups performed by the
// runtime.
// This is primarily useful for debugging runtime internals.
Lookups uint64 `json:"lookups"`
// MAllocations is the cumulative count of heap objects allocated.
// The number of live objects is MAllocations - Frees.
MAllocations uint64 `json:"mAllocations"`
// Frees is the cumulative count of heap objects freed.
Frees uint64 `json:"frees"`
// HeapAlloc is bytes of allocated heap objects.
// "Allocated" heap objects include all reachable objects, as
// well as unreachable objects that the garbage collector has
// not yet freed. Specifically, HeapAlloc increases as heap
// objects are allocated and decreases as the heap is swept
// and unreachable objects are freed. Sweeping occurs
// incrementally between GC cycles, so these two processes
// occur simultaneously, and as a result HeapAlloc tends to
// change smoothly (in contrast with the sawtooth that is
// typical of stop-the-world garbage collectors).
HeapAlloc uint64 `json:"heapAlloc"`
// HeapSys is bytes of heap memory obtained from the OS.
// It measures the amount of virtual address space
// reserved for the heap. This includes virtual address space
// that has been reserved but not yet used, which consumes no
// physical memory, but tends to be small, as well as virtual
// address space for which the physical memory has been
// returned to the OS after it became unused (see HeapReleased
// for a measure of the latter).
// It estimates the largest size the heap has had.
HeapSys uint64 `json:"heapSys"`
// HeapIdle is bytes in idle (unused) spans.
// Idle spans have no objects in them. These spans could be
// (and may already have been) returned to the OS, or they can
// be reused for heap allocations, or they can be reused as
// stack memory.
// HeapIdle minus HeapReleased estimates the amount of memory
// that could be returned to the OS, but is being retained by
// the runtime, so it can grow the heap without requesting more
// memory from the OS. If this difference is significantly
// larger than the heap size, it indicates there was a recent
// transient spike in live heap size.
HeapIdle uint64 `json:"heapIdle"`
// HeapInuse is bytes in in-use spans.
// In-use spans have at least one object in them. These spans
// can only be used for other objects of roughly the same
// size.
// HeapInuse minus HeapAlloc estimates the amount of memory
// that has been dedicated to particular size classes, but is
// not currently being used. This is an upper bound on
// fragmentation, but in general this memory can be reused
// efficiently.
HeapInuse uint64 `json:"heapInUse"`
// HeapReleased is bytes of physical memory returned to the OS.
// This counts heap memory from idle spans that was returned
// to the OS and has not yet been reacquired for the heap.
HeapReleased uint64 `json:"heapReleased"`
// HeapObjects is the number of allocated heap objects.
// Like HeapAlloc, this increases as objects are allocated and
// decreases as the heap is swept and unreachable objects are
// freed.
HeapObjects uint64 `json:"heapObjects"`
// StackInuse is bytes in stack spans.
// In-use stack spans have at least one stack in them. These
// spans can only be used for other stacks of the same size.
// There is no StackIdle because unused stack spans are
// returned to the heap (and hence counted toward HeapIdle).
StackInuse uint64 `json:"stackInUse"`
// StackSys is bytes of stack memory obtained from the OS.
// StackSys is StackInuse, plus any memory obtained directly
// from the OS for OS thread stacks (which should be minimal).
StackSys uint64 `json:"stackSys"`
// MSpanInuse is bytes of allocated m-span structures.
MSpanInuse uint64 `json:"mSpanInUse"`
// MSpanSys is bytes of memory obtained from the OS for m-span
// structures.
MSpanSys uint64 `json:"mSpanSys"`
// MCacheInuse is bytes of allocated m-cache structures.
MCacheInuse uint64 `json:"MCacheInUse"`
// MCacheSys is bytes of memory obtained from the OS for
// m-cache structures.
MCacheSys uint64 `json:"mCacheSys"`
// BuckHashSys is bytes of memory in profiling bucket hash tables.
BuckHashSys uint64 `json:"buckHashSys"`
// GCSys is bytes of memory in garbage collection metadata.
GCSys uint64 `json:"gcSys"`
// OtherSys is bytes of memory in miscellaneous off-heap
// runtime allocations.
OtherSys uint64 `json:"otherSys"`
// NextGC is the target heap size of the next GC cycle.
// The garbage collector's goal is to keep HeapAlloc ≤ NextGC.
// At the end of each GC cycle, the target for the next cycle
// is computed based on the amount of reachable data and the
// value of GO GC.
NextGC uint64 `json:"nextGC"`
// LastGC is the time the last garbage collection finished, as
// nanoseconds since 1970 (the UNIX epoch).
LastGC uint64 `json:"lastGC"`
// PauseTotalNs is the cumulative nanoseconds in GC
// stop-the-world pauses since the program started.
// During a stop-the-world pause, all goroutines are paused
// and only the garbage collector can run.
PauseTotalNs uint64 `json:"pauseTotalNs"`
// PauseNs is a circular buffer of recent GC stop-the-world
// pause times in nanoseconds.
//
// The most recent pause is at PauseNs[(NumGC+255)%256]. In
// general, PauseNs[N%256] records the time paused in the most
// recent N%256th GC cycle. There may be multiple pauses per
// GC cycle; this is the sum of all pauses during a cycle.
PauseNs [256]uint64 `json:"pauseNs"`
// PauseEnd is a circular buffer of recent GC pause end times,
// as nanoseconds since 1970 (the UNIX epoch).
// This buffer is filled the same way as PauseNs. There may be
// multiple pauses per GC cycle; this records the end of the
// last pause in a cycle.
PauseEnd [256]uint64 `json:"pauseEnd"`
// NumGC is the number of completed GC cycles.
NumGC uint32 `json:"numGC"`
// NumForcedGC is the number of GC cycles that were forced by
// the application calling the GC function.
NumForcedGC uint32 `json:"numForcedGC"`
// GCCPUFraction is the fraction of this program's available
// CPU time used by the GC since the program started.
//
// GCCPUFraction is expressed as a number between 0 and 1,
// where 0 means GC has consumed none of this program's CPU. A
// program's available CPU time is defined as the integral of
// GO MAX PROCESSES since the program started. That is, if
// GO MAX PROCESSES is 2 and a program has been running for 10
// seconds, its "available CPU" is 20 seconds. GCCPUFraction
// does not include CPU time used for write barrier activity.
//
// This is the same as the fraction of CPU reported by
// GO DEBUG = gc trace = 1.
GCCPUFraction float64 `json:"gcCPUFraction"`
// EnableGC indicates that GC is enabled. It is always true,
// even if GO GC = off.
EnableGC bool `json:"enableGC"`
// DebugGC is currently unused.
DebugGC bool `json:"debugGC"`
// BySize reports per-size class allocation statistics.
// BySize[N] gives statistics for allocations of size S where
// BySize[N-1].Size < S ≤ BySize[N].Size.
// This does not report allocations larger than BySize[60].Size.
BySize []BySizeElement
}
MemStats is the memory statistics for the current running application
type MetricsResponse ¶
type MetricsResponse struct {
CpuStats CpuStats `json:"cpu"`
ThreadStats ThreadStats `json:"threadstats"`
MemStats MemStats `json:"memory"`
}
MetricsResponse is the response for the metrics endpoint
type ThreadStats ¶ added in v0.9.3
Click to show internal directories.
Click to hide internal directories.