SimTX API/Packets/ServerHealthReport: Difference between revisions
Appearance
Clanker moved page SimTX API/Packets/ServerHealthReport to SimTX API v24/Packets/ServerHealthReport: Archive the v24 protocol reference Tag: New redirect |
Remove development history and server internals |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
# | {{SimTX API navigation}} | ||
{{SimTX packet | |||
| name = ServerHealthReport | |||
| frame = ServerFrame | |||
| field = 34 | |||
| member = health | |||
| direction = s2c | |||
| session = [[SimTX API/Control session|Control]] | |||
| roles = <code>ROLE_CONTROL</code>. | |||
| permission = None | |||
| answers = [[SimTX API/Packets/ServerHealthRequest|ServerHealthRequest]] | |||
| group = control | |||
| file = control.proto | |||
}} | |||
'''ServerHealthReport''' describes the load and internal state of a game server: CPU and memory, simulation timing, worker queues, and per-session statistics for every transmitter and receiver. It is meant for status pages, dashboards and operators. Most fields are diagnostic and follow the server implementation; treat them as informational. | |||
== Definition == | |||
<syntaxhighlight lang="protobuf"> | |||
message ServerHealthReport { | |||
int64 request_id = 1; | |||
int64 captured_at_ms = 2; | |||
string status = 3; | |||
int64 uptime_ms = 4; | |||
int32 available_processors = 5; | |||
float process_cpu_load = 6; | |||
float system_cpu_load = 7; | |||
double system_load_average = 8; | |||
int64 process_cpu_time_nanos = 9; | |||
int64 heap_used_bytes = 10; | |||
int64 heap_committed_bytes = 11; | |||
int64 heap_max_bytes = 12; | |||
int64 non_heap_used_bytes = 13; | |||
int64 physical_memory_used_bytes = 14; | |||
int64 physical_memory_total_bytes = 15; | |||
int64 open_file_descriptors = 16; | |||
int64 max_file_descriptors = 17; | |||
int32 live_threads = 18; | |||
int32 peak_threads = 19; | |||
int32 connected_clients = 20; | |||
int32 connected_stations = 21; | |||
int32 active_transmitters = 22; | |||
int32 receiver_groups = 23; | |||
bool acceptor_alive = 24; | |||
int64 world_tick = 25; | |||
int64 world_tick_duration_nanos = 26; | |||
int64 world_tick_interval_nanos = 27; | |||
int64 simulation_time_ms = 28; | |||
int32 session_tasks_active = 29; | |||
int32 session_tasks_queued = 30; | |||
int32 receiver_dsp_active = 31; | |||
int32 receiver_dsp_queued = 32; | |||
int32 propagation_jobs_active = 33; | |||
int32 propagation_jobs_queued = 34; | |||
int64 streamed_receiver_chunks = 35; | |||
int64 receiver_overrun_chunks = 36; | |||
int32 stalled_transmitter_writes = 37; | |||
int32 stalled_receiver_groups = 38; | |||
repeated TransmitterHealth transmitters = 39; | |||
repeated ReceiverHealth receivers = 40; | |||
} | |||
</syntaxhighlight> | |||
== Fields == | |||
{| class="wikitable" | |||
! # !! Field !! Type !! Description | |||
|- | |||
| 1 || <code>request_id</code> || <code>int64</code> || The request this answers. | |||
|- | |||
| 2 || <code>captured_at_ms</code> || <code>int64</code> || When the report was captured, Unix ms. | |||
|- | |||
| 3 || <code>status</code> || <code>string</code> || <code>OK</code>, <code>DEGRADED</code> or <code>STOPPED</code>; <code>UNKNOWN</code> if not set. | |||
|- | |||
| 4 || <code>uptime_ms</code> || <code>int64</code> || Process uptime, ms. | |||
|- | |||
| 5 || <code>available_processors</code> || <code>int32</code> || CPU cores available. | |||
|- | |||
| 6 || <code>process_cpu_load</code> || <code>float</code> || Process CPU load, 0 to 1. | |||
|- | |||
| 7 || <code>system_cpu_load</code> || <code>float</code> || Whole-machine CPU load, 0 to 1. | |||
|- | |||
| 8 || <code>system_load_average</code> || <code>double</code> || One-minute load average. | |||
|- | |||
| 9 || <code>process_cpu_time_nanos</code> || <code>int64</code> || Cumulative process CPU time. | |||
|- | |||
| 10 || <code>heap_used_bytes</code> || <code>int64</code> || JVM heap in use. | |||
|- | |||
| 11 || <code>heap_committed_bytes</code> || <code>int64</code> || JVM heap committed. | |||
|- | |||
| 12 || <code>heap_max_bytes</code> || <code>int64</code> || JVM heap maximum. | |||
|- | |||
| 13 || <code>non_heap_used_bytes</code> || <code>int64</code> || JVM non-heap memory in use. | |||
|- | |||
| 14 || <code>physical_memory_used_bytes</code> || <code>int64</code> || Machine memory in use. | |||
|- | |||
| 15 || <code>physical_memory_total_bytes</code> || <code>int64</code> || Machine memory total. | |||
|- | |||
| 16 || <code>open_file_descriptors</code> || <code>int64</code> || Open file descriptors. | |||
|- | |||
| 17 || <code>max_file_descriptors</code> || <code>int64</code> || File descriptor limit. | |||
|- | |||
| 18 || <code>live_threads</code> || <code>int32</code> || Live threads. | |||
|- | |||
| 19 || <code>peak_threads</code> || <code>int32</code> || Peak threads. | |||
|- | |||
| 20 || <code>connected_clients</code> || <code>int32</code> || Open client connections. | |||
|- | |||
| 21 || <code>connected_stations</code> || <code>int32</code> || Sessions (receivers and transmitters). | |||
|- | |||
| 22 || <code>active_transmitters</code> || <code>int32</code> || Transmitters on air. | |||
|- | |||
| 23 || <code>receiver_groups</code> || <code>int32</code> || Groups of receivers sharing DSP work. | |||
|- | |||
| 24 || <code>acceptor_alive</code> || <code>bool</code> || Whether the connection acceptor is running. | |||
|- | |||
| 25 || <code>world_tick</code> || <code>int64</code> || Simulation tick counter. | |||
|- | |||
| 26 || <code>world_tick_duration_nanos</code> || <code>int64</code> || Duration of the last simulation tick. | |||
|- | |||
| 27 || <code>world_tick_interval_nanos</code> || <code>int64</code> || Interval between simulation ticks. | |||
|- | |||
| 28 || <code>simulation_time_ms</code> || <code>int64</code> || Current simulated time, Unix ms. | |||
|- | |||
| 29 || <code>session_tasks_active</code> || <code>int32</code> || Session worker tasks running. | |||
|- | |||
| 30 || <code>session_tasks_queued</code> || <code>int32</code> || Session worker tasks waiting. | |||
|- | |||
| 31 || <code>receiver_dsp_active</code> || <code>int32</code> || Receiver DSP jobs running. | |||
|- | |||
| 32 || <code>receiver_dsp_queued</code> || <code>int32</code> || Receiver DSP jobs waiting. | |||
|- | |||
| 33 || <code>propagation_jobs_active</code> || <code>int32</code> || Propagation jobs running. | |||
|- | |||
| 34 || <code>propagation_jobs_queued</code> || <code>int32</code> || Propagation jobs waiting. | |||
|- | |||
| 35 || <code>streamed_receiver_chunks</code> || <code>int64</code> || IQ blocks delivered since start. | |||
|- | |||
| 36 || <code>receiver_overrun_chunks</code> || <code>int64</code> || IQ blocks dropped because a client queue was full. | |||
|- | |||
| 37 || <code>stalled_transmitter_writes</code> || <code>int32</code> || Transmitter sessions currently stalled writing. | |||
|- | |||
| 38 || <code>stalled_receiver_groups</code> || <code>int32</code> || Receiver groups currently stalled. | |||
|- | |||
| 39 || <code>transmitters</code> || <code>repeated</code> [[#TransmitterHealth|TransmitterHealth]] || One [[#TransmitterHealth|TransmitterHealth]] per live transmitter, at most 4,096. | |||
|- | |||
| 40 || <code>receivers</code> || <code>repeated</code> [[#ReceiverHealth|ReceiverHealth]] || One [[#ReceiverHealth|ReceiverHealth]] per live receiver, at most 4,096. | |||
|} | |||
=== TransmitterHealth === | |||
<syntaxhighlight lang="protobuf"> | |||
message TransmitterHealth { | |||
bytes session_id = 1; | |||
string callsign = 2; | |||
string address = 3; | |||
string source_type = 4; // string enum (common.proto) | |||
double frequency_hz = 5; | |||
string modulation = 6; // string enum (common.proto) | |||
int32 sample_rate = 7; | |||
int32 buffer_capacity_samples = 8; | |||
int32 buffer_retained_samples = 9; | |||
int64 buffer_sequence = 10; | |||
int64 wire_components_received = 11; | |||
int64 processed_blocks = 12; | |||
int64 total_processing_nanos = 13; | |||
int64 connected_duration_nanos = 14; | |||
int64 last_progress_age_nanos = 15; | |||
int64 recent_processing_nanos = 16; | |||
int64 max_processing_nanos = 17; | |||
int64 current_write_stall_nanos = 18; | |||
int64 recent_write_nanos = 19; | |||
int64 max_write_nanos = 20; | |||
int64 total_write_nanos = 21; | |||
} | |||
</syntaxhighlight> | |||
{| class="wikitable" | |||
! # !! Field !! Type !! Description | |||
|- | |||
| 1 || <code>session_id</code> || <code>bytes</code> || 16-byte transmission id. | |||
|- | |||
| 2 || <code>callsign</code> || <code>string</code> || Callsign. | |||
|- | |||
| 3 || <code>address</code> || <code>string</code> || Client address. Empty unless the session holds <code>monitor.any</code> or <code>moderation.manage</code>. | |||
|- | |||
| 4 || <code>source_type</code> || <code>string</code> || [[SimTX API/Data types#Source type|Source type]] name. | |||
|- | |||
| 5 || <code>frequency_hz</code> || <code>double</code> || Carrier frequency, Hz. | |||
|- | |||
| 6 || <code>modulation</code> || <code>string</code> || [[SimTX API/Data types#Modulation|Modulation]] name. | |||
|- | |||
| 7 || <code>sample_rate</code> || <code>int32</code> || Declared input sample rate. | |||
|- | |||
| 8 || <code>buffer_capacity_samples</code> || <code>int32</code> || Playout buffer capacity, samples. | |||
|- | |||
| 9 || <code>buffer_retained_samples</code> || <code>int32</code> || Samples held in the playout buffer. | |||
|- | |||
| 10 || <code>buffer_sequence</code> || <code>int64</code> || Write position of the playout buffer. | |||
|- | |||
| 11 || <code>wire_components_received</code> || <code>int64</code> || Sample values received from the client. | |||
|- | |||
| 12 || <code>processed_blocks</code> || <code>int64</code> || Blocks processed. | |||
|- | |||
| 13 || <code>total_processing_nanos</code> || <code>int64</code> || Total processing time. | |||
|- | |||
| 14 || <code>connected_duration_nanos</code> || <code>int64</code> || Time since the session started. | |||
|- | |||
| 15 || <code>last_progress_age_nanos</code> || <code>int64</code> || Time since the session last made progress. | |||
|- | |||
| 16 || <code>recent_processing_nanos</code> || <code>int64</code> || Processing time in the recent window. | |||
|- | |||
| 17 || <code>max_processing_nanos</code> || <code>int64</code> || Longest processing step. | |||
|- | |||
| 18 || <code>current_write_stall_nanos</code> || <code>int64</code> || Duration of the current stalled write, 0 if none. | |||
|- | |||
| 19 || <code>recent_write_nanos</code> || <code>int64</code> || Write time in the recent window. | |||
|- | |||
| 20 || <code>max_write_nanos</code> || <code>int64</code> || Longest write. | |||
|- | |||
| 21 || <code>total_write_nanos</code> || <code>int64</code> || Total write time. | |||
|} | |||
=== ReceiverHealth === | |||
<syntaxhighlight lang="protobuf"> | |||
message ReceiverHealth { | |||
bytes session_id = 1; | |||
string callsign = 2; | |||
string address = 3; | |||
double center_frequency_hz = 4; | |||
int32 sample_rate = 5; | |||
int32 chunk_samples = 6; | |||
bool wideband = 7; | |||
int32 shared_group_members = 8; | |||
int32 queued_frames = 9; | |||
int32 max_queued_frames = 10; | |||
int32 queue_capacity = 11; | |||
int64 frames_written = 12; | |||
int64 frames_dropped = 13; | |||
int64 group_processed_chunks = 14; | |||
int64 total_group_processing_nanos = 15; | |||
int64 total_group_dsp_nanos = 16; | |||
int64 connected_duration_nanos = 17; | |||
int64 group_progress_age_nanos = 18; | |||
int64 recent_group_processing_nanos = 19; | |||
int64 max_group_processing_nanos = 20; | |||
int64 recent_group_dsp_nanos = 21; | |||
int64 max_group_dsp_nanos = 22; | |||
int64 current_write_stall_nanos = 23; | |||
int64 recent_write_nanos = 24; | |||
int64 max_write_nanos = 25; | |||
int64 total_write_nanos = 26; | |||
} | |||
</syntaxhighlight> | |||
{| class="wikitable" | |||
! # !! Field !! Type !! Description | |||
|- | |||
| 1 || <code>session_id</code> || <code>bytes</code> || 16-byte session id. | |||
|- | |||
| 2 || <code>callsign</code> || <code>string</code> || Callsign. | |||
|- | |||
| 3 || <code>address</code> || <code>string</code> || Client address. Empty unless the session holds <code>monitor.any</code> or <code>moderation.manage</code>. | |||
|- | |||
| 4 || <code>center_frequency_hz</code> || <code>double</code> || Centre frequency, Hz. | |||
|- | |||
| 5 || <code>sample_rate</code> || <code>int32</code> || Negotiated sample rate. | |||
|- | |||
| 6 || <code>chunk_samples</code> || <code>int32</code> || Negotiated block size. | |||
|- | |||
| 7 || <code>wideband</code> || <code>bool</code> || True for a wideband receiver. | |||
|- | |||
| 8 || <code>shared_group_members</code> || <code>int32</code> || Receivers sharing this receiver's DSP group. | |||
|- | |||
| 9 || <code>queued_frames</code> || <code>int32</code> || Frames waiting in the output queue. | |||
|- | |||
| 10 || <code>max_queued_frames</code> || <code>int32</code> || Highest queue level seen. | |||
|- | |||
| 11 || <code>queue_capacity</code> || <code>int32</code> || Output queue capacity. | |||
|- | |||
| 12 || <code>frames_written</code> || <code>int64</code> || Frames written to the client. | |||
|- | |||
| 13 || <code>frames_dropped</code> || <code>int64</code> || Frames dropped because the queue was full. | |||
|- | |||
| 14 || <code>group_processed_chunks</code> || <code>int64</code> || Blocks processed by the DSP group. | |||
|- | |||
| 15 || <code>total_group_processing_nanos</code> || <code>int64</code> || Total group processing time. | |||
|- | |||
| 16 || <code>total_group_dsp_nanos</code> || <code>int64</code> || Total group DSP time. | |||
|- | |||
| 17 || <code>connected_duration_nanos</code> || <code>int64</code> || Time since the session started. | |||
|- | |||
| 18 || <code>group_progress_age_nanos</code> || <code>int64</code> || Time since the group last made progress. | |||
|- | |||
| 19 || <code>recent_group_processing_nanos</code> || <code>int64</code> || Group processing time in the recent window. | |||
|- | |||
| 20 || <code>max_group_processing_nanos</code> || <code>int64</code> || Longest group processing step. | |||
|- | |||
| 21 || <code>recent_group_dsp_nanos</code> || <code>int64</code> || Group DSP time in the recent window. | |||
|- | |||
| 22 || <code>max_group_dsp_nanos</code> || <code>int64</code> || Longest group DSP step. | |||
|- | |||
| 23 || <code>current_write_stall_nanos</code> || <code>int64</code> || Duration of the current stalled write, 0 if none. | |||
|- | |||
| 24 || <code>recent_write_nanos</code> || <code>int64</code> || Write time in the recent window. | |||
|- | |||
| 25 || <code>max_write_nanos</code> || <code>int64</code> || Longest write. | |||
|- | |||
| 26 || <code>total_write_nanos</code> || <code>int64</code> || Total write time. | |||
|} | |||
== Usage == | |||
* Useful summary values for a status page: <code>status</code>, <code>connected_stations</code>, <code>active_transmitters</code>, <code>process_cpu_load</code>, and the ratio <code>world_tick_duration_nanos / world_tick_interval_nanos</code> (below 1 means the simulation keeps up with real time). | |||
* <code>receiver_overrun_chunks</code> rising quickly means that clients are not reading fast enough, or that the server cannot keep up. | |||
* Durations are in nanoseconds. ''Recent'' values cover a short sliding window. | |||
* <code>session_id</code> in the per-session entries is the same 16-byte id as in [[SimTX API/Packets/SessionStatus|SessionStatus]] and [[SimTX API/Packets/StationList|StationList]]. | |||
== See also == | |||
* [[SimTX API/Packets/ServerHealthRequest|ServerHealthRequest]] | |||
{{SimTX API navbox}} | |||
[[Category:SimTX API]] | |||
Latest revision as of 17:16, 24 October 2026
| Frame | ServerFrame, field 34
|
|---|---|
| Member | health
|
| Direction | Server → client |
| Session | Control |
| Roles | ROLE_CONTROL.
|
| Permission | None |
| Answers | ServerHealthRequest |
| Defined in | control.proto
|
ServerHealthReport describes the load and internal state of a game server: CPU and memory, simulation timing, worker queues, and per-session statistics for every transmitter and receiver. It is meant for status pages, dashboards and operators. Most fields are diagnostic and follow the server implementation; treat them as informational.
Definition[edit | edit source]
message ServerHealthReport {
int64 request_id = 1;
int64 captured_at_ms = 2;
string status = 3;
int64 uptime_ms = 4;
int32 available_processors = 5;
float process_cpu_load = 6;
float system_cpu_load = 7;
double system_load_average = 8;
int64 process_cpu_time_nanos = 9;
int64 heap_used_bytes = 10;
int64 heap_committed_bytes = 11;
int64 heap_max_bytes = 12;
int64 non_heap_used_bytes = 13;
int64 physical_memory_used_bytes = 14;
int64 physical_memory_total_bytes = 15;
int64 open_file_descriptors = 16;
int64 max_file_descriptors = 17;
int32 live_threads = 18;
int32 peak_threads = 19;
int32 connected_clients = 20;
int32 connected_stations = 21;
int32 active_transmitters = 22;
int32 receiver_groups = 23;
bool acceptor_alive = 24;
int64 world_tick = 25;
int64 world_tick_duration_nanos = 26;
int64 world_tick_interval_nanos = 27;
int64 simulation_time_ms = 28;
int32 session_tasks_active = 29;
int32 session_tasks_queued = 30;
int32 receiver_dsp_active = 31;
int32 receiver_dsp_queued = 32;
int32 propagation_jobs_active = 33;
int32 propagation_jobs_queued = 34;
int64 streamed_receiver_chunks = 35;
int64 receiver_overrun_chunks = 36;
int32 stalled_transmitter_writes = 37;
int32 stalled_receiver_groups = 38;
repeated TransmitterHealth transmitters = 39;
repeated ReceiverHealth receivers = 40;
}
Fields[edit | edit source]
| # | Field | Type | Description |
|---|---|---|---|
| 1 | request_id |
int64 |
The request this answers. |
| 2 | captured_at_ms |
int64 |
When the report was captured, Unix ms. |
| 3 | status |
string |
OK, DEGRADED or STOPPED; UNKNOWN if not set.
|
| 4 | uptime_ms |
int64 |
Process uptime, ms. |
| 5 | available_processors |
int32 |
CPU cores available. |
| 6 | process_cpu_load |
float |
Process CPU load, 0 to 1. |
| 7 | system_cpu_load |
float |
Whole-machine CPU load, 0 to 1. |
| 8 | system_load_average |
double |
One-minute load average. |
| 9 | process_cpu_time_nanos |
int64 |
Cumulative process CPU time. |
| 10 | heap_used_bytes |
int64 |
JVM heap in use. |
| 11 | heap_committed_bytes |
int64 |
JVM heap committed. |
| 12 | heap_max_bytes |
int64 |
JVM heap maximum. |
| 13 | non_heap_used_bytes |
int64 |
JVM non-heap memory in use. |
| 14 | physical_memory_used_bytes |
int64 |
Machine memory in use. |
| 15 | physical_memory_total_bytes |
int64 |
Machine memory total. |
| 16 | open_file_descriptors |
int64 |
Open file descriptors. |
| 17 | max_file_descriptors |
int64 |
File descriptor limit. |
| 18 | live_threads |
int32 |
Live threads. |
| 19 | peak_threads |
int32 |
Peak threads. |
| 20 | connected_clients |
int32 |
Open client connections. |
| 21 | connected_stations |
int32 |
Sessions (receivers and transmitters). |
| 22 | active_transmitters |
int32 |
Transmitters on air. |
| 23 | receiver_groups |
int32 |
Groups of receivers sharing DSP work. |
| 24 | acceptor_alive |
bool |
Whether the connection acceptor is running. |
| 25 | world_tick |
int64 |
Simulation tick counter. |
| 26 | world_tick_duration_nanos |
int64 |
Duration of the last simulation tick. |
| 27 | world_tick_interval_nanos |
int64 |
Interval between simulation ticks. |
| 28 | simulation_time_ms |
int64 |
Current simulated time, Unix ms. |
| 29 | session_tasks_active |
int32 |
Session worker tasks running. |
| 30 | session_tasks_queued |
int32 |
Session worker tasks waiting. |
| 31 | receiver_dsp_active |
int32 |
Receiver DSP jobs running. |
| 32 | receiver_dsp_queued |
int32 |
Receiver DSP jobs waiting. |
| 33 | propagation_jobs_active |
int32 |
Propagation jobs running. |
| 34 | propagation_jobs_queued |
int32 |
Propagation jobs waiting. |
| 35 | streamed_receiver_chunks |
int64 |
IQ blocks delivered since start. |
| 36 | receiver_overrun_chunks |
int64 |
IQ blocks dropped because a client queue was full. |
| 37 | stalled_transmitter_writes |
int32 |
Transmitter sessions currently stalled writing. |
| 38 | stalled_receiver_groups |
int32 |
Receiver groups currently stalled. |
| 39 | transmitters |
repeated TransmitterHealth |
One TransmitterHealth per live transmitter, at most 4,096. |
| 40 | receivers |
repeated ReceiverHealth |
One ReceiverHealth per live receiver, at most 4,096. |
TransmitterHealth[edit | edit source]
message TransmitterHealth {
bytes session_id = 1;
string callsign = 2;
string address = 3;
string source_type = 4; // string enum (common.proto)
double frequency_hz = 5;
string modulation = 6; // string enum (common.proto)
int32 sample_rate = 7;
int32 buffer_capacity_samples = 8;
int32 buffer_retained_samples = 9;
int64 buffer_sequence = 10;
int64 wire_components_received = 11;
int64 processed_blocks = 12;
int64 total_processing_nanos = 13;
int64 connected_duration_nanos = 14;
int64 last_progress_age_nanos = 15;
int64 recent_processing_nanos = 16;
int64 max_processing_nanos = 17;
int64 current_write_stall_nanos = 18;
int64 recent_write_nanos = 19;
int64 max_write_nanos = 20;
int64 total_write_nanos = 21;
}
| # | Field | Type | Description |
|---|---|---|---|
| 1 | session_id |
bytes |
16-byte transmission id. |
| 2 | callsign |
string |
Callsign. |
| 3 | address |
string |
Client address. Empty unless the session holds monitor.any or moderation.manage.
|
| 4 | source_type |
string |
Source type name. |
| 5 | frequency_hz |
double |
Carrier frequency, Hz. |
| 6 | modulation |
string |
Modulation name. |
| 7 | sample_rate |
int32 |
Declared input sample rate. |
| 8 | buffer_capacity_samples |
int32 |
Playout buffer capacity, samples. |
| 9 | buffer_retained_samples |
int32 |
Samples held in the playout buffer. |
| 10 | buffer_sequence |
int64 |
Write position of the playout buffer. |
| 11 | wire_components_received |
int64 |
Sample values received from the client. |
| 12 | processed_blocks |
int64 |
Blocks processed. |
| 13 | total_processing_nanos |
int64 |
Total processing time. |
| 14 | connected_duration_nanos |
int64 |
Time since the session started. |
| 15 | last_progress_age_nanos |
int64 |
Time since the session last made progress. |
| 16 | recent_processing_nanos |
int64 |
Processing time in the recent window. |
| 17 | max_processing_nanos |
int64 |
Longest processing step. |
| 18 | current_write_stall_nanos |
int64 |
Duration of the current stalled write, 0 if none. |
| 19 | recent_write_nanos |
int64 |
Write time in the recent window. |
| 20 | max_write_nanos |
int64 |
Longest write. |
| 21 | total_write_nanos |
int64 |
Total write time. |
ReceiverHealth[edit | edit source]
message ReceiverHealth {
bytes session_id = 1;
string callsign = 2;
string address = 3;
double center_frequency_hz = 4;
int32 sample_rate = 5;
int32 chunk_samples = 6;
bool wideband = 7;
int32 shared_group_members = 8;
int32 queued_frames = 9;
int32 max_queued_frames = 10;
int32 queue_capacity = 11;
int64 frames_written = 12;
int64 frames_dropped = 13;
int64 group_processed_chunks = 14;
int64 total_group_processing_nanos = 15;
int64 total_group_dsp_nanos = 16;
int64 connected_duration_nanos = 17;
int64 group_progress_age_nanos = 18;
int64 recent_group_processing_nanos = 19;
int64 max_group_processing_nanos = 20;
int64 recent_group_dsp_nanos = 21;
int64 max_group_dsp_nanos = 22;
int64 current_write_stall_nanos = 23;
int64 recent_write_nanos = 24;
int64 max_write_nanos = 25;
int64 total_write_nanos = 26;
}
| # | Field | Type | Description |
|---|---|---|---|
| 1 | session_id |
bytes |
16-byte session id. |
| 2 | callsign |
string |
Callsign. |
| 3 | address |
string |
Client address. Empty unless the session holds monitor.any or moderation.manage.
|
| 4 | center_frequency_hz |
double |
Centre frequency, Hz. |
| 5 | sample_rate |
int32 |
Negotiated sample rate. |
| 6 | chunk_samples |
int32 |
Negotiated block size. |
| 7 | wideband |
bool |
True for a wideband receiver. |
| 8 | shared_group_members |
int32 |
Receivers sharing this receiver's DSP group. |
| 9 | queued_frames |
int32 |
Frames waiting in the output queue. |
| 10 | max_queued_frames |
int32 |
Highest queue level seen. |
| 11 | queue_capacity |
int32 |
Output queue capacity. |
| 12 | frames_written |
int64 |
Frames written to the client. |
| 13 | frames_dropped |
int64 |
Frames dropped because the queue was full. |
| 14 | group_processed_chunks |
int64 |
Blocks processed by the DSP group. |
| 15 | total_group_processing_nanos |
int64 |
Total group processing time. |
| 16 | total_group_dsp_nanos |
int64 |
Total group DSP time. |
| 17 | connected_duration_nanos |
int64 |
Time since the session started. |
| 18 | group_progress_age_nanos |
int64 |
Time since the group last made progress. |
| 19 | recent_group_processing_nanos |
int64 |
Group processing time in the recent window. |
| 20 | max_group_processing_nanos |
int64 |
Longest group processing step. |
| 21 | recent_group_dsp_nanos |
int64 |
Group DSP time in the recent window. |
| 22 | max_group_dsp_nanos |
int64 |
Longest group DSP step. |
| 23 | current_write_stall_nanos |
int64 |
Duration of the current stalled write, 0 if none. |
| 24 | recent_write_nanos |
int64 |
Write time in the recent window. |
| 25 | max_write_nanos |
int64 |
Longest write. |
| 26 | total_write_nanos |
int64 |
Total write time. |
Usage[edit | edit source]
- Useful summary values for a status page:
status,connected_stations,active_transmitters,process_cpu_load, and the ratioworld_tick_duration_nanos / world_tick_interval_nanos(below 1 means the simulation keeps up with real time). receiver_overrun_chunksrising quickly means that clients are not reading fast enough, or that the server cannot keep up.- Durations are in nanoseconds. Recent values cover a short sliding window.
session_idin the per-session entries is the same 16-byte id as in SessionStatus and StationList.