如何在Nginx中找到bytes_in?

时间:2012-09-05 23:57:26

标签: nginx

我正在使用此模块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已“发送”数据但未接收数据。任何建议都会非常有用

由于

2 个答案:

答案 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!