summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/kernel/memevent
diff options
context:
space:
mode:
authorRahat Mahmood <rahat@google.com>2018-12-06 11:14:57 -0800
committerShentubot <shentubot@google.com>2018-12-06 11:15:47 -0800
commit685eaf119ffa6c44c4dcaec0e083bbdc0271231a (patch)
tree5d76cf5b1dec2b40e7be26a8ceca614bed7f5578 /pkg/sentry/kernel/memevent
parent4d8c7ae869a4e9bf60c7ea9aff79a0bee551fbc9 (diff)
Add counters for memory events.
Also ensure an event is emitted at startup. PiperOrigin-RevId: 224372065 Change-Id: I5f642b6d6b13c6468ee8f794effe285fcbbf29cf
Diffstat (limited to 'pkg/sentry/kernel/memevent')
-rw-r--r--pkg/sentry/kernel/memevent/BUILD1
-rw-r--r--pkg/sentry/kernel/memevent/memory_events.go10
2 files changed, 11 insertions, 0 deletions
diff --git a/pkg/sentry/kernel/memevent/BUILD b/pkg/sentry/kernel/memevent/BUILD
index e903badd3..dfd8dd062 100644
--- a/pkg/sentry/kernel/memevent/BUILD
+++ b/pkg/sentry/kernel/memevent/BUILD
@@ -12,6 +12,7 @@ go_library(
":memory_events_go_proto",
"//pkg/eventchannel",
"//pkg/log",
+ "//pkg/metric",
"//pkg/sentry/kernel",
"//pkg/sentry/usage",
],
diff --git a/pkg/sentry/kernel/memevent/memory_events.go b/pkg/sentry/kernel/memevent/memory_events.go
index f05ef1b64..1a8e86827 100644
--- a/pkg/sentry/kernel/memevent/memory_events.go
+++ b/pkg/sentry/kernel/memevent/memory_events.go
@@ -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,