Skip to main content

Metrics and Dashboards

Peresvet ST collects metrics in real time and exports them to ClickHouse. Grafana visualizes the results, with one or more preconfigured dashboards for each plugin type. Dashboards are available from the Peresvet ST web interface while a task is running.

PDF/CSV/HTML report export and task transfer (archive/JSON) are described under Report Export and Task Import.

Reading One-Second Metrics

Peresvet ST metrics show actual traffic behavior over short intervals. On most graphs, a point represents one second of measurements: the number of requests, responses, packets, bytes, or bits that were actually generated, transmitted, received, or processed within that one-second window.

The system does not artificially smooth these graphs over five or ten seconds or draw an idealized target-profile line. Small natural variations may therefore be visible: one second slightly below the target and the next slightly above. This is normal for exact one-second measurements, especially with TCP, HTTP, and many concurrent sessions.

Real network traffic also does not arrive in perfectly identical one-second batches. TCP connections open and close over time; an HTTP request depends on connection readiness and the response; packets are grouped by the NIC and processed by multiple agent cores; and one-second boundaries do not align with individual session boundaries. When events straddle two seconds, adjacent points can differ slightly even though the working-interval average and total traffic volume match the configured profile.

In practice:

  • evaluate the plateau after ramp-up and before task shutdown when checking the rate;
  • account for CPS and CC: if a task opens 100 new connections per second until it reaches 1,000 active connections, the plateau appears only after ramp-up;
  • evaluate the average and total volume over the selected interval, not a single one-second point;
  • compare software and hardware metrics: software metrics show what the scenario generated and processed; hardware metrics show what physically crossed the network interface;
  • check Drops and loss separately: with zero loss, small one-second fluctuations normally reflect measurement precision rather than a generation problem.

In an HTTP task targeting 10,000 requests per second, the line remains close to the target after ramp-up. Individual points may show 9.9K or slightly more than 10K RPS, but the working average on the plateau matches the target profile.

HTTP 10K RPS in one-second metrics

Figure 24 — HTTP load at 10K RPS: exact one-second values around the target profile

Similar behavior can appear on total packet or bit graphs. If the profile specifies a constant rate but the graph uses actual one-second intervals, a small staircase effect or compensation in the adjacent second is acceptable. Acceptance should focus on the working plateau, average, total traffic volume, and absence of loss.

Total TX graph with one-second intervals

Figure 25 — Total TX graph: actual one-second intervals without artificial smoothing

Main Metric Groups

Dashboards use several types of indicators. They describe different layers of the same test and should be read together.

GroupWhat it showsHow to interpret it
Requests / ResponsesApplication operations: HTTP and DNS requests/responses, file-transfer operations, and other L7 eventsVerify the application's business profile: how many operations actually completed per second or over the interval
PacketsTX/RX network packet countOne application request can produce one or many packets. With TLS, large responses, fragmentation, or retransmission, packet count does not have to match request count
Bytes / BitsTransferred data volume and rateEvaluate payload and L2/L3 rate. With a fixed packet size, Bits and Packets usually move together
L1 / L2 BitsRate at different accounting layersL2 represents Ethernet frame volume; L1 also includes physical line overhead and is therefore used for line-rate evaluation
TCP ConnectionsCPS, active, closed, and pending connectionsCPS is the TCP establishment rate; Active connections / CC is current concurrency; Closed shows completion; Pending shows connections being established
Drops / LossLoss, discarded packets, and RX/TX errorsEvaluate drops/loss after completion. During a run, short-lived loss in Total Statistics can be an artifact of metrics arriving from agents at different times; see below
Generated / SoftwareScenario counters within the agentShow how much traffic the scenario generated, processed, and accounted for at the application or network-stack layer
Hardware / PhysicalNetwork-interface hardware statisticsShow actual physical-port traffic: line rate, L1/L2 bits, hardware packet counts, and interface errors

Software and hardware metrics complement rather than replace each other. Software metrics validate scenario logic: requests, responses, sessions, applications, response codes, latency, and errors. Hardware metrics confirm that traffic actually left the port and was received by the NIC. First confirm that the scenario reached its plateau, then compare software and hardware, and finally evaluate drops/loss.

Personalized Dashboards

Personalized dashboards add specialized views for particular test scenarios to the standard task metrics. Each dashboard supports a separate analysis objective and can be enabled independently.

They are disabled by default because the agent collects extra traffic detail for them. Before starting a task, an administrator must open Settings → Dashboards, click Select Dashboards, choose the required dashboards, and apply the change. Additional metrics are collected from the next task run; they are not calculated retroactively for a running or completed task.

Once enabled, the selected dashboards appear on the Metrics tab of applicable tasks.

Responder Load Balancing

Responder Load Balancing is intended for testing load balancers, DSR/IP-IP designs, and other solutions that distribute inbound traffic among multiple server IP addresses. It adds a per-responder view to the total task metrics and verifies not only aggregate rate but also the actual uniformity of distribution.

Reading RX

The dashboard groups metrics by responder IP and shows traffic entering the responder side—what the client sent to the servers. The reverse flow, which servers transmit and the client receives, appears on general dashboards as Server TX / Client RX and is not included in this per-responder RX view. With small requests and large responses, Client RX can therefore be much greater than responder RX. These are different directions of one exchange, not an error.

The dashboard contains:

BlockWhat it shows
Active / total respondersIP addresses that received inbound traffic and the total observed group size (Responder Size)
No inbound trafficResponders that received no traffic during the selected interval
Maximum TCP CPS deviationLargest deviation of one responder's TCP establishment rate from the group average
Top 10 underloaded / overloadedIP addresses with the greatest negative and positive deviations from the average distribution
Selected responder detailsTCP CPS, TCP CC, pending/closed connections, and inbound bits/packets for selected IP addresses

Responder Load Balancing personalized dashboard

Figure 25a — Load-distribution summary by responder IP address

Current Version Limit

The dashboard analyzes a group of up to 256 responder IP addresses in one test profile. With more addresses, total task metrics continue to show aggregate traffic, but Responder Size and per-IP distribution details may be incomplete.

Total Metrics

The Total dashboard and Total Statistics section show aggregate task indicators: sent, received, and lost packets/bits in each direction between agents.

MetricDescription
total.rx.packets / total.tx.packetsTotal received/transmitted packets
total.rx.bytes / total.tx.bytesTotal received/transmitted bytes
total.tx.dropPackets discarded during transmission
total.pkt.lostLost packets
total.rx.badInvalid received packets
total.tx.l1_bits / total.rx.l1_bitsTX/RX L1 bit rate, including inter-frame gaps and preambles
total.tx.line_rate / total.rx.line_rateTX/RX line utilization (%)
total.cpu_usageProcessing-core CPU utilization
total.tos.rxReceived packets analyzed by ToS
total.rx.imissedPackets missed by the NIC because a queue overflowed
total.rx.ierrorsNIC-level receive errors

Total Statistics: Loss During Execution

The Total Statistics (Packets) and Total Statistics (Bits) tables calculate loss as the difference between transmission on one side and reception on the other, grouped by the agent-to-agent direction and interfaces.

Agents write metrics to ClickHouse independently and do not synchronize batch-send times. While a task is running, a dashboard can briefly lag: TX on one agent has updated while RX on the other has not, or vice versa. Lost or Loss (%) can then become nonzero for seconds or minutes before decreasing or returning to zero when the lagging side catches up. Visibility depends on the traffic rate and when the Metrics tab is opened.

This is most visible when the task uses two separate agents. When both directions use one agent with two interfaces, the skew is generally smaller, but a brief imbalance is still possible.

For acceptance, inspect Total Statistics after the task has completed fully and stably and both agents have written final metrics. Final loss on a stopped task is the primary reference; transient nonzero loss during a run alone does not prove that the DUT dropped packets.

Agent Anomalies

The Agent Anomalies table on Total (Dual) shows packets and events discarded by the NIC or software stack on a particular agent. These are local diagnostic counters. They are not the same as client-to-server loss in Total Statistics and do not by themselves prove that the DUT dropped packets.

Values are counter increases during the selected dashboard interval, grouped by agent and interface. Zero means that the counter did not increase during that interval.

ColumnMeaning
AgentAgent on which the anomaly was recorded
InterfaceAgent network interface associated with the counter
TX dropPackets prepared by the software stack but not placed in the transmit queue. Growth usually means that the agent or NIC cannot transmit generated traffic fast enough
RX missedPackets missed by the NIC before delivery to the software stack, for example because an RX queue overflowed. Often indicates that the agent cannot drain RX fast enough at the current load
RX discardsInternal NIC-side discards. On Mellanox, this is rx_phy_discard_packets, which can grow because of limits in the card's internal pipeline or PCIe exchange
RX errorsReceive errors reported by the NIC or driver
RX badPackets that reached the software stack but were considered invalid, for example because of a bad checksum, invalid format, or parsing/decapsulation error
RX no_wsNo matching task worker context was found for the received packet. Check protocol, addresses, interface, configuration, and routing to the correct processing queue
RX nombufThe NIC could not obtain a free buffer for another received packet. Growth indicates too few packet buffers or delayed release under high load
TCP dropTotal packets discarded by the agent software TCP stack, including the adjacent reasons and other TCP drop causes
Bad seq serverThe client agent received a server packet whose TCP sequence/ACK values did not match the located client socket state
No socket clientThe client agent received a packet for the configured address range but found no active client TCP socket for the connection. Causes include a late packet after closure, an unexpected IP/port combination, delivery to the wrong processing context, or state desynchronization under load
SYN/ACK bad ACKThe client received a SYN/ACK whose acknowledgment number did not correspond to its SYN; the response cannot complete the handshake and is dropped
Bad seq clientThe server agent received a client packet whose TCP sequence/ACK values did not match the located server socket state
TotalSum of TX drop, hardware/general RX anomalies, and TCP drop. Individual TCP drop reason columns are not added again, so a single TCP drop is not counted twice

HTTP / TLS

Total HTTP/TLS aggregates all HTTP plugins. HTTP/TLS provides per-plugin details.

MetricDescription
http_1_1.tx.requests / http_1_1.rx.responsesSent requests / received responses (HTTP/1.1)
http_1_1.tx.bytes / http_1_1.rx.bytesTX/RX data volume
http_1_1.code.1xx–5xxHTTP response code distribution (1xx, 2xx, 3xx, 4xx, 5xx)
http_1_1.ttfbAverage TTFB from HTTP/1.1 request transmission until the client processes the first response byte
http_1_1.ttlbAverage TTLB from HTTP/1.1 request transmission until the client processes the complete response
http_1_1.wire_ttfbWire TTFB from HTTP/1.1 request transmission until the client NIC timestamps the first response byte
http_1_1.method.get/post/put/patch/deleteRequests by HTTP method
http_2.tx.requests / http_2.rx.responsesSent requests / received responses (HTTP/2)
http_2.code.1xx–5xxHTTP/2 response code distribution
http_2.ttfb / http_2.ttlbAverage time to the first byte / complete HTTP/2 response
http_2.streams.opened/closed/resetedOpened/closed/reset HTTP/2 streams
tcp.cpsTCP Connections Per Second: new connections per second
tcp.ccTCP Concurrent Connections: current active connections
tcp.hs_avg_delayAverage handshake delay from SYN transmission until the client software TCP stack processes SYN/ACK
tcp.hs_wire_avg_delayWire RTT from SYN transmission until the client NIC timestamps SYN/ACK
TCP Data RTT AvgAverage time from transmission of a selected data-bearing TCP segment until its acknowledging ACK; calculated from exact values, excluding retransmissions
TCP Data RTT P50 / P95 / P99Data RTT percentiles rounded up to the nearest bucket boundary; for example, 15 ms means greater than 10 ms and at most 15 ms
TCP Wire Data RTT Avg / P50 / P95 / P99The same measurement with a hardware timestamp for the incoming ACK at the client NIC
TCP Data RTT JitterAverage change in Data RTT between adjacent measurements
TCP Data RTT SamplesCompleted measurements and measurements excluded because of retransmission
tls_1_2.hs_avg_delay / tls_1_3.hs_avg_delayAverage TLS session establishment delay after the TCP handshake completes
tls_1_2.* / tls_1_3.*Other TLS 1.2/1.3 metrics: packets, bytes, CPS, CC, and Client/Server Hello
Latency Under Load

Latency metrics cover the full path observed by the client agent: traversal through the DUT, server-agent processing, and return traffic. TCP Data RTT runs from queuing a selected segment for transmission until its acknowledging ACK is received. Wire Data RTT hardware-timestamps ACK reception at the client NIC but still includes transmit-queue wait on the server agent.

At close to 100% line utilization, an ACK can wait behind data packets, increasing P95/P99 even without loss or retransmission. When comparing DUT impact, make sure the agents are not bottlenecks and leave 5–10% L1 headroom.

Wire Metric Availability

Wire RTT, Wire Data RTT, and Wire TTFB require compatible hardware and are available only on Peresvet ST appliances. They are unavailable on virtual machines and other deployment types.

Latency Measurement (IP/UDP)

The Latency Measurement (IP/UDP) dashboard shows results from the plugin of the same name. Latency is calculated on the client agent from server-side responses.

Panel / metricDescription
CLIENT | UDP RTT — Avg RTTAverage time from measured UDP request transmission until the client agent receives the response
CLIENT | UDP RTT — P50 / P95 / P99 RTTRTT percentiles rounded up to the nearest bucket boundary
CLIENT | UDP Wire RTT — Wire RTTAverage control-flow RTT with hardware response timestamping at the client NIC
CLIENT | UDP Wire RTT — P50 / P95 / P99 Wire RTTControl-flow Wire RTT percentiles with hardware response timestamping
CLIENT | UDP RTT Jitter — Avg RTT jitterAverage absolute RTT change between adjacent measured responses
CLIENT | UDP RTT Jitter — Wire RTT jitterThe same change for Wire RTT
CLIENT | Measured samples — RTT samples/sResponses per second included in RTT calculation
CLIENT | Measured samples — Wire RTT samples/sControl-flow responses per second with a hardware timestamp
CLIENT | UDP requests and responsesAll sent UDP requests and received responses; lines can temporarily differ at a one-second boundary

Packets are sent at the configured rate, while RTT and jitter use a uniform sample. The measured sample count can therefore be lower than the request count. RTT includes both directions through the DUT and response processing by the server agent.

Latency Under Load

UDP RTT runs from queuing a selected UDP request for transmission until the client agent receives its response. Wire RTT hardware-timestamps response reception at the client NIC but still includes response transmit-queue wait on the server agent.

At close to 100% line utilization, a UDP response can wait behind other packets, increasing P95/P99 even without loss. When comparing DUT impact, make sure the agents are not bottlenecks and leave 5–10% L1 headroom.

Wire Metric Availability

Wire RTT and Wire RTT jitter require compatible hardware and are available only on Peresvet ST appliances. They are unavailable on virtual machines and other deployment types.

TCP Flood (SYN / SYN-ACK / ACK / RST / RST-ACK / FIN / FIN-ACK / PSH / PSH-ACK / Xmas)

Total TCP aggregates all TCP flood plugins. Each flood type also has its own dashboard, such as TCP SYN, TCP ACK, or TCP Xmas.

MetricDescription
tcp.tx.flags.syn / tcp.rx.flags.synSent/received SYN packets
tcp.tx.flags.syn_ack / tcp.rx.flags.syn_ackSent/received SYN-ACK packets
tcp.tx.flags.ack / tcp.rx.flags.ackSent/received ACK packets
tcp.tx.flags.rst / tcp.rx.flags.rstSent/received RST packets
tcp.tx.flags.rst_ack / tcp.rx.flags.rst_ackSent/received RST-ACK packets
tcp.tx.flags.fin / tcp.rx.flags.finSent/received FIN packets
tcp.tx.flags.fin_ack / tcp.rx.flags.fin_ackSent/received FIN-ACK packets
tcp.tx.flags.psh / tcp.rx.flags.pshSent/received PSH packets
tcp.tx.flags.psh_ack / tcp.rx.flags.psh_ackSent/received PSH-ACK packets
tcp.tx.flags.xmas / tcp.rx.flags.xmasSent/received Xmas packets (all flags)
tcp.tx.packets / tcp.rx.packetsTotal TX/RX TCP packets
tcp.tx.bytes / tcp.rx.bytesTX/RX TCP data volume

