[+]文章目录
模块名
  • ngxhttpreqstat_module,监控模块
描述
  • 这个模块计算定义的变量,根据变量值分别统计Tengine的运行状况。

  • 可以监视的运行状况有:连接数、请求数、各种响应码范围的请求数、输入输出流量、rt、upstream访问等。

  • 可以指定获取所有监控结果或者一部分监控结果。

  • 利用变量添加自定义监控状态。总的监控状态最大个数为50个。

  • 回收过期的监控数据。

编译

默认编入Tengine,可通过--without-httpreqstatmodule不编译此模块,或通过--with-httpreqstatmodule=shared编译为so模块。

例子
http {
    req_status_zone server "$host,$server_addr:$server_port" 10M;

    server {
        location /us {
            req_status_show;
        }

        req_status server;
    }
}
  • 以上例,通过访问/us得到统计结果

    • 每行对应一个server

    • 每行的格式

      kv,bytes_in_total,bytes_out_total,conn_total,req_total,2xx,3xx,4xx,5xx,other,rt_total,upstream_req,upstream_rt,upstream_tries,200,206,302,304,403,404,416,499,500,502,503,504,508,detail_other,ups_4xx,ups_5xx
      
      • kv 计算得到的reqstatuszone指令定义变量的值,最大长度可配置,默认104B,超长的部分截断
      • bytesintotal 从客户端接收流量总和
      • bytesouttotal 发送到客户端流量总和
      • conn_total 处理过的连接总数
      • req_total 处理过的总请求数
      • 2xx 2xx请求的总数
      • 3xx 3xx请求的总数
      • 4xx 4xx请求的总数
      • 5xx 5xx请求的总数
      • other 其他请求的总数
      • rt_total rt的总数
      • upstream_req 需要访问upstream的请求总数
      • upstream_rt 访问upstream的总rt
      • upstream_tries upstram总访问次数
      • 200 200请求的总数
      • 206 206请求的总数
      • 302 302请求的总数
      • 304 304请求的总数
      • 403 403请求的总数
      • 404 404请求的总数
      • 416 416请求的总数
      • 499 499请求的总数
      • 500 500请求的总数
      • 502 502请求的总数
      • 503 503请求的总数
      • 504 504请求的总数
      • 508 508请求的总数
      • detail_other 非以上13种status code的请求总数
      • ups_4xx upstream返回4xx响应的请求总数
      • ups_5xx upstream返回5xx响应的请求总数
    • 注,后续会清理这些状态,因为已经支持了自定义状态。

  • tsar可解析输出结果,具体见https://github.com/alibaba/tsar

指令

Syntax: req_status_zone zone_name value size

Default: none

Context: main

创建统计使用的共享内存。zone_name是共享内存的名称,value用于定义key,支持变量。size是共享内存的大小。

例子:

req_status_zone server "$host,$server_addr:$server_port" 10M;

创建名为“server”的共享内存,大小10M,使用“$host,$server_addr:$server_port”计算key。
  • 注意,如果希望用tsar来监控的话,key的定义中请不要使用逗号。

Syntax: req_status zone_name1 [zone_name2 [zone_name3]]

Default: none

Context: main、srv、loc

开启统计,可以指定同时统计多个目标,每一个zone_name对应一个目标。

Syntax: req_status_show [zone_name1 [zone_name2 [...]]]

Default: 所有建立的共享内存目标

Context: loc

按格式返回统计结果。可指定返回部分目标的统计结果。

Syntax: req_status_zone_add_indecator zone_name $var1 [$var2 [...]]

Default: none

Context: main

通过变量增加自定义字段,新增加的字段目前会展现在每行的末尾。

Syntax: req_status_zone_key_length zone_name length

Default: none

Context: main

定义某个共享内存块中key的最大长度,默认值104。key中超出的部分会被截断。

Syntax: req_status_zone_recycle zone_name times seconds

Default: none

Context: main

定义某个共享内存块过期数据的回收。回收在共享内存耗尽时自动开启。只会回收访问频率低于设置值的监控数据。 频率定义为 times / seconds,默认值为10r/min,即 reqstatuszonerecycle demozone 10 60;


« 前一篇