4
4
from collections .abc import Sequence
5
5
from unittest import mock
6
6
7
+ import orjson
7
8
import pytest
8
- import rapidjson
9
9
from sentry_redis_tools .clients import StrictRedis
10
10
11
11
from sentry .spans .buffer import FlushedSegment , OutputSpan , SegmentKey , Span , SpansBuffer
@@ -38,8 +38,8 @@ def _segment_id(project_id: int, trace_id: str, span_id: str) -> SegmentKey:
38
38
return f"span-buf:z:{{{ project_id } :{ trace_id } }}:{ span_id } " .encode ("ascii" )
39
39
40
40
41
- def _payload (span_id : bytes ) -> bytes :
42
- return rapidjson .dumps ({"span_id" : span_id }). encode ( "ascii" )
41
+ def _payload (span_id : str ) -> bytes :
42
+ return orjson .dumps ({"span_id" : span_id })
43
43
44
44
45
45
def _output_segment (span_id : bytes , segment_id : bytes , is_segment : bool ) -> OutputSpan :
@@ -134,31 +134,31 @@ def process_spans(spans: Sequence[Span | _SplitBatch], buffer: SpansBuffer, now)
134
134
itertools .permutations (
135
135
[
136
136
Span (
137
- payload = _payload (b "a" * 16 ),
137
+ payload = _payload ("a" * 16 ),
138
138
trace_id = "a" * 32 ,
139
139
span_id = "a" * 16 ,
140
140
parent_span_id = "b" * 16 ,
141
141
project_id = 1 ,
142
142
end_timestamp_precise = 1700000000.0 ,
143
143
),
144
144
Span (
145
- payload = _payload (b "d" * 16 ),
145
+ payload = _payload ("d" * 16 ),
146
146
trace_id = "a" * 32 ,
147
147
span_id = "d" * 16 ,
148
148
parent_span_id = "b" * 16 ,
149
149
project_id = 1 ,
150
150
end_timestamp_precise = 1700000000.0 ,
151
151
),
152
152
Span (
153
- payload = _payload (b "c" * 16 ),
153
+ payload = _payload ("c" * 16 ),
154
154
trace_id = "a" * 32 ,
155
155
span_id = "c" * 16 ,
156
156
parent_span_id = "b" * 16 ,
157
157
project_id = 1 ,
158
158
end_timestamp_precise = 1700000000.0 ,
159
159
),
160
160
Span (
161
- payload = _payload (b "b" * 16 ),
161
+ payload = _payload ("b" * 16 ),
162
162
trace_id = "a" * 32 ,
163
163
span_id = "b" * 16 ,
164
164
parent_span_id = None ,
@@ -203,7 +203,7 @@ def test_basic(buffer: SpansBuffer, spans):
203
203
itertools .permutations (
204
204
[
205
205
Span (
206
- payload = _payload (b "d" * 16 ),
206
+ payload = _payload ("d" * 16 ),
207
207
trace_id = "a" * 32 ,
208
208
span_id = "d" * 16 ,
209
209
parent_span_id = "b" * 16 ,
@@ -212,15 +212,15 @@ def test_basic(buffer: SpansBuffer, spans):
212
212
),
213
213
_SplitBatch (),
214
214
Span (
215
- payload = _payload (b "b" * 16 ),
215
+ payload = _payload ("b" * 16 ),
216
216
trace_id = "a" * 32 ,
217
217
span_id = "b" * 16 ,
218
218
parent_span_id = "a" * 16 ,
219
219
project_id = 1 ,
220
220
end_timestamp_precise = 1700000000.0 ,
221
221
),
222
222
Span (
223
- payload = _payload (b "a" * 16 ),
223
+ payload = _payload ("a" * 16 ),
224
224
trace_id = "a" * 32 ,
225
225
span_id = "a" * 16 ,
226
226
parent_span_id = None ,
@@ -229,7 +229,7 @@ def test_basic(buffer: SpansBuffer, spans):
229
229
end_timestamp_precise = 1700000000.0 ,
230
230
),
231
231
Span (
232
- payload = _payload (b "c" * 16 ),
232
+ payload = _payload ("c" * 16 ),
233
233
trace_id = "a" * 32 ,
234
234
span_id = "c" * 16 ,
235
235
parent_span_id = "a" * 16 ,
@@ -273,39 +273,39 @@ def test_deep(buffer: SpansBuffer, spans):
273
273
itertools .permutations (
274
274
[
275
275
Span (
276
- payload = _payload (b "e" * 16 ),
276
+ payload = _payload ("e" * 16 ),
277
277
trace_id = "a" * 32 ,
278
278
span_id = "e" * 16 ,
279
279
parent_span_id = "d" * 16 ,
280
280
project_id = 1 ,
281
281
end_timestamp_precise = 1700000000.0 ,
282
282
),
283
283
Span (
284
- payload = _payload (b "d" * 16 ),
284
+ payload = _payload ("d" * 16 ),
285
285
trace_id = "a" * 32 ,
286
286
span_id = "d" * 16 ,
287
287
parent_span_id = "b" * 16 ,
288
288
project_id = 1 ,
289
289
end_timestamp_precise = 1700000000.0 ,
290
290
),
291
291
Span (
292
- payload = _payload (b "b" * 16 ),
292
+ payload = _payload ("b" * 16 ),
293
293
trace_id = "a" * 32 ,
294
294
span_id = "b" * 16 ,
295
295
parent_span_id = "c" * 16 ,
296
296
project_id = 1 ,
297
297
end_timestamp_precise = 1700000000.0 ,
298
298
),
299
299
Span (
300
- payload = _payload (b "c" * 16 ),
300
+ payload = _payload ("c" * 16 ),
301
301
trace_id = "a" * 32 ,
302
302
span_id = "c" * 16 ,
303
303
parent_span_id = "a" * 16 ,
304
304
project_id = 1 ,
305
305
end_timestamp_precise = 1700000000.0 ,
306
306
),
307
307
Span (
308
- payload = _payload (b "a" * 16 ),
308
+ payload = _payload ("a" * 16 ),
309
309
trace_id = "a" * 32 ,
310
310
span_id = "a" * 16 ,
311
311
parent_span_id = None ,
@@ -351,31 +351,31 @@ def test_deep2(buffer: SpansBuffer, spans):
351
351
itertools .permutations (
352
352
[
353
353
Span (
354
- payload = _payload (b "c" * 16 ),
354
+ payload = _payload ("c" * 16 ),
355
355
trace_id = "a" * 32 ,
356
356
span_id = "c" * 16 ,
357
357
parent_span_id = "b" * 16 ,
358
358
project_id = 1 ,
359
359
end_timestamp_precise = 1700000000.0 ,
360
360
),
361
361
Span (
362
- payload = _payload (b "d" * 16 ),
362
+ payload = _payload ("d" * 16 ),
363
363
trace_id = "a" * 32 ,
364
364
span_id = "d" * 16 ,
365
365
parent_span_id = "b" * 16 ,
366
366
project_id = 1 ,
367
367
end_timestamp_precise = 1700000000.0 ,
368
368
),
369
369
Span (
370
- payload = _payload (b "e" * 16 ),
370
+ payload = _payload ("e" * 16 ),
371
371
trace_id = "a" * 32 ,
372
372
span_id = "e" * 16 ,
373
373
parent_span_id = "b" * 16 ,
374
374
project_id = 1 ,
375
375
end_timestamp_precise = 1700000000.0 ,
376
376
),
377
377
Span (
378
- payload = _payload (b "b" * 16 ),
378
+ payload = _payload ("b" * 16 ),
379
379
trace_id = "a" * 32 ,
380
380
span_id = "b" * 16 ,
381
381
parent_span_id = None ,
@@ -427,7 +427,7 @@ def test_parent_in_other_project(buffer: SpansBuffer, spans):
427
427
shallow_permutations (
428
428
[
429
429
Span (
430
- payload = _payload (b "c" * 16 ),
430
+ payload = _payload ("c" * 16 ),
431
431
trace_id = "a" * 32 ,
432
432
span_id = "c" * 16 ,
433
433
parent_span_id = "d" * 16 ,
@@ -436,23 +436,23 @@ def test_parent_in_other_project(buffer: SpansBuffer, spans):
436
436
end_timestamp_precise = 1700000000.0 ,
437
437
),
438
438
Span (
439
- payload = _payload (b "d" * 16 ),
439
+ payload = _payload ("d" * 16 ),
440
440
trace_id = "a" * 32 ,
441
441
span_id = "d" * 16 ,
442
442
parent_span_id = "b" * 16 ,
443
443
project_id = 1 ,
444
444
end_timestamp_precise = 1700000000.0 ,
445
445
),
446
446
Span (
447
- payload = _payload (b "e" * 16 ),
447
+ payload = _payload ("e" * 16 ),
448
448
trace_id = "a" * 32 ,
449
449
span_id = "e" * 16 ,
450
450
parent_span_id = "b" * 16 ,
451
451
project_id = 1 ,
452
452
end_timestamp_precise = 1700000000.0 ,
453
453
),
454
454
Span (
455
- payload = _payload (b "b" * 16 ),
455
+ payload = _payload ("b" * 16 ),
456
456
trace_id = "a" * 32 ,
457
457
span_id = "b" * 16 ,
458
458
parent_span_id = None ,
@@ -507,7 +507,7 @@ def test_parent_in_other_project_and_nested_is_segment_span(buffer: SpansBuffer,
507
507
def test_flush_rebalance (buffer : SpansBuffer ):
508
508
spans = [
509
509
Span (
510
- payload = _payload (b "a" * 16 ),
510
+ payload = _payload ("a" * 16 ),
511
511
trace_id = "a" * 32 ,
512
512
span_id = "a" * 16 ,
513
513
parent_span_id = None ,
@@ -545,14 +545,14 @@ def test_compression_functionality(compression_level):
545
545
buffer = SpansBuffer (assigned_shards = list (range (32 )))
546
546
547
547
def make_payload (span_id : str ):
548
- return rapidjson .dumps (
548
+ return orjson .dumps (
549
549
{
550
550
"span_id" : span_id ,
551
551
"trace_id" : "a" * 32 ,
552
552
"data" : {"message" : "x" * 1000 },
553
553
"extra_data" : {"field" : "y" * 500 },
554
554
}
555
- ). encode ( "ascii" )
555
+ )
556
556
557
557
spans = [
558
558
Span (
0 commit comments