Record memory usage continuously in OOM report

This commit is contained in:
世界
2026-09-02 20:01:03 +08:00
parent 0944cd9d7b
commit 21b8fcacc6
22 changed files with 1277 additions and 333 deletions
+6 -3
View File
@@ -33,6 +33,7 @@ type Daemon struct {
logger log.ContextLogger
startedService *daemon.StartedService
powerManager *powerreport.Manager
oomRecorder *oomkiller.Recorder
server *grpc.Server
runtimeWorkingDirectory string
lifecycleAccess sync.Mutex
@@ -63,14 +64,15 @@ func newDaemon() (*Daemon, error) {
Context: ctx,
LogMaxLines: 3000,
})
reporter := libbox.NewOOMReporter(d.startedService)
service.MustRegister[oomkiller.OOMReporter](ctx, reporter)
d.oomRecorder = oomkiller.NewRecorder(libbox.OOMRecorderOptions(d.startedService))
service.MustRegister[*oomkiller.Recorder](ctx, d.oomRecorder)
d.oomRecorder.Start()
d.powerManager = powerreport.NewManager()
service.MustRegister[*powerreport.Manager](ctx, d.powerManager)
managedService := daemon.NewManagedService(daemon.ManagedServiceOptions{
Handler: &managedHandler{d},
Debug: debugEnabled,
OOMReporter: reporter,
OOMRecorder: d.oomRecorder,
})
authorizer := newAuthorizer(d)
serverOptions := []grpc.ServerOption{
@@ -289,6 +291,7 @@ func (d *Daemon) Close() {
}
_ = d.startedService.CloseService()
d.startedService.Close()
_ = d.oomRecorder.Close()
if d.platform != nil {
_ = d.platform.Close()
}