1Sentry::Raven(3) User Contributed Perl Documentation Sentry::Raven(3)
2
3
4
6 Sentry::Raven - A perl sentry client
7
9 Version 1.11
10
12 my $raven = Sentry::Raven->new( sentry_dsn => 'https://<publickey>:<secretkey>@sentry.io/<projectid>' );
13
14 # capture all errors
15 $raven->capture_errors( sub {
16 ..do something here..
17 } );
18
19 # capture an individual event
20 $raven->capture_message('The sky is falling');
21
22 # annotate an event with context
23 $raven->capture_message(
24 'The sky is falling',
25 Sentry::Raven->exception_context('SkyException', 'falling'),
26 );
27
29 This module implements the recommended raven interface for posting
30 events to a sentry service.
31
33 my $raven = Sentry::Raven->new( %options, %context )
34 Create a new sentry interface object. It accepts the following named
35 options:
36
37 "sentry_dsn => 'http://<publickey>:<secretkey>@sentry.io/<projectid>'"
38 The DSN for your sentry service. Get this from the client
39 configuration page for your project.
40
41 "timeout => 5"
42 Do not wait longer than this number of seconds when attempting to
43 send an event.
44
46 These methods are designed to capture events and handle them
47 automatically.
48
49 $raven->capture_errors( $subref, %context )
50 Execute the $subref and report any exceptions (die) back to the sentry
51 service. If it is unable to submit an event (capture_message return
52 undef), it will die and include the event details in the die message.
53 This automatically includes a stacktrace unless $SIG{__DIE__} has been
54 overridden in subsequent code.
55
57 These methods are for generating individual events.
58
59 $raven->capture_message( $message, %context )
60 Post a string message to the sentry service. Returns the event id.
61
62 $raven->capture_exception( $exception_value, %exception_context, %context )
63 Post an exception type and value to the sentry service. Returns the
64 event id.
65
66 %exception_context can contain:
67
68 "type => $type"
69
70 $raven->capture_request( $url, %request_context, %context )
71 Post a web url request to the sentry service. Returns the event id.
72
73 %request_context can contain:
74
75 "method => 'GET'"
76 "data => 'foo=bar'"
77 "query_string => 'foo=bar'"
78 "cookies => 'foo=bar'"
79 "headers => { 'Content-Type' => 'text/html' }"
80 "env => { REMOTE_ADDR => '192.168.0.1' }"
81
82 $raven->capture_stacktrace( $frames, %context )
83 Post a stacktrace to the sentry service. Returns the event id.
84
85 $frames can be either a Devel::StackTrace object, or an arrayref of
86 hashrefs with each hashref representing a single frame.
87
88 my $frames = [
89 {
90 filename => 'my/file1.pl',
91 function => 'function1',
92 vars => { foo => 'bar' },
93 lineno => 10,
94 },
95 {
96 filename => 'my/file2.pl',
97 function => 'function2',
98 vars => { bar => 'baz' },
99 lineno => 20,
100 },
101 ];
102
103 The first frame should be the oldest frame. Frames must contain at
104 least one of "filename", "function", or "module". These additional
105 attributes are also supported:
106
107 "filename => $file_name"
108 "function => $function_name"
109 "module => $module_name"
110 "lineno => $line_number"
111 "colno => $column_number"
112 "abs_path => $absolute_path_file_name"
113 "context_line => $line_of_code"
114 "pre_context => [ $previous_line1, $previous_line2 ]"
115 "post_context => [ $next_line1, $next_line2 ]"
116 "in_app => $one_if_not_external_library"
117 "vars => { $variable_name => $variable_value }"
118
119 $raven->capture_user( %user_context, %context )
120 Post a user to the sentry service. Returns the event id.
121
122 %user_context can contain:
123
124 "id => $unique_id"
125 "username => $username"
126 "email => $email"
127 "ip_address => $ip_address"
128
129 $raven->capture_query( $query, %query_context, %context )
130 Post a query to the sentry service. Returns the event id.
131
132 %query_context can contain:
133
134 "engine => $engine'"
135
137 These methods are for annotating events with additional context, such
138 as stack traces or HTTP requests. Simply pass their output to any
139 other method accepting %context. They accept all of the same arguments
140 as their "capture_*" counterparts.
141
142 $raven->capture_message(
143 'The sky is falling',
144 Sentry::Raven->exception_context('falling', type => 'SkyException'),
145 );
146
147 Sentry::Raven->exception_context( $value, %exception_context )
148 Sentry::Raven->request_context( $url, %request_context )
149 Sentry::Raven->stacktrace_context( $frames )
150 Sentry::Raven->user_context( %user_context )
151 Sentry::Raven->query_context( $query, %query_context )
152 The default context can be modified with the following accessors:
153
154 my %context = $raven->get_context();
155 $raven->add_context( %context )
156 $raven->merge_tags( %tags )
157 Merge additional tags into any existing tags in the current context.
158
159 $raven->merge_extra( %tags )
160 Merge additional extra into any existing extra in the current context.
161
162 $raven->clear_context()
164 Processors are a mechanism for modifying events after they are
165 generated but before they are posted to the sentry service. They are
166 useful for scrubbing sensitive data, such as passwords, as well as
167 adding additional context. If the processor fails (dies or returns
168 undef), the failure will be passed to the caller.
169
170 See Sentry::Raven::Processor for information on creating new
171 processors.
172
173 Available processors:
174
175 Sentry::Raven::Processor::RemoveStackVariables
176
177 $raven->add_processors( [ Sentry::Raven::Processor::RemoveStackVariables,
178 ... ] )
179 $raven->clear_processors( [ Sentry::Raven::Processor::RemoveStackVariables,
180 ... ] )
182 These options can be passed to all methods accepting %context. Passing
183 context to the constructor overrides defaults.
184
185 "culprit => 'Some::Software'"
186 The source of the event. Defaults to "undef".
187
188 "event_id => '534188f7c1ff4ff280c2e1206c9e0548'"
189 The unique identifier string for an event, usually UUID v4. Max 32
190 characters. Defaults to a new unique UUID for each event. Invalid
191 ids may be discarded silently.
192
193 "extra => { key1 => 'val1', ... }"
194 Arbitrary key value pairs with extra information about an event.
195 Defaults to "{}".
196
197 "level => 'error'"
198 Event level of an event. Acceptable values are "fatal", "error",
199 "warning", "info", and "debug". Defaults to "error".
200
201 "logger => 'root'"
202 The creator of an event. Defaults to 'root'.
203
204 "platform => 'perl'"
205 The platform (language) in which an event occurred. Defaults to
206 "perl".
207
208 "release => 'ec899ea'"
209 Track the release version of your application.
210
211 "processors => [ Sentry::Raven::Processor::RemoveStackVariables, ... ]"
212 A set or processors to be applied to events before they are posted.
213 See Sentry::Raven::Processor for more information. This can only
214 be set during construction and not on other methods accepting
215 %context.
216
217 "server_name => 'localhost.example.com'"
218 The hostname on which an event occurred. Defaults to the system
219 hostname.
220
221 "tags => { key1 => 'val1, ... }"
222 Arbitrary key value pairs with tags for categorizing an event.
223 Defaults to "{}".
224
225 "fingerprint => [ 'val1', 'val2', ... }"
226 Array of strings used to control how events aggregate in the sentry
227 web interface. The string '{{ default }}' has special meaning when
228 used as the first value; it indicates that sentry should use the
229 default aggregation method in addition to any others specified
230 (useful for fine-grained aggregation). Defaults to "['{{ default
231 }}']".
232
233 "timestamp => '1970-01-01T00:00:00'"
234 Timestamp of an event. ISO 8601 format. Defaults to the current
235 time. Invalid values may be discarded silently.
236
237 "environment => 'production'"
238 Specify the environment (i.e. staging, production, etc.) that your
239 project is deployed in. More information can be found on the Sentry
240 website <https://docs.sentry.io/enriching-error-
241 data/environments/>.
242
244 SENTRY_DSN="http://<publickey>:<secretkey>@sentry.io/<projectid>"
245 A default DSN to be used if sentry_dsn is not passed to c<new>.
246
248 Copyright (C) 2019 by Matt Harrington
249
250 The full text of this license can be found in the LICENSE file included
251 with this module.
252
253
254
255perl v5.30.0 2019-07-26 Sentry::Raven(3)