mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime,runtime/metrics: export goroutine count as a metric
For #37112. Change-Id: I994dfe848605b95ef6aec24f53869e929247e987 Reviewed-on: https://go-review.googlesource.com/c/go/+/247049 Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Go Bot <gobot@golang.org> Trust: Michael Knyszek <mknyszek@google.com> Reviewed-by: Michael Pratt <mpratt@google.com>
This commit is contained in:
parent
d39a89fd58
commit
80c6b92ecb
4 changed files with 18 additions and 0 deletions
|
|
@ -214,6 +214,12 @@ func initMetrics() {
|
|||
in.sysStats.gcMiscSys + in.sysStats.otherSys
|
||||
},
|
||||
},
|
||||
"/sched/goroutines:goroutines": {
|
||||
compute: func(_ *statAggregate, out *metricValue) {
|
||||
out.kind = metricKindUint64
|
||||
out.scalar = uint64(gcount())
|
||||
},
|
||||
},
|
||||
}
|
||||
metricsInit = true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -163,6 +163,11 @@ var allDesc = []Description{
|
|||
Description: "All memory mapped by the Go runtime into the current process as read-write. Note that this does not include memory mapped by code called via cgo or via the syscall package. Sum of all metrics in /memory/classes.",
|
||||
Kind: KindUint64,
|
||||
},
|
||||
{
|
||||
Name: "/sched/goroutines:goroutines",
|
||||
Description: "Count of live goroutines.",
|
||||
Kind: KindUint64,
|
||||
},
|
||||
}
|
||||
|
||||
// All returns a slice of containing metric descriptions for all supported metrics.
|
||||
|
|
|
|||
|
|
@ -123,5 +123,8 @@ Supported metrics
|
|||
as read-write. Note that this does not include memory mapped
|
||||
by code called via cgo or via the syscall package.
|
||||
Sum of all metrics in /memory/classes.
|
||||
|
||||
/sched/goroutines:goroutines
|
||||
Count of live goroutines.
|
||||
*/
|
||||
package metrics
|
||||
|
|
|
|||
|
|
@ -145,6 +145,10 @@ func TestReadMetricsConsistency(t *testing.T) {
|
|||
for i := range h.Counts {
|
||||
gc.pauses += h.Counts[i]
|
||||
}
|
||||
case "/sched/goroutines:goroutines":
|
||||
if samples[i].Value.Uint64() < 1 {
|
||||
t.Error("number of goroutines is less than one")
|
||||
}
|
||||
}
|
||||
}
|
||||
if totalVirtual.got != totalVirtual.want {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue