24
24
25
25
from superset import feature_flag_manager
26
26
from superset .dashboards .permalink .types import DashboardPermalinkState
27
+ from superset .extensions import event_logger
27
28
from superset .utils .hashing import md5_sha_from_dict
28
29
from superset .utils .urls import modify_url_query
29
30
from superset .utils .webdriver import (
@@ -91,7 +92,8 @@ def get_screenshot(
91
92
self , user : User , window_size : WindowSize | None = None
92
93
) -> bytes | None :
93
94
driver = self .driver (window_size )
94
- self .screenshot = driver .get_screenshot (self .url , self .element , user )
95
+ with event_logger .log_context ("screenshot" , screenshot_url = self .url ):
96
+ self .screenshot = driver .get_screenshot (self .url , self .element , user )
95
97
return self .screenshot
96
98
97
99
def get (
@@ -169,7 +171,10 @@ def compute_and_cache( # pylint: disable=too-many-arguments
169
171
170
172
# Assuming all sorts of things can go wrong with Selenium
171
173
try :
172
- payload = self .get_screenshot (user = user , window_size = window_size )
174
+ with event_logger .log_context (
175
+ f"screenshot.compute.{ self .thumbnail_type } " , force = force
176
+ ):
177
+ payload = self .get_screenshot (user = user , window_size = window_size )
173
178
except Exception as ex : # pylint: disable=broad-except
174
179
logger .warning ("Failed at generating thumbnail %s" , ex , exc_info = True )
175
180
@@ -182,7 +187,10 @@ def compute_and_cache( # pylint: disable=too-many-arguments
182
187
183
188
if payload :
184
189
logger .info ("Caching thumbnail: %s" , cache_key )
185
- cache .set (cache_key , payload )
190
+ with event_logger .log_context (
191
+ f"screenshot.cache.{ self .thumbnail_type } " , force = force
192
+ ):
193
+ cache .set (cache_key , payload )
186
194
logger .info ("Done caching thumbnail" )
187
195
return payload
188
196
0 commit comments