@@ -31,6 +31,10 @@ const supermajorityTopicSchema = z.object({
3131 topic : z . literal ( "wait_for_supermajority" ) ,
3232} ) ;
3333
34+ const accountsTopicSchema = z . object ( {
35+ topic : z . literal ( "accounts" ) ,
36+ } ) ;
37+
3438export const topicSchema = z . discriminatedUnion ( "topic" , [
3539 summaryTopicSchema ,
3640 epochTopicSchema ,
@@ -39,6 +43,7 @@ export const topicSchema = z.discriminatedUnion("topic", [
3943 slotTopicSchema ,
4044 blockEngineTopicSchema ,
4145 supermajorityTopicSchema ,
46+ accountsTopicSchema ,
4247] ) ;
4348
4449export const versionSchema = z . string ( ) ;
@@ -968,3 +973,109 @@ export const supermajoritySchema = z.discriminatedUnion("key", [
968973 value : supermajorityPeerRemoveSchema ,
969974 } ) ,
970975] ) ;
976+
977+ export const accountsDiskSchema = z . object ( {
978+ accounts_total : z . number ( ) ,
979+ accounts_capacity : z . number ( ) ,
980+ allocated_bytes : z . number ( ) ,
981+ current_bytes : z . number ( ) ,
982+ used_bytes : z . number ( ) ,
983+ } ) ;
984+
985+ export const accountsCompactionSchema = z . object ( {
986+ in_compaction : z . number ( ) ,
987+ compactions_requested : z . number ( ) ,
988+ compactions_completed : z . number ( ) ,
989+ accounts_relocated_bytes : z . number ( ) ,
990+ relocated_bytes_per_sec : z . number ( ) ,
991+ } ) ;
992+
993+ export const accountsCacheClassSchema = z . object ( {
994+ class : z . number ( ) ,
995+ used_slots : z . number ( ) ,
996+ max_slots : z . number ( ) ,
997+ reserved_slots : z . number ( ) ,
998+ target_used_slots : z . number ( ) ,
999+ low_water_used_slots : z . number ( ) ,
1000+ not_found : z . number ( ) ,
1001+ evicted : z . number ( ) ,
1002+ preevicted : z . number ( ) ,
1003+ committed_new : z . number ( ) ,
1004+ committed_overwrite : z . number ( ) ,
1005+ not_found_per_sec : z . number ( ) ,
1006+ evicted_per_sec : z . number ( ) ,
1007+ preevicted_per_sec : z . number ( ) ,
1008+ committed_new_per_sec : z . number ( ) ,
1009+ committed_overwrite_per_sec : z . number ( ) ,
1010+ reads_per_sec : z . number ( ) ,
1011+ writes_per_sec : z . number ( ) ,
1012+ hit_rate_ema : z . number ( ) ,
1013+ } ) ;
1014+
1015+ export const accountsCacheSchema = z . object ( {
1016+ hit_rate_ema : z . number ( ) ,
1017+ size_bytes : z . number ( ) ,
1018+ classes : accountsCacheClassSchema . array ( ) ,
1019+ } ) ;
1020+
1021+ export const accountsIoSchema = z . object ( {
1022+ acquired : z . number ( ) ,
1023+ acquired_writable : z . number ( ) ,
1024+ bytes_read : z . number ( ) ,
1025+ bytes_copied : z . number ( ) ,
1026+ bytes_written : z . number ( ) ,
1027+ bytes_written_accdb : z . number ( ) ,
1028+ read_ops : z . number ( ) ,
1029+ write_ops : z . number ( ) ,
1030+ acquired_per_sec : z . number ( ) ,
1031+ acquired_writable_per_sec : z . number ( ) ,
1032+ bytes_read_per_sec : z . number ( ) ,
1033+ bytes_copied_per_sec : z . number ( ) ,
1034+ bytes_written_per_sec : z . number ( ) ,
1035+ read_ops_per_sec : z . number ( ) ,
1036+ write_ops_per_sec : z . number ( ) ,
1037+ prewrite_ratio : z . number ( ) ,
1038+ } ) ;
1039+
1040+ export const accountsPartitionSchema = z . object ( {
1041+ partition_idx : z . number ( ) ,
1042+ file_offset : z . number ( ) ,
1043+ tier : z . number ( ) ,
1044+ write_offset : z . number ( ) ,
1045+ bytes_freed : z . number ( ) ,
1046+ read_ops : z . number ( ) ,
1047+ bytes_read : z . number ( ) ,
1048+ write_ops : z . number ( ) ,
1049+ bytes_written : z . number ( ) ,
1050+ read_ops_per_sec : z . number ( ) ,
1051+ bytes_read_per_sec : z . number ( ) ,
1052+ write_ops_per_sec : z . number ( ) ,
1053+ bytes_written_per_sec : z . number ( ) ,
1054+ utilization : z . number ( ) ,
1055+ fragmentation : z . number ( ) ,
1056+ used_frac : z . number ( ) ,
1057+ fragmented_frac : z . number ( ) ,
1058+ compaction_trigger_frac : z . number ( ) ,
1059+ age_seconds : z . number ( ) ,
1060+ filled_seconds : z . number ( ) ,
1061+ /* 0 = idle, 1 = queued, 2 = compacting */
1062+ compaction_state : z . number ( ) ,
1063+ compaction_frac : z . number ( ) ,
1064+ is_write_head : z . boolean ( ) ,
1065+ } ) ;
1066+
1067+ export const accountsStatsSchema = z . object ( {
1068+ sample_time_nanos : z . number ( ) ,
1069+ disk : accountsDiskSchema ,
1070+ compaction : accountsCompactionSchema ,
1071+ cache : accountsCacheSchema ,
1072+ io : accountsIoSchema ,
1073+ partitions : accountsPartitionSchema . array ( ) ,
1074+ } ) ;
1075+
1076+ export const accountsSchema = z . discriminatedUnion ( "key" , [
1077+ accountsTopicSchema . extend ( {
1078+ key : z . literal ( "stats" ) ,
1079+ value : accountsStatsSchema ,
1080+ } ) ,
1081+ ] ) ;
0 commit comments