@@ -289,11 +289,9 @@ async def process_did_change_request(
289289 if document_path not in self .server_state .opened_documents :
290290 return
291291
292- time_since_last_ready_ms = (
293- self .server_state .status_tracker .milliseconds_not_ready ()
294- )
295- server_status_before = self .server_state .status_tracker .get_status ().value
292+ daemon_status_before = self .server_state .status_tracker .get_status ()
296293 did_change_timer = timer .Timer ()
294+
297295 process_unsaved_changes = (
298296 self .server_state .server_options .language_server_features .unsaved_changes .is_enabled ()
299297 )
@@ -324,10 +322,9 @@ async def process_did_change_request(
324322 self .server_state .opened_documents
325323 ),
326324 "duration_ms" : did_change_timer .stop_in_millisecond (),
327- "time_since_last_ready_ms" : time_since_last_ready_ms ,
328- "server_status_before" : str (server_status_before ),
329325 "error_message" : error_message ,
330326 "overlays_enabled" : process_unsaved_changes ,
327+ ** daemon_status_before .as_telemetry_dict (),
331328 },
332329 activity_key ,
333330 )
@@ -347,10 +344,7 @@ async def process_did_save_request(
347344 if document_path not in self .server_state .opened_documents :
348345 return
349346
350- time_since_last_ready_ms = (
351- self .server_state .status_tracker .milliseconds_not_ready ()
352- )
353- server_status_before = self .server_state .status_tracker .get_status ().value
347+ daemon_status_before = self .server_state .status_tracker .get_status ()
354348
355349 code_changes = self .server_state .opened_documents [document_path ].code
356350
@@ -371,11 +365,10 @@ async def process_did_save_request(
371365 "server_state_open_documents_count" : len (
372366 self .server_state .opened_documents
373367 ),
374- "server_status_before" : str (server_status_before ),
375- "time_since_last_ready_ms" : time_since_last_ready_ms ,
376368 # We don't do any blocking work on didSave, but analytics are easier if
377369 # we avoid needlessly introducing NULL values.
378370 "duration_ms" : 0 ,
371+ ** daemon_status_before .as_telemetry_dict (),
379372 },
380373 activity_key ,
381374 )
@@ -392,11 +385,10 @@ async def process_type_coverage_request(
392385 f"Document URI is not a file: { parameters .text_document .uri } "
393386 )
394387 document_path = document_path .resolve ()
395- time_since_last_ready_ms = (
396- self .server_state .status_tracker .milliseconds_not_ready ()
397- )
398- server_status_before = self .server_state .status_tracker .get_status ().value
388+
389+ daemon_status_before = self .server_state .status_tracker .get_status ()
399390 type_coverage_timer = timer .Timer ()
391+
400392 response = await self .querier .get_type_coverage (path = document_path )
401393 if response is not None :
402394 await lsp .write_json_rpc (
@@ -413,12 +405,8 @@ async def process_type_coverage_request(
413405 "operation" : "typeCoverage" ,
414406 "filePath" : str (document_path ),
415407 "duration_ms" : type_coverage_timer .stop_in_millisecond (),
416- "time_since_last_ready_ms" : time_since_last_ready_ms ,
417- "server_state_open_documents_count" : len (
418- self .server_state .opened_documents
419- ),
420- "server_status_before" : str (server_status_before ),
421408 "coverage_type" : self .get_language_server_features ().type_coverage .value ,
409+ ** daemon_status_before .as_telemetry_dict (),
422410 },
423411 activity_key ,
424412 )
@@ -451,11 +439,9 @@ async def process_hover_request(
451439 ),
452440 )
453441 else :
454- time_since_last_ready_ms = (
455- self .server_state .status_tracker .milliseconds_not_ready ()
456- )
457- server_status_before = self .server_state .status_tracker .get_status ().value
442+ daemon_status_before = self .server_state .status_tracker .get_status ()
458443 hover_timer = timer .Timer ()
444+
459445 await self .update_overlay_if_needed (document_path )
460446 result = await self .querier .get_hover (
461447 path = document_path ,
@@ -489,13 +475,12 @@ async def process_hover_request(
489475 "nonEmpty" : len (result .contents ) > 0 ,
490476 "response" : raw_result ,
491477 "duration_ms" : hover_timer .stop_in_millisecond (),
492- "time_since_last_ready_ms" : time_since_last_ready_ms ,
493478 "server_state_open_documents_count" : len (
494479 self .server_state .opened_documents
495480 ),
496- "server_status_before" : str (server_status_before ),
497481 "error_message" : error_message ,
498482 "overlays_enabled" : self .server_state .server_options .language_server_features .unsaved_changes .is_enabled (),
483+ ** daemon_status_before .as_telemetry_dict (),
499484 },
500485 activity_key ,
501486 )
@@ -559,10 +544,7 @@ async def process_definition_request(
559544 result = lsp .LspLocation .cached_schema ().dump ([], many = True ),
560545 ),
561546 )
562- time_since_last_ready_ms = (
563- self .server_state .status_tracker .milliseconds_not_ready ()
564- )
565- server_status_before = self .server_state .status_tracker .get_status ().value
547+ daemon_status_before = self .server_state .status_tracker .get_status ()
566548 shadow_mode = self .get_language_server_features ().definition .is_shadow ()
567549 # In shadow mode, we need to return an empty response immediately
568550 if shadow_mode :
@@ -608,17 +590,16 @@ async def process_definition_request(
608590 "count" : len (output_result ),
609591 "response" : output_result ,
610592 "duration_ms" : result_with_durations .overall_duration ,
611- "time_since_last_ready_ms" : time_since_last_ready_ms ,
612593 "overlay_update_duration" : result_with_durations .overlay_update_duration ,
613594 "query_duration" : result_with_durations .query_duration ,
614595 "server_state_open_documents_count" : len (
615596 self .server_state .opened_documents
616597 ),
617- "server_status_before" : str (server_status_before ),
618598 "overlays_enabled" : self .server_state .server_options .language_server_features .unsaved_changes .is_enabled (),
619599 "error_message" : error_message ,
620600 "is_dirty" : self .server_state .opened_documents [document_path ].is_dirty ,
621601 "truncated_file_contents" : source_code_if_sampled ,
602+ ** daemon_status_before .as_telemetry_dict (),
622603 },
623604 activity_key ,
624605 )
0 commit comments