Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

ngx_stats

Watch live nginx stats from your servers

Installation

  1. Install nginx configured with --add-module=/path/to/lua-nginx-module
  2. Clone ngx_stats in path specified by lua_package_path policy
cd /etc/nginx/lua/
git clone git@github.com:StudioSol/ngx_stats.git stats

Overview

Nginx Lua module to capture and show stats. stats/log.lua module collect statistics for requests across location with log_by_lua_file 'stats/log.lua'; directive. stats/show.lua response for JSON reply.

Configure nginx:

user www-data;worker_processes 1;error_log /var/log/nginx/error.log error;pid /var/run/nginx.pid;events{worker_connections61440;}http{access_log off;
lua_shared_dict ngx_stats 10m;
lua_package_path '/etc/nginx/lua/?.lua;;';
lua_package_cpath '/etc/nginx/lua/?.so;;';
init_by_lua_file /etc/nginx/lua/stats/init.lua;proxy_cache_path /var/tmp/cache_http levels=1:1:1
keys_zone=g_cache:64m
max_size=1024m inactive=4h;server{listen80;server_name example.com;set$stats_group"example.com";
log_by_lua_file /etc/nginx/lua/stats/log.lua;location / {proxy_pass"http://127.0.0.1:8080";proxy_cache g_cache;}location = /status.json {default_type'application/json';
content_by_lua_file /etc/nginx/lua/stats/show.lua;}}server{listen80;server_name sub.example.com;set$stats_group"sub.example.com";
log_by_lua_file /etc/nginx/lua/stats/log.lua;location / {proxy_pass"http://127.0.0.1:8081";proxy_cache g_cache;}}server{listen80 default_server;server_name _;
log_by_lua_file /etc/nginx/lua/stats/log.lua;return404;}}

Result

  • See result in example.com/status.json
  • All requests that do not have $stats_group, are displayed in the group: other
{
"stats_start": 1397069333.819,
"example.com": {
"cache": {
"expired": 812415,
"updating": 1526,
"miss": 13276642,
"hit": 24260426,
"stale": 162
},
"upstream_requests_total": 14090608,
"request_time": {
"sum": 803899.9091289
},
"status": {
"3xx": 2,
"4xx": 238784,
"5xx": 18619,
"2xx": 38109854
},
"upstream_resp_time_sum": 636378.56698991,
"requests_total": 38367259
},
"sub.example.com": {
"cache": {
"expired": 911851,
"updating": 1187,
"miss": 1742453,
"hit": 61705830,
"stale": 1061
},
"upstream_requests_total": 2657158,
"request_time": {
"sum": 1607474.1242547
},
"status": {
"3xx": 538834,
"4xx": 1080163,
"5xx": 1693,
"2xx": 62743490
},
"upstream_resp_time_sum":105318.85199993,
"requests_total": 64364180
},
"other": {
"status": {
"4xx":4169
},
"requests_total": 4169,
"request_time": {
"sum": 51761.917998552
}
}
}

See Also

About

Collect nginx status in lua.

Resources

Stars

39 stars

Watchers

11 watching

Forks

Releases

Packages

Contributors

Languages