UDP Flood

Total UDP is the aggregate dashboard; UDP provides details.

MetricDescription
udp.tx.packets / udp.rx.packetsSent/received UDP packets
udp.tx.bytes / udp.rx.bytesTX/RX UDP data volume
udp.rtUDP round-trip response time
udp.dropLost UDP packets

Fuzzing (L3-L7)

The Fuzzing (L3-L7) dashboard shows the results of enabled UDP/TCP Fuzzing modules and flow scenarios. It verifies the actual transmission rate, traffic volume, and L4 session state during a test.

Dashboard blockWhat it shows
L3-L4 Fuzzing overviewTask summary and Fuzzing profile activity over the selected interval
UDP: sent packetsSeparate lines for enabled modules: invalid checksum, TTL, DSCP/ECN, IP ID, Payload Data, and UDP Flow
TCP: sent packetsSeparate lines for enabled modules: PSH/ACK, invalid checksum, SEQ, MSS, Window Scale, TCP window, Payload Data, and TCP Flow
UDP: sent bytes / bitsUDP traffic volume and rate in bytes/bits
TCP: sent bytes / bitsTCP traffic volume and rate in bytes/bits
L4 sessions / flowTCP session and UDP flow state when flow modules are enabled
TCP ConnectionsTCP session creation, activity, and closure
UDP Flow SessionsUDP flow count and activity

When several Fuzzing modules are enabled, compare UDP: sent packets and TCP: sent packets with the configured Packets per Second budget. This verifies that load was distributed among the selected modules as expected.

GRE Flood

Total GRE is the aggregate dashboard; GRE provides details.

MetricDescription
gre.tx.packets / gre.rx.packetsSent/received GRE packets
gre.tx.bytes / gre.rx.bytesTX/RX GRE data volume

DNS Flood

Total DNS Flood is the aggregate dashboard; DNS Flood provides details.

MetricDescription
dns_flood.tx.packets / dns_flood.rx.packetsSent/received DNS Flood packets
dns_flood.tx.bytes / dns_flood.rx.bytesTX/RX DNS Flood data volume

ICMP / Ping / Fragmentation / Amplification

Dashboard keyPlugin
ddos_icmp_floodICMP Flood (103)
ddos_icmp_fragmentationICMP Fragmentation Flood (104)
ddos_ping_floodPing Flood (105)
ddos_ping_of_deathPing of Death Flood (106)
ddos_dns_amplificationDNS Amplification UDP (107)
ddos_udp_fragmentationUDP Fragmentation Flood (108)
ddos_ntp_amplificationNTP Amplification UDP (110)

Compromised Host

The compromised_host dashboard shows C2 sessions, steps, timeouts, and beacons.

DHCP Flood (Legacy)

Total DHCP Flood is the aggregate dashboard; DHCP Flood provides details.

MetricDescription
dhcp_flood.tx.packets / dhcp_flood.rx.packetsSent/received DHCP Flood packets
dhcp_flood.tx.bytes / dhcp_flood.rx.bytesTX/RX DHCP Flood data volume

WAF

The WAF dashboard shows Web Application Firewall test results: requests sent in each attack category.

Metric groupDescription
waf.broken_access_control, waf.injection.*, waf.xss.*, waf.ssrf, and othersBasic test: one metric per attack type (18 categories)
waf.sqli.*SQLi Advanced: 50 SQL injection types
waf.xxe.*XXE Advanced: four XML parser attack types
waf.cmdi.*Command Injection Advanced: 18 OS command types
waf.fi.*File Injection Advanced: eight file-inclusion types
waf.pt.*Path Traversal Advanced: 17 traversal types
waf.unc.*UNC Path: four UNC-path attack types
waf.rce.*RCE Advanced: six remote-code-execution types
waf.xss.* (advanced)XSS Advanced: 19 cross-site scripting types
waf.ssrf.* (advanced)SSRF Advanced: 19 server-side request forgery types
waf.ssti.*SSI/SSTI Advanced: seven server-side template injection types
waf.graphql.*GraphQL: two schema attack types

