1package daemon
2
3import "github.com/bnema/vev/internal/domain"
4
5func (d *Daemon) logSessionRestoreComplete(record domain.CatalogueRecord, generation uint64, fallback bool) {
6 d.log.Info("session_restore_complete",
7 "session", record.Name,
8 "incarnation", record.IncarnationID.String(),
9 "generation", generation,
10 "fallback", fallback,
11 )
12}
13
14func (d *Daemon) logSessionDegraded(record domain.CatalogueRecord, reasonCode string) {
15 d.log.Warn("session_degraded",
16 "session", record.Name,
17 "incarnation", record.IncarnationID.String(),
18 "reason_code", reasonCode,
19 )
20}
21
22func (d *Daemon) logStartupRecoveryCounts(restoring int) {
23 var records []domain.CatalogueRecord
24 if d.persistEnabled && d.catalogue != nil {
25 var err error
26 records, err = d.catalogue.Records()
27 if err != nil {
28 d.log.Error("daemon_startup_catalogue_read_failed", "err", err)
29 records = d.inactiveRecords()
30 }
31 } else {
32 records = d.inactiveRecords()
33 }
34 healthy, fresh, broken := 0, 0, 0
35 for _, record := range records {
36 switch {
37 case record.DegradedReason != "":
38 broken++
39 case record.Committed == nil:
40 fresh++
41 default:
42 healthy++
43 }
44 }
45 d.log.Info("daemon_startup_complete",
46 "healthy", healthy,
47 "fresh", fresh,
48 "restoring", restoring,
49 "broken", broken,
50 )
51}
52
53func (d *Daemon) inactiveRecords() []domain.CatalogueRecord {
54 d.mu.Lock()
55 defer d.mu.Unlock()
56 records := make([]domain.CatalogueRecord, 0, len(d.inactive))
57 for _, entry := range d.inactive {
58 records = append(records, entry.record)
59 }
60 return records
61}