mirror of
https://github.com/golang/go
synced 2024-09-28 23:14:38 -06:00
runtime/metrics: add /gc/gogc:percent
For #56857 Change-Id: I7e7d2ea3e6ab59291a4cd867c680605ad75bd21f Reviewed-on: https://go-review.googlesource.com/c/go/+/497317 Reviewed-by: Michael Knyszek <mknyszek@google.com> Auto-Submit: Michael Knyszek <mknyszek@google.com> Run-TryBot: Felix Geisendörfer <felix.geisendoerfer@datadoghq.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
2544b1051e
commit
1eae5c160d
@ -254,6 +254,12 @@ func initMetrics() {
|
||||
out.scalar = uint64(gcController.memoryLimit.Load())
|
||||
},
|
||||
},
|
||||
"/gc/gogc:percent": {
|
||||
compute: func(in *statAggregate, out *metricValue) {
|
||||
out.kind = metricKindUint64
|
||||
out.scalar = uint64(gcController.gcPercent.Load())
|
||||
},
|
||||
},
|
||||
"/gc/heap/live:bytes": {
|
||||
deps: makeStatDepSet(heapStatsDep),
|
||||
compute: func(in *statAggregate, out *metricValue) {
|
||||
|
@ -193,6 +193,13 @@ var allDesc = []Description{
|
||||
Kind: KindUint64,
|
||||
Cumulative: true,
|
||||
},
|
||||
{
|
||||
Name: "/gc/gogc:percent",
|
||||
Description: "Heap size target percentage configured by the user, otherwise 100. This " +
|
||||
"value is set by the GOGC environment variable, and the runtime/debug.SetGCPercent " +
|
||||
"function.",
|
||||
Kind: KindUint64,
|
||||
},
|
||||
{
|
||||
Name: "/gc/gomemlimit:bytes",
|
||||
Description: "Go runtime memory limit configured by the user, otherwise " +
|
||||
|
@ -147,6 +147,11 @@ Below is the full list of supported metrics, ordered lexicographically.
|
||||
/gc/cycles/total:gc-cycles
|
||||
Count of all completed GC cycles.
|
||||
|
||||
/gc/gogc:percent
|
||||
Heap size target percentage configured by the user, otherwise
|
||||
100. This value is set by the GOGC environment variable, and the
|
||||
runtime/debug.SetGCPercent function.
|
||||
|
||||
/gc/gomemlimit:bytes
|
||||
Go runtime memory limit configured by the user, otherwise
|
||||
math.MaxInt64. This value is set by the GOMEMLIMIT environment
|
||||
|
@ -37,6 +37,11 @@ func TestReadMetrics(t *testing.T) {
|
||||
oldLimit := debug.SetMemoryLimit(limit)
|
||||
defer debug.SetMemoryLimit(oldLimit)
|
||||
|
||||
// Set an GC percent to check the metric for it
|
||||
gcPercent := 99
|
||||
oldGCPercent := debug.SetGCPercent(gcPercent)
|
||||
defer debug.SetGCPercent(oldGCPercent)
|
||||
|
||||
// Tests whether readMetrics produces values aligning
|
||||
// with ReadMemStats while the world is stopped.
|
||||
var mstats runtime.MemStats
|
||||
@ -150,6 +155,8 @@ func TestReadMetrics(t *testing.T) {
|
||||
checkUint64(t, name, samples[i].Value.Uint64(), mstats.HeapObjects)
|
||||
case "/gc/heap/goal:bytes":
|
||||
checkUint64(t, name, samples[i].Value.Uint64(), mstats.NextGC)
|
||||
case "/gc/gogc:percent":
|
||||
checkUint64(t, name, samples[i].Value.Uint64(), uint64(gcPercent))
|
||||
case "/gc/cycles/automatic:gc-cycles":
|
||||
checkUint64(t, name, samples[i].Value.Uint64(), uint64(mstats.NumGC-mstats.NumForcedGC))
|
||||
case "/gc/cycles/forced:gc-cycles":
|
||||
|
Loading…
Reference in New Issue
Block a user