-- -- 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 -- Markus Grueneis -- -- 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 . -- -- -- Install this by adding the following to your nginx.conf -- -- http { -- lua_shared_dict sfive 64k; -- lua_shared_dict sfive_locks 64k; -- lua_shared_dict sfive_data 64m; -- init_by_lua_file '/path/to/s5-nginx-init.lua'; -- } -- ngx.log(ngx.DEBUG, "SFive: loaded") locks = require "resty.lock" local sfive = ngx.shared.sfive sfive:flush_all() sfive:flush_expired() local sfive_data = ngx.shared.sfive_data sfive_data:flush_all() sfive_data:flush_expired() -- try to create locks so we get an error on init and not on first usage local lock = locks:new("sfive_locks") local elapsed, err = lock:lock("test") if not elapsed then ngx.log(ngx.ERR, "SFive(init): lock error: " .. err) else local ok, err, force = sfive:set("log:idx", 0) if not ok then ngx.log(ngx.ERR, "SFive(init): creating log index counter failed: " .. err) else ngx.log(ngx.INFO, "SFive(init): initialized successfully!") end ok, err = lock:unlock("test") if not ok then ngx.log(ngx.ERR, "SFive(init): unlock error: " .. err) end end