Перейти к основному содержимому

Метрики и дашборды

Пересвет-СТ собирает метрики в реальном времени и экспортирует их в ClickHouse. Для визуализации результатов используется Grafana — каждому типу плагина соответствует один или несколько преднастроенных дашбордов. Дашборды доступны из веб-интерфейса Пересвет-СТ при запущенной задаче.

Экспорт отчётов PDF/CSV/HTML и перенос задач (архив / JSON) описаны в разделе Экспорт отчетов и импорт задач.

Как читать секундные метрики

Метрики Пересвет-СТ показывают фактическое поведение трафика на коротких интервалах. На большинстве графиков точка соответствует измерению за 1 секунду: сколько запросов, ответов, пакетов, байт или бит было реально сгенерировано, передано, принято или обработано именно в этом секундном окне.

Система не сглаживает такие графики искусственно на 5 или 10 секунд и не подрисовывает «идеальную» линию целевого профиля. Поэтому на графике может быть видна небольшая естественная неравномерность: одна секунда оказывается немного ниже целевого значения, следующая - немного выше. Это нормальное свойство точного секундного измерения, особенно для TCP, HTTP и сценариев с большим числом параллельных сессий.

В реальной сети трафик также не приходит идеально одинаковыми порциями каждую секунду. TCP-соединения устанавливаются и закрываются во времени, HTTP-запрос зависит от готовности соединения и ответа, пакеты группируются сетевой картой и обрабатываются несколькими ядрами агента, а границы секундных интервалов не совпадают с границами отдельных сессий. Если часть событий попадает на границу двух секунд, соседние точки графика могут немного отличаться, при этом среднее значение на рабочем интервале и суммарный объем трафика соответствуют заданному профилю.

Практически это означает:

  • для проверки скорости используйте участок плато после разгона и до остановки задачи;
  • учитывайте параметры CPS и CC: если задача открывает 100 новых соединений в секунду до 1000 активных соединений, плато появится не мгновенно, а после разгона;
  • оценивайте среднее значение на выбранном интервале и общий объем за интервал, а не только одну отдельную секундную точку;
  • сравнивайте программные и аппаратные метрики: программные показывают, что было сгенерировано и обработано сценарием, аппаратные - что физически прошло через сетевой интерфейс;
  • отдельно проверяйте Drops и потери: при нулевых потерях небольшие колебания секундных значений обычно отражают точность измерения, а не проблему генерации.

На примере HTTP-задачи с целевым профилем 10000 запросов в секунду видно, что после разгона линия держится около заданного значения. Отдельные секундные точки могут показывать 9.9K или чуть больше 10K запросов в секунду, но рабочее среднее на плато соответствует целевому профилю.

HTTP 10K RPS на секундных метриках

Рис. 25 — HTTP-нагрузка 10K RPS: точные секундные значения вокруг целевого профиля

Похожее поведение может быть видно и на общих графиках пакетов или битов. Если профиль задан как постоянная скорость, но график построен по фактическим 1-секундным интервалам, небольшая «ступенчатость» или компенсация в соседней секунде допустимы. Для приемки результата важны рабочее плато, среднее значение, общий объем трафика и отсутствие потерь.

Общий график TX с секундными интервалами

Рис. 26 — Общий TX-график: фактические 1-секундные интервалы без искусственного сглаживания

Основные группы метрик

В дашбордах используются несколько типов показателей. Они описывают разные уровни одного и того же теста, поэтому их нужно читать совместно.

ГруппаЧто показываетКак интерпретировать
Requests / ResponsesПрикладные операции: HTTP-запросы и ответы, DNS-запросы и ответы, операции передачи файлов и другие события L7Используйте для проверки бизнес-профиля приложения: сколько прикладных действий реально выполнено за секунду или за весь интервал
PacketsКоличество сетевых пакетов TX/RXОдин прикладной запрос может соответствовать одному или нескольким пакетам. При TLS, крупных ответах, фрагментации или повторной передаче число пакетов не обязано совпадать с числом запросов
Bytes / BitsОбъем переданных данных и скорость передачиПодходит для оценки полезной нагрузки и L2/L3-скорости. Если размер пакетов фиксирован, Bits и Packets обычно меняются синхронно
L1 / L2 BitsСкорость на разных уровнях учетаL2 отражает объем Ethernet-кадров, L1 дополнительно учитывает физические накладные расходы линии, поэтому именно L1 используется для оценки line rate
TCP ConnectionsCPS, активные, закрытые и ожидающие соединенияCPS показывает скорость открытия TCP-соединений, Active connections / CC - текущую конкурентность, Closed - завершение соединений, Pending - соединения в процессе установления
Drops / LossПотери, отброшенные пакеты и ошибки приема/передачиИспользуйте для подтверждения качества теста. Если скорость близка к профилю, но есть drops, сначала анализируйте причину потерь
Generated / SoftwareСчетчики сценария внутри агентаПоказывают, сколько трафика сценарий сформировал, обработал и учел на уровне приложения или сетевого стека
Hardware / PhysicalАппаратная статистика сетевого интерфейсаПоказывает фактический трафик на физическом порту: line rate, L1/L2 bits, аппаратные пакеты и ошибки интерфейса

