Skip to content

Commit 19493bf

Browse files
committed
bank: fix monitoring timestamps
1 parent 4a7f10e commit 19493bf

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

src/disco/gui/fd_gui.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2626,7 +2626,7 @@ fd_gui_became_leader( fd_gui_t * gui,
26262626
if( FD_UNLIKELY( !lslot ) ) return;
26272627

26282628
slot->max_compute_units = (uint)max_compute_units;
2629-
lslot->leader_start_time = start_time_nanos;
2629+
lslot->leader_start_time = fd_long_if( lslot->leader_start_time==LONG_MAX, start_time_nanos, lslot->leader_start_time );
26302630
lslot->leader_end_time = end_time_nanos;
26312631
if( FD_LIKELY( lslot->txs.microblocks_upper_bound==USHORT_MAX ) ) lslot->txs.microblocks_upper_bound = (ushort)max_microblocks;
26322632

@@ -2663,6 +2663,8 @@ fd_gui_microblock_execution_begin( fd_gui_t * gui,
26632663
fd_gui_leader_slot_t * lslot = fd_gui_get_leader_slot( gui, _slot );
26642664
if( FD_UNLIKELY( !lslot ) ) return;
26652665

2666+
lslot->leader_start_time = fd_long_if( lslot->leader_start_time==LONG_MAX, now, lslot->leader_start_time );
2667+
26662668
if( FD_UNLIKELY( lslot->txs.start_offset==ULONG_MAX ) ) lslot->txs.start_offset = pack_txn_idx;
26672669
else lslot->txs.start_offset = fd_ulong_min( lslot->txs.start_offset, pack_txn_idx );
26682670

src/disco/gui/fd_gui_printf.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1407,7 +1407,7 @@ fd_gui_printf_slot_request( fd_gui_t * gui,
14071407
if( FD_UNLIKELY( duration_nanos==LONG_MAX ) ) jsonp_null( gui->http, "duration_nanos" );
14081408
else jsonp_long( gui->http, "duration_nanos", duration_nanos );
14091409
if( FD_UNLIKELY( slot->completed_time==LONG_MAX ) ) jsonp_null( gui->http, "completed_time_nanos" );
1410-
else jsonp_long( gui->http, "completed_time_nanos", slot->completed_time );
1410+
else jsonp_long_as_str( gui->http, "completed_time_nanos", slot->completed_time );
14111411
if( FD_UNLIKELY( slot->total_txn_cnt==UINT_MAX
14121412
|| slot->vote_txn_cnt==UINT_MAX
14131413
|| slot->nonvote_failed_txn_cnt==UINT_MAX ) ) jsonp_null( gui->http, "success_nonvote_transaction_cnt" );
@@ -1480,7 +1480,7 @@ fd_gui_printf_slot_transactions_request( fd_gui_t * gui,
14801480
if( FD_UNLIKELY( duration_nanos==LONG_MAX ) ) jsonp_null( gui->http, "duration_nanos" );
14811481
else jsonp_long( gui->http, "duration_nanos", duration_nanos );
14821482
if( FD_UNLIKELY( slot->completed_time==LONG_MAX ) ) jsonp_null( gui->http, "completed_time_nanos" );
1483-
else jsonp_long( gui->http, "completed_time_nanos", slot->completed_time );
1483+
else jsonp_long_as_str( gui->http, "completed_time_nanos", slot->completed_time );
14841484
if( FD_UNLIKELY( slot->total_txn_cnt==UINT_MAX
14851485
|| slot->vote_txn_cnt==UINT_MAX
14861486
|| slot->nonvote_failed_txn_cnt==UINT_MAX ) ) jsonp_null( gui->http, "success_nonvote_transaction_cnt" );
@@ -1521,7 +1521,7 @@ fd_gui_printf_slot_transactions_request( fd_gui_t * gui,
15211521

15221522
jsonp_open_object( gui->http, "transactions" );
15231523
jsonp_long_as_str( gui->http, "start_timestamp_nanos", lslot->leader_start_time );
1524-
jsonp_long_as_str( gui->http, "target_end_timestamp_nanos", lslot->leader_start_time );
1524+
jsonp_long_as_str( gui->http, "target_end_timestamp_nanos", lslot->leader_end_time );
15251525
jsonp_open_array( gui->http, "txn_mb_start_timestamps_nanos" );
15261526
for( ulong i=0UL; i<txn_cnt; i++) jsonp_long_as_str( gui->http, NULL, lslot->leader_start_time + (long)gui->txs[ (lslot->txs.start_offset + i)%FD_GUI_TXN_HISTORY_SZ ]->timestamp_delta_start_nanos );
15271527
jsonp_close_array( gui->http );
@@ -1690,7 +1690,7 @@ fd_gui_printf_slot_request_detailed( fd_gui_t * gui,
16901690
if( FD_UNLIKELY( duration_nanos==LONG_MAX ) ) jsonp_null( gui->http, "duration_nanos" );
16911691
else jsonp_long( gui->http, "duration_nanos", duration_nanos );
16921692
if( FD_UNLIKELY( slot->completed_time==LONG_MAX ) ) jsonp_null( gui->http, "completed_time_nanos" );
1693-
else jsonp_long( gui->http, "completed_time_nanos", slot->completed_time );
1693+
else jsonp_long_as_str( gui->http, "completed_time_nanos", slot->completed_time );
16941694
if( FD_UNLIKELY( slot->total_txn_cnt==UINT_MAX
16951695
|| slot->vote_txn_cnt==UINT_MAX
16961696
|| slot->nonvote_failed_txn_cnt==UINT_MAX ) ) jsonp_null( gui->http, "success_nonvote_transaction_cnt" );

src/discof/bank/fd_bank_tile.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -277,10 +277,10 @@ handle_microblock( fd_bank_ctx_t * ctx,
277277
long microblock_duration_ticks = fd_long_max(tickcount - microblock_start_ticks, 0L);
278278

279279
// TODO: Execution timestamps
280-
long tx_start_ticks = 0L; //(long)out_timestamps[ 0 ];
281-
long tx_load_end_ticks = 0L; //(long)out_timestamps[ 1 ];
282-
long tx_end_ticks = 0L; //(long)out_timestamps[ 2 ];
283-
long tx_preload_end_ticks = 0L; //(long)out_timestamps[ 3 ];
280+
long tx_start_ticks = microblock_start_ticks; //(long)out_timestamps[ 0 ];
281+
long tx_load_end_ticks = microblock_start_ticks; //(long)out_timestamps[ 1 ];
282+
long tx_end_ticks = microblock_start_ticks; //(long)out_timestamps[ 2 ];
283+
long tx_preload_end_ticks = microblock_start_ticks; //(long)out_timestamps[ 3 ];
284284

285285
trailer->txn_start_pct = (uchar)(((double)(tx_start_ticks - microblock_start_ticks) * (double)UCHAR_MAX) / (double)microblock_duration_ticks);
286286
trailer->txn_load_end_pct = (uchar)(((double)(tx_load_end_ticks - microblock_start_ticks) * (double)UCHAR_MAX) / (double)microblock_duration_ticks);
@@ -304,7 +304,7 @@ handle_microblock( fd_bank_ctx_t * ctx,
304304
transactions so the PoH tile can keep an accurate count of microblocks
305305
it has seen. */
306306
ulong new_sz = txn_cnt*sizeof(fd_txn_p_t) + sizeof(fd_microblock_trailer_t);
307-
fd_stem_publish( stem, 0UL, bank_sig, ctx->out_chunk, new_sz, 0UL, 0UL, (ulong)fd_frag_meta_ts_comp( tickcount ) );
307+
fd_stem_publish( stem, 0UL, bank_sig, ctx->out_chunk, new_sz, 0UL, (ulong)fd_frag_meta_ts_comp( microblock_start_ticks ), (ulong)fd_frag_meta_ts_comp( tickcount ) );
308308
ctx->out_chunk = fd_dcache_compact_next( ctx->out_chunk, new_sz, ctx->out_chunk0, ctx->out_wmark );
309309
}
310310

@@ -448,18 +448,18 @@ handle_bundle( fd_bank_ctx_t * ctx,
448448
long microblock_start_ticks = fd_frag_meta_ts_decomp( begin_tspub, tickcount );
449449
long microblock_duration_ticks = fd_long_max(tickcount - microblock_start_ticks, 0L);
450450

451-
long tx_start_ticks = (long)out_timestamps[ 4*i + 0 ];
452-
long tx_load_end_ticks = (long)out_timestamps[ 4*i + 1 ];
453-
long tx_end_ticks = (long)out_timestamps[ 4*i + 2 ];
454-
long tx_preload_end_ticks = (long)out_timestamps[ 4*i + 3 ];
451+
long tx_start_ticks = microblock_start_ticks; // (long)out_timestamps[ 4*i + 0 ];
452+
long tx_load_end_ticks = microblock_start_ticks; // (long)out_timestamps[ 4*i + 1 ];
453+
long tx_end_ticks = microblock_start_ticks; // (long)out_timestamps[ 4*i + 2 ];
454+
long tx_preload_end_ticks = microblock_start_ticks; // (long)out_timestamps[ 4*i + 3 ];
455455

456456
trailer->txn_start_pct = (uchar)(((double)(tx_start_ticks - microblock_start_ticks) * (double)UCHAR_MAX) / (double)microblock_duration_ticks);
457457
trailer->txn_load_end_pct = (uchar)(((double)(tx_load_end_ticks - microblock_start_ticks) * (double)UCHAR_MAX) / (double)microblock_duration_ticks);
458458
trailer->txn_end_pct = (uchar)(((double)(tx_end_ticks - microblock_start_ticks) * (double)UCHAR_MAX) / (double)microblock_duration_ticks);
459459
trailer->txn_preload_end_pct = (uchar)(((double)(tx_preload_end_ticks - microblock_start_ticks) * (double)UCHAR_MAX) / (double)microblock_duration_ticks);
460460

461461
ulong new_sz = sizeof(fd_txn_p_t) + sizeof(fd_microblock_trailer_t);
462-
fd_stem_publish( stem, 0UL, bank_sig, ctx->out_chunk, new_sz, 0UL, 0UL, (ulong)fd_frag_meta_ts_comp( tickcount ) );
462+
fd_stem_publish( stem, 0UL, bank_sig, ctx->out_chunk, new_sz, 0UL, (ulong)fd_frag_meta_ts_comp( microblock_start_ticks ), (ulong)fd_frag_meta_ts_comp( tickcount ) );
463463
ctx->out_chunk = fd_dcache_compact_next( ctx->out_chunk, new_sz, ctx->out_chunk0, ctx->out_wmark );
464464
}
465465

0 commit comments

Comments
 (0)