summaryrefslogtreecommitdiff
path: root/src/daq/nginx-lua/s5-nginx-log.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/daq/nginx-lua/s5-nginx-log.lua')
-rw-r--r--src/daq/nginx-lua/s5-nginx-log.lua100
1 files changed, 0 insertions, 100 deletions
diff --git a/src/daq/nginx-lua/s5-nginx-log.lua b/src/daq/nginx-lua/s5-nginx-log.lua
deleted file mode 100644
index 43d2394..0000000
--- a/src/daq/nginx-lua/s5-nginx-log.lua
+++ /dev/null
@@ -1,100 +0,0 @@
---
--- sfive
---
--- sfive - spreadspace streaming statistics suite is a generic
--- statistic collection tool for streaming server infrastuctures.
--- The system collects and stores meta data like number of views
--- and throughput from a number of streaming servers and stores
--- it in a global data store.
--- The data acquisition is designed to be generic and extensible in
--- order to support different streaming software.
--- sfive also contains tools and applications to filter and visualize
--- live and recorded data.
---
---
--- Copyright (C) 2014 Christian Pointner <equinox@spreadspace.org>
--- Markus Grueneis <gimpf@gimpf.org>
---
--- This file is part of sfive.
---
--- sfive is free software: you can redistribute it and/or modify
--- it under the terms of the GNU General Public License version 3
--- as published by the Free Software Foundation.
---
--- sfive is distributed in the hope that it will be useful,
--- but WITHOUT ANY WARRANTY; without even the implied warranty of
--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--- GNU General Public License for more details.
---
--- You should have received a copy of the GNU General Public License
--- along with sfive. If not, see <http://www.gnu.org/licenses/>.
---
---
--- Install this by adding the following to your nginx.conf
---
--- location /path/to/hls {
--- log_by_lua_file '/path/to/s5-nginx-log.lua';
--- }
---
-
-local cleanup_delay = 1200
-local log_exptime = 600
-
-local log_cleanup = function(premature)
- local sfive = ngx.shared.sfive
- sfive:flush_expired()
- if premature then
- return
- end
- local ok, err = ngx.timer.at(cleanup_delay, log_cleanup)
- if not ok then
- ngx.log(ngx.ERR, "SFive(log): failed to reenqueue log_cleanup: ", err)
- sfive:delete("log:cleanup_running")
- return
- end
-end
-
-local start_cleanup_thread = function(sfive)
- local ok, err, force = sfive:add("log:cleanup_running", 1)
- if not ok then
- if err ~= "exists" then
- ngx.log(ngx.ERR, "SFive(log): failed to set cleanup_running flag: " .. err)
- end
- return
- end
- ok, err = ngx.timer.at(cleanup_delay, log_cleanup)
- if not ok then
- ngx.log(ngx.ERR, "SFive(log): failed to enqueue log_cleanup: ", err)
- sfive:delete("log:cleanup_running")
- return
- end
-end
-
-local status = ngx.var.status
-
-if status == '200' or status == '206' then
- local sfive = ngx.shared.sfive
- local idx, err = sfive:incr("log:idx", 1)
- if not idx then
- ngx.log(ngx.ERR, "SFive(log): incrementing log index failed: " .. err)
- else
- local json = '{'
- json = json .. '"time": "' .. string.gsub(ngx.utctime(), " ", "T", 1) .. 'Z",'
- json = json .. '"client": "' .. ngx.var.remote_addr .. '",'
- json = json .. '"port": ' .. ngx.var.remote_port .. ','
- json = json .. '"ua": "' .. ngx.var.http_user_agent .. '",'
- json = json .. '"uri": "' .. ngx.var.uri .. '",'
- json = json .. '"status": ' .. status .. ','
- json = json .. '"bytes_sent": ' .. ngx.var.bytes_sent
- json = json .. '}'
-
- local sfive_data = ngx.shared.sfive_data
- local ok, err, force = sfive_data:add(idx, json, log_exptime)
- if not ok then
- ngx.log(ngx.ERR, "SFive(log): adding log line (".. idx .. ") to log store failed: " .. err)
- elseif force then
- ngx.log(ngx.WARN, "SFive(log): adding log line has overwritten other log lines - consider increasing the log store!")
- end
- start_cleanup_thread(sfive)
- end
-end