Программные и аппаратные метрики не заменяют друг друга. Программные метрики удобны для проверки логики сценария: запросов, ответов, сессий, приложений, кодов ответа, задержек и ошибок. Аппаратные метрики подтверждают, что трафик действительно вышел на порт и был принят сетевой картой. При анализе результата сначала проверьте, что сценарий вышел на плато, затем сравните software и hardware, после этого оцените drops/loss.

Общие метрики (Total)

Дашборд Total отображает агрегированные показатели по всем плагинам задачи:

МетрикаОписание
total.rx.packets / total.tx.packetsОбщее количество принятых / отправленных пакетов
total.rx.bytes / total.tx.bytesОбщий объём принятых / отправленных данных (байт)
total.tx.dropКоличество отброшенных пакетов при отправке
total.pkt.lostКоличество потерянных пакетов
total.rx.badКоличество принятых некорректных пакетов
total.tx.l1_bits / total.rx.l1_bitsБитрейт L1 (с учётом межкадровых интервалов и преамбул) TX / RX
total.tx.line_rate / total.rx.line_rateУтилизация линии (%) TX / RX
total.cpu_usageЗагрузка CPU ядер обработки
total.tos.rxПринятые пакеты с анализом поля ToS
total.rx.imissedПакеты, пропущенные NIC (переполнение очереди)
total.rx.ierrorsОшибки приёма на уровне NIC

HTTP / TLS

Дашборд Total HTTP/TLS — агрегация по всем HTTP-плагинам. Дашборд HTTP/TLS — детализация по конкретному плагину.

МетрикаОписание
http_1_1.tx.requests / http_1_1.rx.responsesОтправленные запросы / полученные ответы (HTTP/1.1)
http_1_1.tx.bytes / http_1_1.rx.bytesОбъём данных TX / RX
http_1_1.code.1xx–5xxРаспределение HTTP-кодов ответа (1xx, 2xx, 3xx, 4xx, 5xx)
http_1_1.ttfbTime To First Byte — задержка до первого байта ответа
http_1_1.ttlbTime To Last Byte — задержка до последнего байта ответа
http_1_1.method.get/post/put/patch/deleteКоличество запросов по HTTP-методам
http_2.tx.requests / http_2.rx.responsesОтправленные запросы / полученные ответы (HTTP/2)
http_2.code.1xx–5xxРаспределение HTTP-кодов ответа (HTTP/2)
http_2.ttfb / http_2.ttlbЗадержки TTFB / TTLB (HTTP/2)
http_2.streams.opened/closed/resetedКоличество открытых / закрытых / сброшенных стримов HTTP/2
tcp.cpsTCP Connections Per Second — новых соединений в секунду
tcp.ccTCP Concurrent Connections — текущие активные соединения
tcp.hs_avg_delayСредняя задержка TCP-хендшейка
tls_1_2.* / tls_1_3.*Аналогичные метрики в разрезе версий TLS (пакеты, байты, CPS, CC, Client/Server Hello, задержка хендшейка)

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

Дашборд Total TCP — агрегация по всем TCP flood плагинам. Для каждого типа flood есть отдельный дашборд (например, TCP SYN, TCP ACK, TCP Xmas и т.д.).

МетрикаОписание
tcp.tx.flags.syn / tcp.rx.flags.synОтправленные / принятые SYN-пакеты
tcp.tx.flags.syn_ack / tcp.rx.flags.syn_ackОтправленные / принятые SYN-ACK-пакеты
tcp.tx.flags.ack / tcp.rx.flags.ackОтправленные / принятые ACK-пакеты
tcp.tx.flags.rst / tcp.rx.flags.rstОтправленные / принятые RST-пакеты
tcp.tx.flags.rst_ack / tcp.rx.flags.rst_ackОтправленные / принятые RST-ACK-пакеты
tcp.tx.flags.fin / tcp.rx.flags.finОтправленные / принятые FIN-пакеты
tcp.tx.flags.fin_ack / tcp.rx.flags.fin_ackОтправленные / принятые FIN-ACK-пакеты
tcp.tx.flags.psh / tcp.rx.flags.pshОтправленные / принятые PSH-пакеты
tcp.tx.flags.psh_ack / tcp.rx.flags.psh_ackОтправленные / принятые PSH-ACK-пакеты
tcp.tx.flags.xmas / tcp.rx.flags.xmasОтправленные / принятые Xmas-пакеты (все флаги)
tcp.tx.packets / tcp.rx.packetsОбщее количество TCP-пакетов TX / RX
tcp.tx.bytes / tcp.rx.bytesОбъём TCP-данных TX / RX

