15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/tinymon/event_builder.rb', line 15
def build(exception, release: nil, environment: nil, user: nil, tags: nil, breadcrumbs: nil, url: nil, request: nil)
event = {
"event_id" => SecureRandom.uuid,
"timestamp" => Time.now.to_f,
"platform" => "ruby",
"level" => "error",
"sdk" => { "name" => SDK_NAME, "version" => VERSION },
"exception" => {
"type" => exception.class.name.to_s,
"value" => exception.message.to_s,
"stacktrace" => { "frames" => Stacktrace.parse(exception) },
},
"breadcrumbs" => (breadcrumbs || []).dup,
"user" => (user || {}).dup,
"tags" => scrub(tags || {}),
}
event["release"] = release if release
event["environment"] = environment if environment
if request && (request[:method] || request["method"] || request[:url] || request["url"])
req = {}
m = request[:method] || request["method"]
u = request[:url] || request["url"]
req["method"] = m if m
req["url"] = u if u
event["request"] = req
elsif url
event["request"] = { "url" => url }
end
event
end
|