File tree 2 files changed +26
-3
lines changed
profiles/consumers/process
2 files changed +26
-3
lines changed Original file line number Diff line number Diff line change 3107
3107
)
3108
3108
3109
3109
# Taskbroker flags
3110
+ register (
3111
+ "taskworker.try_compress.profile_metrics" ,
3112
+ default = 0.0 ,
3113
+ type = Float ,
3114
+ flags = FLAG_AUTOMATOR_MODIFIABLE ,
3115
+ )
3110
3116
3111
3117
register (
3112
3118
"taskworker.route.overrides" ,
Original file line number Diff line number Diff line change
1
+ import random
1
2
from base64 import b64encode
2
3
from collections .abc import Iterable , Mapping
3
4
10
11
from sentry import options
11
12
from sentry .processing .backpressure .arroyo import HealthChecker , create_backpressure_step
12
13
from sentry .profiles .task import process_profile_task
14
+ from sentry .utils import metrics
13
15
14
16
15
17
def process_message (message : Message [KafkaPayload ]) -> None :
16
18
sampled = is_sampled (message .payload .headers )
17
19
18
20
if sampled or options .get ("profiling.profile_metrics.unsampled_profiles.enabled" ):
19
- process_profile_task .delay (
20
- payload = b64encode (message .payload .value ).decode ("utf-8" ), sampled = sampled
21
- )
21
+ b64encoded = b64encode (message .payload .value ).decode ("utf-8" )
22
+ process_profile_task .delay (payload = b64encoded , sampled = sampled )
23
+ metrics .distribution ("profiling.profile_metrics.uncompressed_bytes" , len (b64encoded ))
24
+
25
+ if random .random () < options .get ("taskworker.try_compress.profile_metrics" ):
26
+ import time
27
+ import zlib
28
+
29
+ start_time = time .perf_counter ()
30
+ metrics .distribution (
31
+ "profiling.profile_metrics.compressed_bytes" ,
32
+ len (b64encode (zlib .compress (message .payload .value ))),
33
+ )
34
+ end_time = time .perf_counter ()
35
+ metrics .distribution (
36
+ "profiling.profile_metrics.compression_time" ,
37
+ end_time - start_time ,
38
+ )
22
39
23
40
24
41
class ProcessProfileStrategyFactory (ProcessingStrategyFactory [KafkaPayload ]):
You can’t perform that action at this time.
0 commit comments