二十.stub_status模块功能(ngx_http_stub_status_module)
向俊贤
2023-12-01
1.描述
增加对每请求的响应时间的统计:在stub status模块中增加了自Tengine启动以来所有请求的总响应时间(request_time),
单位为ms,可以用来统计一段时间的平均RT(response time):
Active connections: 1
server accepts handled requests request_time
1140 1140 1140 75806
Reading: 0 Writing: 1 Waiting: 0
在tsar中监控Tengine/Nginx可以使用我们开发的tsar模块。
2.安装tsar
$ wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate
$ unzip tsar.zip
$ cd tsar
$ make
$ sudo make install
3.安装tsardevel
$ make tsardevel
4.Tengine/Nginx module for tsar
这是一个tsar模块,它可以从Tengine/Nginx端采集数据.
下载源文件 (https://github.com/taobao/tsar-mod_nginx)
使用指南
1. 安装 tsar.
2. 使用tsar的模块开发工具tsardevel生成一个模块模板
tsardevel mod_ngx
3. 替换模板中的mod_ngx.c.
make
make install
4. 启动tsar.
tsar --nginx
5.常见用法列表:
tsar -i 1 -l 以1秒钟为间隔,实时打印tsar的概述数据
tsar 显示1天内的历史汇总(summury)信息,以默认5分钟为间隔
tsar --cpu -i 1 显示一天内cpu的历史信息,以1分钟为间隔
tsar --live --mem -i 2 以2秒钟为间隔,实时打印mem的数据。
tsar --cpu --mem -i 1 显示一天内的cpu和内存历史数据,以1分钟为间隔。
5.配置
A. 默认采集地址和端口分别为127.0.0.1,80。可以通过环境变量来修改:
example:
export NGX_TSAR_HOST=192.168.0.1
export NGX_TSAR_PORT=8080
B. Tengine/Nginx必须编译了stub_status模块,而且必须在配置文件中增加类似如下配置:
location = /nginx_status {
stub_status on;
}
C. 另外我们也可以使用unix域套接字,比如将NGX_TSAR_HOST指定为一个文件路径:
export NGX_TSAR_HOST=/tmp/nginx-tsar.sock
同时,Tengine/Nginx的配置文件中包含location /nginx_status的server也必须是监听在该域套接口路径上
listen unix:/tmp/nginx-tsar.sock;
D. tsar模块发送给Tengine/Nginx的uri和主机名也可以通过如下环境变量设置:
example:
export NGX_TSAR_SERVER_NAME=status.taobao.com
export NGX_TSAR_URI=/nginx_status