包处理类回调:统计、批量存入
More...
#include <packet_handler.h>
包处理类回调:统计、批量存入
此类负责处理网络包,收集统计信息,并批量存储到ClickHouse数据库。 包含各种网络层的数据列以及HTTP统计收集功能。
◆ packet_handler()
packet_handler::packet_handler |
( |
std::string | tb_prefix = "" | ) |
|
|
inline |
构造函数
- Parameters
-
初始化所有ClickHouse数据列和HTTP统计收集器, 建立与本地ClickHouse数据库的连接
◆ ~packet_handler()
packet_handler::~packet_handler |
( |
| ) |
|
|
inline |
析构函数
线程池销毁时执行,如果队列中还有数据则发送到数据库
◆ flush()
void packet_handler::flush |
( |
| ) |
|
|
inline |
清空所有数据列
清空所有ClickHouse数据列的内容,为下一批数据做准备
◆ handle_packet()
void packet_handler::handle_packet |
( |
pcpp::Packet * | packet | ) |
|
|
inline |
处理函数
- Parameters
-
解析包的各种属性并添加到相应的数据列中,收集HTTP统计信息。 当队列达到最大长度时,批量发送数据到数据库并清空队列。
◆ send2db()
void packet_handler::send2db |
( |
| ) |
|
|
inline |
发送数据到数据库
将收集的包数据批量插入到ClickHouse数据库的多个表中, 包括主包表、源IP哈希表和协议哈希表。包含错误处理和重试机制。
◆ client
Client packet_handler::client |
|
private |
◆ col_ack_num
std::shared_ptr<ColumnUInt32> packet_handler::col_ack_num |
|
private |
◆ col_dst_ip
std::shared_ptr<ColumnString> packet_handler::col_dst_ip |
|
private |
◆ col_dst_port
std::shared_ptr<ColumnUInt16> packet_handler::col_dst_port |
|
private |
◆ col_flag
std::shared_ptr<ColumnUInt16> packet_handler::col_flag |
|
private |
◆ col_hash_val
std::shared_ptr<ColumnUInt32> packet_handler::col_hash_val |
|
private |
◆ col_icmp_code
std::shared_ptr<ColumnUInt8> packet_handler::col_icmp_code |
|
private |
◆ col_icmp_type
std::shared_ptr<ColumnUInt8> packet_handler::col_icmp_type |
|
private |
◆ col_id
std::shared_ptr<ColumnUInt16> packet_handler::col_id |
|
private |
◆ col_len_load
std::shared_ptr<ColumnUInt16> packet_handler::col_len_load |
|
private |
◆ col_len_udp
std::shared_ptr<ColumnUInt16> packet_handler::col_len_udp |
|
private |
◆ col_offset
std::shared_ptr<ColumnUInt16> packet_handler::col_offset |
|
private |
◆ col_packet_len
std::shared_ptr<ColumnInt32> packet_handler::col_packet_len |
|
private |
◆ col_protocol
std::shared_ptr<ColumnUInt8> packet_handler::col_protocol |
|
private |
◆ col_protocol_ip
std::shared_ptr<ColumnUInt8> packet_handler::col_protocol_ip |
|
private |
◆ col_seq_num
std::shared_ptr<ColumnUInt32> packet_handler::col_seq_num |
|
private |
◆ col_src_ip
std::shared_ptr<ColumnString> packet_handler::col_src_ip |
|
private |
◆ col_src_port
std::shared_ptr<ColumnUInt16> packet_handler::col_src_port |
|
private |
◆ col_tos
std::shared_ptr<ColumnUInt8> packet_handler::col_tos |
|
private |
◆ col_ttl
std::shared_ptr<ColumnUInt8> packet_handler::col_ttl |
|
private |
◆ col_tv_nsec
std::shared_ptr<ColumnUInt32> packet_handler::col_tv_nsec |
|
private |
◆ col_tv_sec
std::shared_ptr<ColumnUInt32> packet_handler::col_tv_sec |
|
private |
◆ col_window
std::shared_ptr<ColumnUInt16> packet_handler::col_window |
|
private |
◆ collector
◆ queue_len
int packet_handler::queue_len |
|
private |
◆ table_prefix
std::string packet_handler::table_prefix |
|
private |
The documentation for this class was generated from the following file: