Add counters for memory events.
Also ensure an event is emitted at startup. PiperOrigin-RevId: 224372065 Change-Id: I5f642b6d6b13c6468ee8f794effe285fcbbf29cf
This commit is contained in:
parent
4d8c7ae869
commit
685eaf119f
|
@ -12,6 +12,7 @@ go_library(
|
|||
":memory_events_go_proto",
|
||||
"//pkg/eventchannel",
|
||||
"//pkg/log",
|
||||
"//pkg/metric",
|
||||
"//pkg/sentry/kernel",
|
||||
"//pkg/sentry/usage",
|
||||
],
|
||||
|
|
|
@ -22,11 +22,15 @@ import (
|
|||
|
||||
"gvisor.googlesource.com/gvisor/pkg/eventchannel"
|
||||
"gvisor.googlesource.com/gvisor/pkg/log"
|
||||
"gvisor.googlesource.com/gvisor/pkg/metric"
|
||||
"gvisor.googlesource.com/gvisor/pkg/sentry/kernel"
|
||||
pb "gvisor.googlesource.com/gvisor/pkg/sentry/kernel/memevent/memory_events_go_proto"
|
||||
"gvisor.googlesource.com/gvisor/pkg/sentry/usage"
|
||||
)
|
||||
|
||||
var totalTicks = metric.MustCreateNewUint64Metric("/memory_events/ticks", false /*sync*/, "Total number of memory event periods that have elapsed since startup.")
|
||||
var totalEvents = metric.MustCreateNewUint64Metric("/memory_events/events", false /*sync*/, "Total number of memory events emitted.")
|
||||
|
||||
// MemoryEvents describes the configuration for the global memory event emitter.
|
||||
type MemoryEvents struct {
|
||||
k *kernel.Kernel
|
||||
|
@ -71,6 +75,10 @@ func (m *MemoryEvents) Start() {
|
|||
func (m *MemoryEvents) run() {
|
||||
m.done.Add(1)
|
||||
|
||||
// Emit the first event immediately on startup.
|
||||
totalTicks.Increment()
|
||||
m.emit()
|
||||
|
||||
ticker := time.NewTicker(m.period)
|
||||
defer ticker.Stop()
|
||||
|
||||
|
@ -80,6 +88,7 @@ func (m *MemoryEvents) run() {
|
|||
m.done.Done()
|
||||
return
|
||||
case <-ticker.C:
|
||||
totalTicks.Increment()
|
||||
m.emit()
|
||||
}
|
||||
}
|
||||
|
@ -94,6 +103,7 @@ func (m *MemoryEvents) emit() {
|
|||
snapshot, _ := usage.MemoryAccounting.Copy()
|
||||
total := totalPlatform + snapshot.Mapped
|
||||
|
||||
totalEvents.Increment()
|
||||
eventchannel.Emit(&pb.MemoryUsageEvent{
|
||||
Mapped: snapshot.Mapped,
|
||||
Total: total,
|
||||
|
|
Loading…
Reference in New Issue