Mercurial > prosody-modules
comparison mod_sentry/README.md @ 4283:2ae71126e379
mod_sentry: New module to forward errors to a Sentry server
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Tue, 08 Dec 2020 15:34:53 +0000 |
| parents | |
| children | ae8191d9d533 |
comparison
equal
deleted
inserted
replaced
| 4282:281a864e7472 | 4283:2ae71126e379 |
|---|---|
| 1 --- | |
| 2 labels: | |
| 3 - 'Stage-Beta' | |
| 4 summary: 'Send errors to a Sentry server' | |
| 5 --- | |
| 6 | |
| 7 # Introduction | |
| 8 | |
| 9 This module forwards select events to a [Sentry](https://sentry.io/) server. | |
| 10 | |
| 11 # Configuration | |
| 12 | |
| 13 There is a single configuration option, `sentry`, which should be a table | |
| 14 containing the following parameters (optional unless otherwise stated): | |
| 15 | |
| 16 `dsn` | |
| 17 : **Required.** The DSN of the project in Sentry. | |
| 18 | |
| 19 `insecure` | |
| 20 : Whether to allow untrusted HTTPS certificates. | |
| 21 | |
| 22 `server_name` | |
| 23 : The name of the current server (defaults to the system hostname). | |
| 24 | |
| 25 `tags` | |
| 26 : An optional table of tags that will be used as the default for all | |
| 27 events from this module. | |
| 28 | |
| 29 `extra` | |
| 30 : An optional table of custom extra data to attach to all events from | |
| 31 this module. | |
| 32 | |
| 33 Example configuration: | |
| 34 | |
| 35 ``` | |
| 36 sentry = { | |
| 37 dsn = "https://37iNFnR4tferFhoTPNe8X0@example.com/11"; | |
| 38 tags = { | |
| 39 environment = "prod"; | |
| 40 }; | |
| 41 } | |
| 42 ``` | |
| 43 | |
| 44 ## Log forwarding | |
| 45 | |
| 46 You can configure log messages to be automatically forwarded to Sentry. | |
| 47 This example will send all "warn" and "error" messages to Sentry, while | |
| 48 sending all "info" and higher messages to syslog: | |
| 49 | |
| 50 ``` | |
| 51 log = { | |
| 52 info = "*syslog"; | |
| 53 { levels = "warn", to = "sentry" }; | |
| 54 } | |
| 55 ``` | |
| 56 | |
| 57 # Developers | |
| 58 | |
| 59 In addition to the automatic log forwarder, you can integrate Sentry | |
| 60 forwarding directly into modules using the API. | |
| 61 | |
| 62 ## API | |
| 63 | |
| 64 Usage example: | |
| 65 | |
| 66 ``` | |
| 67 local sentry = module:depends("sentry").new({ | |
| 68 logger = module.name; | |
| 69 }); | |
| 70 | |
| 71 sentry:event("warning") | |
| 72 :message("This is a sample warning") | |
| 73 :send(); | |
| 74 ``` | |
| 75 | |
| 76 ### Events | |
| 77 | |
| 78 Event objects have a number of methods you can call to add data to them. | |
| 79 All methods return the event itself, which means you can chain multiple | |
| 80 calls together for convenience. | |
| 81 | |
| 82 After attaching all the data you want to include in the event, simply | |
| 83 call `event:send()` to submit it to the server. | |
| 84 | |
| 85 #### set(key, value) | |
| 86 | |
| 87 Directly set a property of the event to the given value. | |
| 88 | |
| 89 #### tag(name, value) | |
| 90 | |
| 91 Set the specified tag to the given value. | |
| 92 | |
| 93 May also be called with a table of key/value pairs. | |
| 94 | |
| 95 #### extra(name, value) | |
| 96 | |
| 97 Sets the specified 'extra' data. May also be called | |
| 98 with a table of key/value pairs. | |
| 99 | |
| 100 #### message(text) | |
| 101 | |
| 102 Sets the message text associated with the event. | |
| 103 | |
| 104 #### set_request(request) | |
| 105 | |
| 106 Sets the HTTP request associated with the event. | |
| 107 | |
| 108 This is used to indicate what incoming HTTP request | |
| 109 was being processed at the time of the event. | |
| 110 | |
| 111 #### add_exception(e) | |
| 112 | |
| 113 Accepts an error object (from util.error or any arbitrary value) | |
| 114 and attempts to map it to a Sentry exception. | |
| 115 | |
| 116 May be called multiple times on the same event, to represent | |
| 117 nested exceptions (the outermost exception should be added first). | |
| 118 | |
| 119 #### add_breadcrumb(timestamp, type, category, message, data) | |
| 120 | |
| 121 Add a breadcrumb to the event. A breadcrumb represents any useful | |
| 122 piece of information that led up to the event. See Sentry documentation | |
| 123 for allowable types and categories. | |
| 124 | |
| 125 #### add_http_request_breadcrumb(request, message) | |
| 126 | |
| 127 Helper to add a breadcrumb representing a HTTP request that was made. | |
| 128 | |
| 129 The `message` parameter is an optional human-readable text description | |
| 130 of the request. | |
| 131 | |
| 132 #### send() | |
| 133 | |
| 134 Sends the event to the Sentry server. Returns a promise that resolves | |
| 135 to the response from the server. |
