chore: add tallyman events for ai seat tracking (#22689)

AI seat tracking inserted as heartbeat into usage table.
This commit is contained in:
Steven Masley
2026-03-18 09:30:22 -05:00
committed by GitHub
parent b83b93ea5c
commit 84de391f26
25 changed files with 860 additions and 34 deletions
@@ -3020,7 +3020,7 @@ func TestCompleteJob(t *testing.T) {
// We never expect a usage event to be collected for
// template imports.
require.Empty(t, fakeUsageInserter.collectedEvents)
require.Equal(t, 0, fakeUsageInserter.TotalEventCount())
})
}
})
@@ -3371,13 +3371,13 @@ func TestCompleteJob(t *testing.T) {
if tc.expectUsageEvent {
// Check that a usage event was collected.
require.Len(t, fakeUsageInserter.collectedEvents, 1)
require.Len(t, fakeUsageInserter.GetDiscreteEvents(), 1)
require.Equal(t, usagetypes.DCManagedAgentsV1{
Count: 1,
}, fakeUsageInserter.collectedEvents[0])
}, fakeUsageInserter.GetDiscreteEvents()[0])
} else {
// Check that no usage event was collected.
require.Empty(t, fakeUsageInserter.collectedEvents)
require.Equal(t, 0, fakeUsageInserter.TotalEventCount())
}
})
}
@@ -5032,21 +5032,10 @@ func (s *fakeStream) cancel() {
s.c.Broadcast()
}
type fakeUsageInserter struct {
collectedEvents []usagetypes.Event
}
var _ usage.Inserter = &fakeUsageInserter{}
func newFakeUsageInserter() (*fakeUsageInserter, *atomic.Pointer[usage.Inserter]) {
func newFakeUsageInserter() (*coderdtest.UsageInserter, *atomic.Pointer[usage.Inserter]) {
poitr := &atomic.Pointer[usage.Inserter]{}
fake := &fakeUsageInserter{}
fake := coderdtest.NewUsageInserter()
var inserter usage.Inserter = fake
poitr.Store(&inserter)
return fake, poitr
}
func (f *fakeUsageInserter) InsertDiscreteUsageEvent(_ context.Context, _ database.Store, event usagetypes.DiscreteEvent) error {
f.collectedEvents = append(f.collectedEvents, event)
return nil
}