UDP Flood

Дашборд Total UDP — агрегация. Дашборд UDP — детализация.

МетрикаОписание
udp.tx.packets / udp.rx.packetsОтправленные / принятые UDP-пакеты
udp.tx.bytes / udp.rx.bytesОбъём UDP-данных TX / RX
udp.rtВремя отклика (round-trip) UDP
udp.dropПотерянные UDP-пакеты

Fuzzing (L3-L7)

Дашборд Fuzzing (L3-L7) отображает результат работы включенных UDP/TCP-модулей Fuzzing и flow-сценариев. Он используется для проверки фактической скорости отправки, объема трафика и состояния L4-сессий во время теста.

Блок дашбордаЧто показывает
Обзор L3-L4 фаззингаСводное состояние задачи и активность Fuzzing-профиля на выбранном интервале
UDP: отправленные пакетыОтдельные линии по включенным UDP-модулям: неверная чексумма, TTL, DSCP/ECN, IP ID, Payload Data и UDP Flow
TCP: отправленные пакетыОтдельные линии по включенным TCP-модулям: PSH/ACK, неверная чексумма, SEQ, MSS, Window Scale, TCP window, Payload Data и TCP Flow
UDP: отправленные байты / битыОбъем UDP-трафика и скорость передачи в байтах/битах
TCP: отправленные байты / битыОбъем TCP-трафика и скорость передачи в байтах/битах
L4-сессии / flowСостояние TCP-сессий и UDP flow при включенных flow-модулях
TCP ConnectionsСоздание, активность и закрытие TCP-сессий
UDP Flow SessionsКоличество и активность UDP flow

Если в задаче включено несколько модулей Fuzzing, сравнивайте линии UDP: отправленные пакеты и TCP: отправленные пакеты с заданным бюджетом Пакетов в секунду. Это помогает проверить, что нагрузка распределилась между выбранными модулями ожидаемым образом.

GRE Flood

Дашборд Total GRE — агрегация. Дашборд GRE — детализация.

МетрикаОписание
gre.tx.packets / gre.rx.packetsОтправленные / принятые GRE-пакеты
gre.tx.bytes / gre.rx.bytesОбъём GRE-данных TX / RX

DNS Flood

Дашборд Total DNS Flood — агрегация. Дашборд DNS Flood — детализация.

МетрикаОписание
dns_flood.tx.packets / dns_flood.rx.packetsОтправленные / принятые DNS Flood-пакеты
dns_flood.tx.bytes / dns_flood.rx.bytesОбъём DNS Flood-данных TX / RX

ICMP / Ping / Fragmentation / Amplification

Дашборд (ключ)Плагин
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 — сессии, шаги, таймауты и маяк C2.

DHCP Flood (legacy)

Дашборд Total DHCP Flood — агрегация. Дашборд DHCP Flood — детализация.

МетрикаОписание
dhcp_flood.tx.packets / dhcp_flood.rx.packetsОтправленные / принятые DHCP Flood-пакеты
dhcp_flood.tx.bytes / dhcp_flood.rx.bytesОбъём DHCP Flood-данных TX / RX

WAF

Дашборд WAF отображает результаты тестирования Web Application Firewall — количество отправленных запросов по каждой категории атак:

Группа метрикОписание
waf.broken_access_control, waf.injection.*, waf.xss.*, waf.ssrf и др.Базовое тестирование: по одной метрике на каждый тип атаки (18 категорий)
waf.sqli.*SQLi Advanced: 50 типов SQL-инъекций
waf.xxe.*XXE Advanced: 4 типа атак на XML-парсер
waf.cmdi.*Command Injection Advanced: 18 типов OS-команд
waf.fi.*File Injection Advanced: 8 типов включения файлов
waf.pt.*Path Traversal Advanced: 17 типов обхода путей
waf.unc.*UNC Path: 4 типа атак через UNC-пути
waf.rce.*RCE Advanced: 6 типов удалённого выполнения кода
waf.xss.* (advanced)XSS Advanced: 19 типов межсайтового скриптинга
waf.ssrf.* (advanced)SSRF Advanced: 19 типов подделки серверных запросов
waf.ssti.*SSI/SSTI Advanced: 7 типов серверных инъекций шаблонов
waf.graphql.*GraphQL: 2 типа атак на схему GraphQL