DNS

Total DNS aggregates all DNS plugins. Separate dashboards are available for DNS over UDP, DNS over TCP, DNS over TLS, and DNS over HTTP.

MetricDescription
dns.tx.queries / dns.rx.responsesSent queries / received responses
dns.tx.bytes / dns.rx.bytesTX/RX DNS data volume
dns.rx.rcode.okNOERROR responses
dns.rx.rcode.format_errorFORMERR responses
dns.rx.rcode.server_failureSERVFAIL responses
dns.rx.rcode.name_errorNXDOMAIN responses
dns.rx.rcode.not_implementedNOTIMP responses
dns.rx.rcode.refusedREFUSED responses
dns.rx.flags.aa/tc/rd/raDNS response flags: Authoritative, Truncated, Recursion Desired/Available
dns.tls_1_2.* / dns.tls_1_3.*DNS-over-TLS metrics by TLS version: packets, bytes, and CC

MHDDoS Emulation

The MHDDoS dashboard combines metrics for all active subplugins (SYN Flood, UDP Flood, GRE Flood, STRESS, and more) in one MHDDoS task.

PCAP Replay and Dynamic Applications

Dedicated dashboards for replaying real traffic compare sent and received volume, replay rate, and session state.

Metric groupDescription
PCAP Replay StatelessPackets, bytes, and replay rate of raw PCAP packets
PCAP Replay StatefulSessions, packets, bytes, and replay rate of selected TCP/UDP sessions
ApplicationsActive users, started/completed flows, failed flows, and total traffic volume

CVE Replay and File Transfer

The CVE dashboard is selected automatically from the combination of mode (attack/FP) and coverage (first/all scenarios): cve_replay, cve_replay_all, cve_replay_fp, or cve_replay_fp_all. Outcome semantics (completed, blocked_rst, blocked_syn, blocked_timeout, blocked_orphan) and the distinction between timeout and orphan are described under Network Vulnerabilities (CVE).

Metric groupDescription
CVE ReplayReplay attempts and outcomes: completed (scenario reached its end), blocked_rst, blocked_syn, blocked_timeout, and blocked_orphan
File TransferRequests, responses, transferred file volume, and transfer latency
Malware File TransferTransferred PTI files, receiver responses, and security-system inspection results

RoCEv2, Elephant Flow, and L2 Convergence

Metric groupDescription
RoCEv2RoCEv2 packets, bytes, rate, and congestion events
Elephant Flow TCPLong-lived TCP flows, data volume, rate, and session state
Elephant Flow UDPLong-lived UDP flows, packets, bytes, and rate
L2 Convergence UDPLoss, flow recovery, and convergence-time calculation

IPsec

For IPsec scenarios, use the general traffic dashboards and specialized tunnel panels. Performance results for bulk IPsec scenarios are published under Benchmarks.

Metric groupDescription
Active tunnelsCurrent established IPsec tunnel count
Tunnel establishmentTunnel creation over time
Traffic through IPsecPackets, bytes, and rate within tunnels
Errors and eventsEstablishment errors, disconnects, and tunnel-scenario diagnostic events

Dual Mode (Client + Server)

When client and server plugins run together, Dual dashboards combine metrics from both sides:

DashboardDescription
Total DualGeneral client and server metrics
Total HTTP/TLS DualCombined client + server HTTP/TLS aggregate
HTTP/TLS DualCombined client + server HTTP/TLS details

Service Metrics

Additional metrics on general dashboards:

MetricDescription
arp.rx/tx.packets, arp.rx/tx.bytesAutomatic ARP traffic used to resolve MAC addresses
icmp.rx/tx.packets, icmp.rx/tx.bytesICMP traffic, including automatic ping replies
kni.rx/tx.packets, kni.rx/tx.bytesTraffic through the KNI interface, redirected to the OS kernel
other.rxOther received packets unrelated to plugins