@@ -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,135 @@ 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 accountsTileSchema = z . object ( {
1068+ name : z . string ( ) ,
1069+ kind_id : z . number ( ) ,
1070+ joiner_type : z . enum ( [ "RO" , "RW" ] ) ,
1071+ /* 1 = running, 2 = shutdown */
1072+ status : z . number ( ) ,
1073+ acquired : z . number ( ) ,
1074+ bytes_read : z . number ( ) ,
1075+ bytes_written : z . number ( ) ,
1076+ acquired_per_sec : z . number ( ) ,
1077+ acquired_writable_per_sec : z . number ( ) ,
1078+ bytes_read_per_sec : z . number ( ) ,
1079+ bytes_copied_per_sec : z . number ( ) ,
1080+ bytes_written_per_sec : z . number ( ) ,
1081+ read_ops_per_sec : z . number ( ) ,
1082+ write_ops_per_sec : z . number ( ) ,
1083+ not_found_per_sec : z . number ( ) ,
1084+ evicted_per_sec : z . number ( ) ,
1085+ committed_per_sec : z . number ( ) ,
1086+ acquire_calls_per_sec : z . number ( ) ,
1087+ hit_rate_ema : z . number ( ) ,
1088+ acquired_history : z . array ( z . number ( ) ) ,
1089+ acquired_writable_history : z . array ( z . number ( ) ) ,
1090+ } ) ;
1091+
1092+ export const accountsStatsSchema = z . object ( {
1093+ sample_time_nanos : z . number ( ) ,
1094+ disk : accountsDiskSchema ,
1095+ compaction : accountsCompactionSchema ,
1096+ cache : accountsCacheSchema ,
1097+ io : accountsIoSchema ,
1098+ tiles : accountsTileSchema . array ( ) ,
1099+ partitions : accountsPartitionSchema . array ( ) ,
1100+ } ) ;
1101+
1102+ export const accountsSchema = z . discriminatedUnion ( "key" , [
1103+ accountsTopicSchema . extend ( {
1104+ key : z . literal ( "stats" ) ,
1105+ value : accountsStatsSchema ,
1106+ } ) ,
1107+ ] ) ;
0 commit comments