@@ -101,15 +101,20 @@ def _get_profiles_producer_from_topic(topic: Topic) -> KafkaProducer:
101
101
logger = logging .getLogger (__name__ )
102
102
103
103
104
- def decode_payload (encoded : str ) -> dict [str , Any ]:
105
- try :
106
- res = msgpack .unpackb (zlib .decompress (b64decode (encoded .encode ("utf-8" ))), use_list = False )
107
- metrics .incr ("profiling.profile_metrics.decompress" , tags = {"status" : "ok" })
108
- return res
109
- except Exception as e :
110
- logger .exception ("Failed to decompress compressed profile" , extra = {"error" : e })
111
- metrics .incr ("profiling.profile_metrics.decompress" , tags = {"status" : "err" })
112
- raise
104
+ def decode_payload (encoded : str , compressed_profile : bool ) -> dict [str , Any ]:
105
+ if compressed_profile :
106
+ try :
107
+ res = msgpack .unpackb (
108
+ zlib .decompress (b64decode (encoded .encode ("utf-8" ))), use_list = False
109
+ )
110
+ metrics .incr ("profiling.profile_metrics.decompress" , tags = {"status" : "ok" })
111
+ return res
112
+ except Exception as e :
113
+ logger .exception ("Failed to decompress compressed profile" , extra = {"error" : e })
114
+ metrics .incr ("profiling.profile_metrics.decompress" , tags = {"status" : "err" })
115
+ raise
116
+ else :
117
+ return msgpack .unpackb (b64decode (encoded .encode ("utf-8" )), use_list = False )
113
118
114
119
115
120
def encode_payload (message : dict [str , Any ]) -> str :
@@ -146,13 +151,14 @@ def process_profile_task(
146
151
profile : Profile | None = None ,
147
152
payload : str | None = None ,
148
153
sampled : bool = True ,
154
+ compressed_profile : bool = True ,
149
155
** kwargs : Any ,
150
156
) -> None :
151
157
if not sampled and not options .get ("profiling.profile_metrics.unsampled_profiles.enabled" ):
152
158
return
153
159
154
160
if payload :
155
- message_dict = decode_payload (payload )
161
+ message_dict = decode_payload (payload , compressed_profile )
156
162
157
163
profile = json .loads (message_dict ["payload" ], use_rapid_json = True )
158
164
0 commit comments