我正在使用此模块https://github.com/Lax/ngx_http_accounting_module来计算nginx请求计数和字节输出
我可以看到在代码中使用了bytes_out并且工作正常。
代码段: ngx_http_accounting_handler(ngx_http_request_t * r){ .. stats-> bytes_out + = r-> connection-> sent; }
但是如何计算bytes_in?任何线索?我检查了ngx_http_request_s& ngx_connection_s已“发送”数据但未接收数据。任何建议都会非常有用
由于
答案 0 :(得分:1)
使用r-> request_length,就像在$request_length日志模块变量的nginx核心中完成的那样。
答案 1 :(得分:0)
我已更新ngx_http_accounting_module
,添加了bytes_in support
。
ngx_http_accounting_module
的原始版本(v0.1)未实现bytes_in
。
在v0.2中,此值将添加到stats变量中。
stats->nr_requests += 1;
+ stats->bytes_in += r->request_length;
stats->bytes_out += r->connection->sent;
输出格式更改为以下代码,将bytes_in:
添加到输出缓冲区。
- sprintf(output_buffer, "pid:%i|from:%ld|to:%ld|accounting_id:%s|requests:%ld|bytes_out:%ld",
+ sprintf(output_buffer, "pid:%i|from:%ld|to:%ld|accounting_id:%s|requests:%ld|bytes_in:%ld|bytes_out:%ld",
ngx_getpid(),
ngx_http_accounting_old_time,
ngx_http_accounting_new_time,
name,
stats->nr_requests,
+ stats->bytes_in,
stats->bytes_out
);
有关详细信息,请参阅此处:https://github.com/Lax/ngx_http_accounting_module/tree/v0.2。
感谢Maxim Dounin!