Repository navigation
Commit d503d47
ref(core): Measure the performance-collection budget on a monotonic ticker (JAVA-579)
DefaultCompositePerformanceCollector decided a transaction had been
collecting for 30s by subtracting two options.getDateProvider()
readings. Those are wall-clock on every platform, including Android:
SentryNanotimeDate.nanoTimestamp() returns millisToNanos(unixDateMillis),
not its nanoTime component, so the extra precision that type exists for
never entered this comparison. A device time change therefore ended
collection early or kept it running past the budget.
Each CompositeData now holds a Deadline on a MonotonicTicker. The budget
is not a serialized value, so this only changes when the collector stops.
Two side effects worth review: the 30s boundary is now inclusive, where
the old strict `>` let a sample land exactly at 30s; and
addDataAndCheckTimeout no longer takes the shared clock reading, since
each transaction owns its own deadline. TestMonotonicTicker's field is
now volatile, as the timer thread reads a ticker the test thread
advances.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 7bf5574 commit d503d47
3 files changed
Lines changed: 35 additions & 37 deletions
File tree
- sentry-test-support/src/main/kotlin/io/sentry/time
- sentry/src
- main/java/io/sentry
- test/java/io/sentry
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
3 | 5 | | |
4 | 6 | | |
5 | 7 | | |
| |||
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
| 31 | + | |
29 | 32 | | |
30 | 33 | | |
31 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
32 | 42 | | |
| 43 | + | |
33 | 44 | | |
34 | 45 | | |
35 | 46 | | |
| |||
124 | 135 | | |
125 | 136 | | |
126 | 137 | | |
127 | | - | |
| 138 | + | |
128 | 139 | | |
129 | 140 | | |
130 | 141 | | |
| |||
212 | 223 | | |
213 | 224 | | |
214 | 225 | | |
215 | | - | |
| 226 | + | |
216 | 227 | | |
217 | 228 | | |
218 | 229 | | |
219 | 230 | | |
220 | | - | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
221 | 235 | | |
222 | 236 | | |
223 | 237 | | |
224 | 238 | | |
225 | 239 | | |
226 | 240 | | |
227 | | - | |
228 | | - | |
229 | 241 | | |
230 | 242 | | |
231 | | - | |
232 | | - | |
| 243 | + | |
233 | 244 | | |
234 | 245 | | |
235 | 246 | | |
236 | 247 | | |
237 | 248 | | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
| 249 | + | |
242 | 250 | | |
243 | 251 | | |
244 | 252 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
| 38 | + | |
37 | 39 | | |
38 | 40 | | |
39 | 41 | | |
| |||
65 | 67 | | |
66 | 68 | | |
67 | 69 | | |
68 | | - | |
| 70 | + | |
69 | 71 | | |
70 | 72 | | |
71 | 73 | | |
| |||
183 | 185 | | |
184 | 186 | | |
185 | 187 | | |
186 | | - | |
187 | 188 | | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
| 189 | + | |
198 | 190 | | |
199 | 191 | | |
200 | 192 | | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
201 | 196 | | |
202 | 197 | | |
203 | 198 | | |
204 | | - | |
205 | | - | |
| 199 | + | |
| 200 | + | |
206 | 201 | | |
207 | 202 | | |
208 | 203 | | |
| |||
214 | 209 | | |
215 | 210 | | |
216 | 211 | | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
| 212 | + | |
| 213 | + | |
226 | 214 | | |
227 | 215 | | |
228 | 216 | | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
229 | 220 | | |
230 | 221 | | |
231 | 222 | | |
232 | | - | |
233 | | - | |
| 223 | + | |
234 | 224 | | |
235 | 225 | | |
236 | 226 | | |
| |||
0 commit comments