summaryrefslogtreecommitdiff
path: root/src/daq
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2014-10-16 02:08:32 +0200
committerChristian Pointner <equinox@spreadspace.org>2014-10-16 02:08:32 +0200
commitba5c58daea2d11e4ea905e8dd779f3143d3c2c7f (patch)
tree44a9e9f736b1bfe602f16bc92436161b00d93676 /src/daq
parentworkaround init raise condition (diff)
added nginx-lua plugin
Diffstat (limited to 'src/daq')
-rw-r--r--src/daq/README3
-rw-r--r--src/daq/nginx-lua/s5-nginx.lua54
2 files changed, 56 insertions, 1 deletions
diff --git a/src/daq/README b/src/daq/README
index 299ad16..fa280ad 100644
--- a/src/daq/README
+++ b/src/daq/README
@@ -13,4 +13,5 @@ flumotion-rrd
: a batch import for exisiting rrd data written by flumotion rrd plug
accesslog
: a batch or live importer for acceslog-based data (nginx, apache)
-
+nginx-lua
+: a live importer using nginx Lua module to get access log like information
diff --git a/src/daq/nginx-lua/s5-nginx.lua b/src/daq/nginx-lua/s5-nginx.lua
new file mode 100644
index 0000000..3db5201
--- /dev/null
+++ b/src/daq/nginx-lua/s5-nginx.lua
@@ -0,0 +1,54 @@
+--
+-- 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.lua';
+-- }
+--
+
+local status = ngx.var.status
+
+if status == '200' or status == '206' then
+ local json = '{'
+ json = json .. '"time": "' .. string.gsub(ngx.utctime(), " ", "T", 1) .. '",'
+ 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 .. '}'
+
+ ngx.log(ngx.ERR, json)
+end