53
53
from deltacat .compute .compactor .model .compactor_version import CompactorVersion
54
54
from deltacat .compute .compactor .utils .sort_key import validate_sort_keys
55
55
from deltacat .utils .resources import get_current_node_peak_memory_usage_in_bytes
56
+ from deltacat .utils .metrics import MetricsConfigSingleton
56
57
57
58
58
59
if importlib .util .find_spec ("memray" ):
@@ -139,6 +140,10 @@ def compact_partition(
139
140
if s3_client_kwargs is None :
140
141
s3_client_kwargs = {}
141
142
143
+ if metrics_config :
144
+ # Initialize MetricsConfigSingleton
145
+ MetricsConfigSingleton .instance (metrics_config )
146
+
142
147
# memray official documentation link:
143
148
# https://bloomberg.github.io/memray/getting_started.html
144
149
with memray .Tracker (
@@ -166,7 +171,6 @@ def compact_partition(
166
171
rebase_source_partition_locator ,
167
172
rebase_source_partition_high_watermark ,
168
173
enable_profiler ,
169
- metrics_config ,
170
174
list_deltas_kwargs ,
171
175
read_kwargs_provider ,
172
176
s3_table_writer_kwargs ,
@@ -217,7 +221,6 @@ def _execute_compaction_round(
217
221
rebase_source_partition_locator : Optional [PartitionLocator ],
218
222
rebase_source_partition_high_watermark : Optional [int ],
219
223
enable_profiler : Optional [bool ],
220
- metrics_config : Optional [MetricsConfig ],
221
224
list_deltas_kwargs : Optional [Dict [str , Any ]],
222
225
read_kwargs_provider : Optional [ReadKwargsProvider ],
223
226
s3_table_writer_kwargs : Optional [Dict [str , Any ]],
@@ -438,7 +441,6 @@ def _execute_compaction_round(
438
441
num_buckets = hash_bucket_count ,
439
442
num_groups = max_parallelism ,
440
443
enable_profiler = enable_profiler ,
441
- metrics_config = metrics_config ,
442
444
read_kwargs_provider = read_kwargs_provider ,
443
445
object_store = object_store ,
444
446
deltacat_storage = deltacat_storage ,
@@ -453,7 +455,8 @@ def _execute_compaction_round(
453
455
hb_end = time .monotonic ()
454
456
hb_results_retrieved_at = time .time ()
455
457
456
- telemetry_time_hb = compaction_audit .save_step_stats (
458
+ cluster_util_after_task_latency = 0
459
+ cluster_util_after_task_latency += compaction_audit .save_step_stats (
457
460
CompactionSessionAuditInfo .HASH_BUCKET_STEP_NAME ,
458
461
hb_results ,
459
462
hb_results_retrieved_at ,
@@ -528,7 +531,6 @@ def _execute_compaction_round(
528
531
sort_keys = sort_keys ,
529
532
num_materialize_buckets = num_materialize_buckets ,
530
533
enable_profiler = enable_profiler ,
531
- metrics_config = metrics_config ,
532
534
object_store = object_store ,
533
535
)
534
536
@@ -546,7 +548,7 @@ def _execute_compaction_round(
546
548
total_dd_record_count = sum ([ddr .deduped_record_count for ddr in dd_results ])
547
549
logger .info (f"Deduped { total_dd_record_count } records..." )
548
550
549
- telemetry_time_dd = compaction_audit .save_step_stats (
551
+ cluster_util_after_task_latency + = compaction_audit .save_step_stats (
550
552
CompactionSessionAuditInfo .DEDUPE_STEP_NAME ,
551
553
dd_results ,
552
554
dedupe_results_retrieved_at ,
@@ -605,7 +607,6 @@ def _execute_compaction_round(
605
607
max_records_per_output_file = records_per_compacted_file ,
606
608
compacted_file_content_type = compacted_file_content_type ,
607
609
enable_profiler = enable_profiler ,
608
- metrics_config = metrics_config ,
609
610
read_kwargs_provider = read_kwargs_provider ,
610
611
s3_table_writer_kwargs = s3_table_writer_kwargs ,
611
612
object_store = object_store ,
@@ -623,7 +624,7 @@ def _execute_compaction_round(
623
624
materialize_end = time .monotonic ()
624
625
materialize_results_retrieved_at = time .time ()
625
626
626
- telemetry_time_materialize = compaction_audit .save_step_stats (
627
+ cluster_util_after_task_latency + = compaction_audit .save_step_stats (
627
628
CompactionSessionAuditInfo .MATERIALIZE_STEP_NAME ,
628
629
mat_results ,
629
630
materialize_results_retrieved_at ,
@@ -685,8 +686,15 @@ def _execute_compaction_round(
685
686
session_peak_memory
686
687
)
687
688
689
+ metrics_telemetry_time = 0
690
+ try :
691
+ metrics_telemetry_time = MetricsConfigSingleton .instance ().total_telemetry_time
692
+ except Exception as e :
693
+ logger .warn (
694
+ f"Skipping calculating metrics telemetry time due to exception: { e } "
695
+ )
688
696
compaction_audit .save_round_completion_stats (
689
- mat_results , telemetry_time_hb + telemetry_time_dd + telemetry_time_materialize
697
+ mat_results , cluster_util_after_task_latency + metrics_telemetry_time
690
698
)
691
699
692
700
s3_utils .upload (
0 commit comments