DNS

Дашборд Total DNS — агрегация по всем DNS-плагинам. Отдельные дашборды: DNS over UDP, DNS over TCP, DNS over TLS, DNS over HTTP.

МетрикаОписание
dns.tx.queries / dns.rx.responsesОтправленные запросы / полученные ответы
dns.tx.bytes / dns.rx.bytesОбъём DNS-данных TX / RX
dns.rx.rcode.okОтветы с кодом NOERROR
dns.rx.rcode.format_errorОтветы с кодом FORMERR
dns.rx.rcode.server_failureОтветы с кодом SERVFAIL
dns.rx.rcode.name_errorОтветы с кодом NXDOMAIN
dns.rx.rcode.not_implementedОтветы с кодом NOTIMP
dns.rx.rcode.refusedОтветы с кодом REFUSED
dns.rx.flags.aa/tc/rd/raФлаги DNS-ответов: Authoritative, Truncated, Recursion Desired/Available
dns.tls_1_2.* / dns.tls_1_3.*Метрики DNS over TLS в разрезе версий TLS (пакеты, байты, CC)

MHDDoS Emulation

Дашборд MHDDoS отображает комбинированные метрики всех активных подплагинов (SYN Flood, UDP Flood, GRE Flood, STRESS и др.) в рамках одной задачи MHDDoS.

PCAP Replay и Динамические приложения

Для сценариев воспроизведения реального трафика доступны отдельные дашборды, которые помогают сравнить отправленный и принятый объем, скорость воспроизведения и состояние сессий.

Группа метрикОписание
PCAP Replay StatelessПакеты, байты и скорость воспроизведения raw-пакетов из PCAP
PCAP Replay StatefulСессии, пакеты, байты и скорость воспроизведения выбранных TCP/UDP-сессий
ApplicationsАктивные пользователи, запущенные/завершенные потоки, неуспешные потоки и общий объем трафика

CVE Replay и передача файлов

Дашборд CVE выбирается автоматически по комбинации режима (атака / FP) и охвата (первый / все сценарии): cve_replay, cve_replay_all, cve_replay_fp, cve_replay_fp_all. Подробности — в разделе плагина CVE.

Группа метрикОписание
CVE ReplayПопытки воспроизведения, завершенные сценарии, блокировки (blocked_timeout и др.), таймауты и события по выбранным CVE
File TransferЗапросы, ответы, объем переданных файлов и задержки передачи
Malware File TransferПереданные PTI-файлы, ответы принимающей стороны и результаты проверки средств защиты

RoCEv2, Elephant Flow и L2 Convergence

Группа метрикОписание
RoCEv2Пакеты, байты, скорость и события перегрузки RoCEv2
Elephant Flow TCPДлительные TCP-потоки, объем данных, скорость и состояние сессий
Elephant Flow UDPДлительные UDP-потоки, пакеты, байты и скорость передачи
L2 Convergence UDPПотери, восстановление потока и расчет времени сходимости

IPsec

Для IPsec-сценариев используйте общие дашборды трафика и специализированные панели туннелей. Производительные результаты массовых IPsec-сценариев опубликованы в разделе Benchmarks.

Группа метрикОписание
Активные туннелиТекущее число поднятых IPsec-туннелей
Открытие туннелейДинамика создания туннелей во времени
Трафик через IPsecПакеты, байты и скорость передачи внутри туннелей
Ошибки и событияОшибки установления, разрывы и диагностические события туннельных сценариев

Dual-режим (клиент + сервер)

При одновременном запуске клиентского и серверного плагинов доступны дашборды с суффиксом Dual, объединяющие метрики обеих сторон на одном экране:

ДашбордОписание
Total DualОбщие метрики клиента и сервера
Total HTTP/TLS DualHTTP/TLS агрегация клиент + сервер
HTTP/TLS DualДетализация HTTP/TLS клиент + сервер

Служебные метрики

Дополнительные метрики, доступные на общих дашбордах:

МетрикаОписание
arp.rx/tx.packets, arp.rx/tx.bytesARP-трафик (автоматический, для резолвинга MAC-адресов)
icmp.rx/tx.packets, icmp.rx/tx.bytesICMP-трафик (автоматические ответы на ping и др.)
kni.rx/tx.packets, kni.rx/tx.bytesТрафик через KNI-интерфейс (перенаправление в ядро ОС)
other.rxПрочие принятые пакеты, не относящиеся к плагинам