Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local socket = require 'socket'
- local metric = require 'metric'
- local ngx = require 'ngx'
- local graphite = {}
- function graphite.new( params )
- assert (params.host, "require ip");
- assert (params.port and type (params.port) == "number", "require port and port must be number");
- assert (params.server_name, "require server name");
- local sock = socket:new({
- host = params.host;
- port = params.port;
- })
- sock:open()
- local graphite_data = {
- socket = sock;
- server = params.server_name;
- }
- setmetatable(graphite_data , graphite)
- graphite.__index = graphite
- return {
- send = function (params) graphite.send(graphite_data, params) end;
- log = function (params) graphite.log(graphite_data, params) end;
- }
- end
- function graphite.send( graph, metric_info, response_time )
- local time = ngx.time()
- local row = metric_info .. " " .. tostring(response_time) .. " " .. tostring(time) .. "\n"
- graph.socket:send(row)
- end
- function graphite.log( graph, method, path )
- local response_time = ngx.now() - ngx.req.start_time()
- metric = metric.qualifier (method, path)
- graph:send(graph.server .. '.' .. metric .. '.' .. ngx.status, response_time)
- end
- return graphite
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement