capture 1.2.0
这是一个基于 PcapPlusPlus、PF_RING 和 ClickHouse 构建的高性能网络流量分析系统,专注于实时流量捕获、解析与存储。
Loading...
Searching...
No Matches
HttpStatsCollector Class Reference

HTTP统计信息收集器 More...

#include <HttpStatsCollector.h>

Collaboration diagram for HttpStatsCollector:
[legend]

Classes

struct  HttpFlowData
 为每个流收集的辅助数据,用于帮助计算该流的统计信息 More...

Public Member Functions

 HttpStatsCollector ()
 构造函数 - 清空所有结构
void collectStats (pcpp::Packet *httpPacket)
 为单个包收集统计信息
void calcRates ()
 计算速率。应该定期调用
void clear ()
 清空到目前为止收集的所有统计信息
HttpGeneralStatsgetGeneralStats ()
 获取HTTP通用统计信息
HttpRequestStatsgetRequestStats ()
 获取HTTP请求统计信息
HttpResponseStatsgetResponseStats ()
 获取HTTP响应统计信息

Private Member Functions

uint32_t collectHttpTrafficStats (pcpp::Packet *httpPacket)
 收集与每个HTTP包相关的统计信息(请求、响应或任何其他)
void collectHttpGeneralStats (pcpp::TcpLayer *tcpLayer, pcpp::HttpMessage *message, uint32_t flowKey)
 收集与HTTP消息相关的统计信息(请求或响应)
void collectRequestStats (pcpp::HttpRequestLayer *req)
 收集与HTTP请求消息相关的统计信息
void collectResponseStats (pcpp::HttpResponseLayer *res)
 收集与HTTP响应消息相关的统计信息
double getCurTime (void)
 获取当前时间

Private Attributes

HttpGeneralStats m_GeneralStats
 当前HTTP通用统计信息
HttpGeneralStats m_PrevGeneralStats
 上次的HTTP通用统计信息
HttpRequestStats m_RequestStats
 当前HTTP请求统计信息
HttpRequestStats m_PrevRequestStats
 上次的HTTP请求统计信息
HttpResponseStats m_ResponseStats
 当前HTTP响应统计信息
HttpResponseStats m_PrevResponseStats
 上次的HTTP响应统计信息
std::map< uint32_t, HttpFlowDatam_FlowTable
 流表,存储每个流的辅助数据
double m_LastCalcRateTime
 上次计算速率的时间
double m_StartTime
 统计开始时间

Detailed Description

HTTP统计信息收集器

应该为每个到达的包调用,并定期调用以计算速率。 收集HTTP流量的各种统计信息,包括请求、响应、流量速率等。

Constructor & Destructor Documentation

◆ HttpStatsCollector()

HttpStatsCollector::HttpStatsCollector ( )
inlineexplicit

构造函数 - 清空所有结构

初始化统计收集器并清空所有统计数据

Member Function Documentation

◆ calcRates()

void HttpStatsCollector::calcRates ( )
inline

计算速率。应该定期调用

计算当前速率和总体速率,更新所有速率相关的统计信息

◆ clear()

void HttpStatsCollector::clear ( )
inline

清空到目前为止收集的所有统计信息

重置所有统计数据并重新初始化时间戳

◆ collectHttpGeneralStats()

void HttpStatsCollector::collectHttpGeneralStats ( pcpp::TcpLayer * tcpLayer,
pcpp::HttpMessage * message,
uint32_t flowKey )
inlineprivate

收集与HTTP消息相关的统计信息(请求或响应)

Parameters
tcpLayerTCP层指针
messageHTTP消息指针
flowKey流键值

处理HTTP事务的开启和关闭,检测HTTP管道化

◆ collectHttpTrafficStats()

uint32_t HttpStatsCollector::collectHttpTrafficStats ( pcpp::Packet * httpPacket)
inlineprivate

收集与每个HTTP包相关的统计信息(请求、响应或任何其他)

Parameters
httpPacketHTTP包指针
Returns
此包的流键值

此方法计算并返回此包的流键

◆ collectRequestStats()

void HttpStatsCollector::collectRequestStats ( pcpp::HttpRequestLayer * req)
inlineprivate

收集与HTTP请求消息相关的统计信息

Parameters
reqHTTP请求层指针

统计请求数量、头部大小、主机名和HTTP方法

◆ collectResponseStats()

void HttpStatsCollector::collectResponseStats ( pcpp::HttpResponseLayer * res)
inlineprivate

收集与HTTP响应消息相关的统计信息

Parameters
resHTTP响应层指针

统计响应数量、头部大小、内容长度、内容类型和状态码

◆ collectStats()

void HttpStatsCollector::collectStats ( pcpp::Packet * httpPacket)
inline

为单个包收集统计信息

Parameters
httpPacket要处理的HTTP包指针

分析包的类型(请求/响应)并收集相应的统计信息

◆ getCurTime()

double HttpStatsCollector::getCurTime ( void )
inlineprivate

获取当前时间

Returns
当前时间(秒,包含微秒精度)

使用gettimeofday获取高精度时间戳

◆ getGeneralStats()

HttpGeneralStats & HttpStatsCollector::getGeneralStats ( )
inline

获取HTTP通用统计信息

Returns
HTTP通用统计信息的引用

◆ getRequestStats()

HttpRequestStats & HttpStatsCollector::getRequestStats ( )
inline

获取HTTP请求统计信息

Returns
HTTP请求统计信息的引用

◆ getResponseStats()

HttpResponseStats & HttpStatsCollector::getResponseStats ( )
inline

获取HTTP响应统计信息

Returns
HTTP响应统计信息的引用

Member Data Documentation

◆ m_FlowTable

std::map<uint32_t, HttpFlowData> HttpStatsCollector::m_FlowTable
private

流表,存储每个流的辅助数据

◆ m_GeneralStats

HttpGeneralStats HttpStatsCollector::m_GeneralStats
private

当前HTTP通用统计信息

◆ m_LastCalcRateTime

double HttpStatsCollector::m_LastCalcRateTime
private

上次计算速率的时间

◆ m_PrevGeneralStats

HttpGeneralStats HttpStatsCollector::m_PrevGeneralStats
private

上次的HTTP通用统计信息

◆ m_PrevRequestStats

HttpRequestStats HttpStatsCollector::m_PrevRequestStats
private

上次的HTTP请求统计信息

◆ m_PrevResponseStats

HttpResponseStats HttpStatsCollector::m_PrevResponseStats
private

上次的HTTP响应统计信息

◆ m_RequestStats

HttpRequestStats HttpStatsCollector::m_RequestStats
private

当前HTTP请求统计信息

◆ m_ResponseStats

HttpResponseStats HttpStatsCollector::m_ResponseStats
private

当前HTTP响应统计信息

◆ m_StartTime

double HttpStatsCollector::m_StartTime
private

统计开始时间


The documentation for this class was generated from the following file: