|
102 | 102 | expect(DB::table('pulse_aggregates')->where('period', 1440)->count())->toBe(1);
|
103 | 103 | });
|
104 | 104 |
|
| 105 | +it('trims aggregates to the configured storage duration when shorter than the bucket period duration', function () { |
| 106 | + Config::set('pulse.storage.trim.keep', '23 minutes'); |
| 107 | + Date::setTestNow('2000-01-01 00:00:00'); // Bucket: 2000-01-01 00:00:00 |
| 108 | + Pulse::record('foo', 'xxxx', 1)->count(); |
| 109 | + Pulse::ingest(); |
| 110 | + Pulse::stopRecording(); |
| 111 | + expect(DB::table('pulse_aggregates')->where('period', 1440)->count())->toBe(1); |
| 112 | + |
| 113 | + Date::setTestNow('2000-01-01 00:22:59'); |
| 114 | + App::make(DatabaseStorage::class)->trim(); |
| 115 | + expect(DB::table('pulse_aggregates')->where('period', 1440)->count())->toBe(1); |
| 116 | + |
| 117 | + Date::setTestNow('2000-01-01 00:23:00'); |
| 118 | + Pulse::ignore(fn () => App::make(DatabaseStorage::class)->trim()); |
| 119 | + expect(DB::table('pulse_aggregates')->where('period', 1440)->count())->toBe(0); |
| 120 | +}); |
| 121 | + |
105 | 122 | it('trims aggregates once the 7 day bucket is no longer relevant', function () {
|
106 | 123 | Date::setTestNow('2000-01-01 02:23:59'); // Bucket: 1999-12-31 23:36:00
|
107 | 124 | Pulse::record('foo', 'xxxx', 1)->count();
|
|
124 | 141 | });
|
125 | 142 |
|
126 | 143 | it('can configure days of data to keep when trimming', function () {
|
127 |
| - Config::set('pulse.ingest.trim.keep', '14 days'); |
| 144 | + Config::set('pulse.storage.trim.keep', '14 days'); |
128 | 145 |
|
129 | 146 | Date::setTestNow('2000-01-01 00:00:04');
|
130 |
| - Pulse::record('foo', 'xxxx', 1); |
| 147 | + Pulse::record('foo', 'xxxx', 1)->count(); |
| 148 | + Pulse::set('type', 'foo', 'value'); |
131 | 149 | Date::setTestNow('2000-01-01 00:00:05');
|
132 |
| - Pulse::record('bar', 'xxxx', 1); |
| 150 | + Pulse::record('bar', 'xxxx', 1)->count(); |
| 151 | + Pulse::set('type', 'bar', 'value'); |
133 | 152 | Date::setTestNow('2000-01-01 00:00:06');
|
134 |
| - Pulse::record('baz', 'xxxx', 1); |
| 153 | + Pulse::record('baz', 'xxxx', 1)->count(); |
| 154 | + Pulse::set('type', 'baz', 'value'); |
135 | 155 | Pulse::ingest();
|
136 | 156 |
|
137 | 157 | Pulse::stopRecording();
|
138 | 158 | Date::setTestNow('2000-01-15 00:00:05');
|
139 | 159 | App::make(DatabaseStorage::class)->trim();
|
140 | 160 |
|
141 | 161 | expect(DB::table('pulse_entries')->pluck('type')->all())->toBe(['baz']);
|
| 162 | + expect(DB::table('pulse_values')->pluck('key')->all())->toBe(['baz']); |
142 | 163 | });
|
0 commit comments