A small Lua interface to Sentry that also
has a helpful wrapper function call()
that takes any arbitrary Lua function
(with arguments) and executes it, traps any errors and reports it automatically
to Sentry.
local raven = require "raven"
-- http://pub:[email protected]:8080/sentry/proj-id
local rvn = raven:new("http://pub:[email protected]:8080/sentry/proj-id", {
tags = { foo = "bar" },
})
-- Send a message to sentry
local id, err = rvn:captureMessage(
"Sentry is a realtime event logging and aggregation platform.",
{ tags = { abc = "def" } } -- optional
)
if not id then
print(err)
end
-- Send a message to sentry aggregated by first string in message table with rest as parameters
local msg = {"%s is %s", "Sentry", "realtime event logging and aggregation platform."}
local id, err = rvn:captureMessage(
msg,
{ tags = { abc = "def" } } -- optional
)
if not id then
print(err)
end
-- Send an exception to sentry
local exception = {{
["type"]= "SyntaxError",
["value"]= "Wattttt!",
["module"]= "__builtins__"
}}
local id, err = rvn:captureException(
exception,
{ tags = { abc = "def" } } -- optional
)
if not id then
print(err)
end
-- Catch an exception and send it to sentry
function bad_func(n)
return not_defined_func(n)
end
-- variable 'ok' should be false, and an exception will be sent to sentry
local ok = rvn:call(bad_func, 1)
See docs/index.html for more details.
To run the tests:
luarocks install lunit
luarocks install lua-cjson
luarocks install luaposix
luarocks install luasocket
luarocks install luasec
lunit tests/*.lua
To generate the docs:
luarocks install ldoc
ldoc raven.lua -d docs -p raven-lua