mirror of
https://github.com/zulip/zulip.git
synced 2026-07-09 21:21:47 +08:00
Sentry has client SDKs for many programming languages and frameworks.
Sentry has deprecated their old "Raven" series of client SDKs in favor
of a new series of client SDKs following their unified API format.
As it stood, our Sentry integration was already outdated being written
for the version 5 payloads (the Raven SDKs stopped at version 6 which
is already vastly different from version 5) when the current and
prominently used version is version 7.
This commit completely rewrites the existing Sentry integration.
Tested and supported events:
- Issue created, resolved, assigned, and ignored events.
- "Sentry events" for "capture exception" and "capture message" with
the Golang, Node.js, and Python SDKs (other SDKs should also work but
only these were used for testing).
For reference:
- Old (Raven) SDK for python:
https://github.com/getsentry/raven-python
- New (Unified API format) SDK for python:
https://github.com/getsentry/sentry-python
Signed-off-by: Hemanth V. Alluri <hdrive1999@gmail.com>
423 lines
21 KiB
JSON
423 lines
21 KiB
JSON
{
|
|
"action": "triggered",
|
|
"data": {
|
|
"event": {
|
|
"event_id": "f9cb0f2afff74a5aa92e766fb7ac3fe3",
|
|
"project": 5216640,
|
|
"release": null,
|
|
"dist": null,
|
|
"platform": "node",
|
|
"message": "",
|
|
"datetime": "2020-04-30T06:19:33.562812Z",
|
|
"tags": [
|
|
[
|
|
"handled",
|
|
"yes"
|
|
],
|
|
[
|
|
"level",
|
|
"error"
|
|
],
|
|
[
|
|
"mechanism",
|
|
"generic"
|
|
]
|
|
],
|
|
"_metrics": {
|
|
"bytes.ingested.event": 4145,
|
|
"bytes.stored.event": 7690
|
|
},
|
|
"culprit": "null.<anonymous>(trigger-exception)",
|
|
"errors": [
|
|
{
|
|
"url": "/home/hemanth/Desktop/sentry/trigger-exception.js",
|
|
"type": "js_no_source"
|
|
}
|
|
],
|
|
"exception": {
|
|
"values": [
|
|
{
|
|
"stacktrace": {
|
|
"frames": [
|
|
{
|
|
"function": "Module._load",
|
|
"abs_path": "module.js",
|
|
"errors": null,
|
|
"pre_context": null,
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": null,
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"post_context": null,
|
|
"in_app": false,
|
|
"symbol_addr": null,
|
|
"filename": "module.js",
|
|
"module": "module",
|
|
"colno": 3,
|
|
"raw_function": null,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"lineno": 497
|
|
},
|
|
{
|
|
"function": "tryModuleLoad",
|
|
"abs_path": "module.js",
|
|
"errors": null,
|
|
"pre_context": null,
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": null,
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"post_context": null,
|
|
"in_app": false,
|
|
"symbol_addr": null,
|
|
"filename": "module.js",
|
|
"module": "module",
|
|
"colno": 12,
|
|
"raw_function": null,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"lineno": 505
|
|
},
|
|
{
|
|
"function": "Module.load",
|
|
"abs_path": "module.js",
|
|
"errors": null,
|
|
"pre_context": null,
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": null,
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"post_context": null,
|
|
"in_app": false,
|
|
"symbol_addr": null,
|
|
"filename": "module.js",
|
|
"module": "module",
|
|
"colno": 32,
|
|
"raw_function": null,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"lineno": 565
|
|
},
|
|
{
|
|
"function": "Module._extensions..js",
|
|
"abs_path": "module.js",
|
|
"errors": null,
|
|
"pre_context": null,
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": null,
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"post_context": null,
|
|
"in_app": false,
|
|
"symbol_addr": null,
|
|
"filename": "module.js",
|
|
"module": "module",
|
|
"colno": 10,
|
|
"raw_function": null,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"lineno": 663
|
|
},
|
|
{
|
|
"function": "Module._compile",
|
|
"abs_path": "module.js",
|
|
"errors": null,
|
|
"pre_context": null,
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": null,
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"post_context": null,
|
|
"in_app": false,
|
|
"symbol_addr": null,
|
|
"filename": "module.js",
|
|
"module": "module",
|
|
"colno": 30,
|
|
"raw_function": null,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"lineno": 652
|
|
},
|
|
{
|
|
"function": "Object.<anonymous>",
|
|
"abs_path": "/home/hemanth/Desktop/sentry/trigger-exception.js",
|
|
"errors": null,
|
|
"pre_context": [
|
|
"const Sentry = require('@sentry/node');",
|
|
"",
|
|
"Sentry.init({",
|
|
" dsn: 'https://redacted.ingest.sentry.io/5216640',",
|
|
"});",
|
|
""
|
|
],
|
|
"post_context": [
|
|
" scope.addEventProcessor(function(event, hint) {",
|
|
" return event;",
|
|
" });",
|
|
" Sentry.captureException(new Error('Sample error from node.'));",
|
|
"});",
|
|
"",
|
|
""
|
|
],
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": "Sentry.withScope(function(scope) {",
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"module": "trigger-exception",
|
|
"in_app": true,
|
|
"symbol_addr": null,
|
|
"filename": "/home/hemanth/Desktop/sentry/trigger-exception.js",
|
|
"lineno": 7,
|
|
"colno": 8,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"raw_function": null
|
|
},
|
|
{
|
|
"function": "Object.withScope",
|
|
"abs_path": "/home/hemanth/Desktop/sentry/node_modules/@sentry/minimal/dist/index.js",
|
|
"errors": null,
|
|
"pre_context": [
|
|
" * pushScope();",
|
|
" * callback();",
|
|
" * popScope();",
|
|
" *",
|
|
" * @param callback that will be enclosed into push/popScope.",
|
|
" */",
|
|
"function withScope(callback) {"
|
|
],
|
|
"post_context": [
|
|
"}",
|
|
"exports.withScope = withScope;",
|
|
"/**",
|
|
" * Calls a function on the latest client. Use this with caution, it's meant as",
|
|
" * in \"internal\" helper so we don't need to expose every possible function in",
|
|
" * the shim. It is not guaranteed that the client actually implements the",
|
|
" * function."
|
|
],
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": " callOnHub('withScope', callback);",
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"module": "@sentry.minimal.dist:index",
|
|
"in_app": false,
|
|
"symbol_addr": null,
|
|
"filename": "/home/hemanth/Desktop/sentry/node_modules/@sentry/minimal/dist/index.js",
|
|
"lineno": 158,
|
|
"colno": 5,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"raw_function": null
|
|
},
|
|
{
|
|
"function": "callOnHub",
|
|
"abs_path": "/home/hemanth/Desktop/sentry/node_modules/@sentry/minimal/dist/index.js",
|
|
"errors": null,
|
|
"pre_context": [
|
|
" var args = [];",
|
|
" for (var _i = 1; _i < arguments.length; _i++) {",
|
|
" args[_i - 1] = arguments[_i];",
|
|
" }",
|
|
" var hub = hub_1.getCurrentHub();",
|
|
" if (hub && hub[method]) {",
|
|
" // tslint:disable-next-line:no-unsafe-any"
|
|
],
|
|
"post_context": [
|
|
" }",
|
|
" throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");",
|
|
"}",
|
|
"/**",
|
|
" * Captures an exception event and sends it to Sentry.",
|
|
" *",
|
|
" * @param exception An exception-like object."
|
|
],
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": " return hub[method].apply(hub, tslib_1.__spread(args));",
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"module": "@sentry.minimal.dist:index",
|
|
"in_app": false,
|
|
"symbol_addr": null,
|
|
"filename": "/home/hemanth/Desktop/sentry/node_modules/@sentry/minimal/dist/index.js",
|
|
"lineno": 17,
|
|
"colno": 28,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"raw_function": null
|
|
},
|
|
{
|
|
"function": "Hub.withScope",
|
|
"abs_path": "/home/hemanth/Desktop/sentry/node_modules/@sentry/hub/dist/hub.js",
|
|
"errors": null,
|
|
"pre_context": [
|
|
" };",
|
|
" /**",
|
|
" * @inheritDoc",
|
|
" */",
|
|
" Hub.prototype.withScope = function (callback) {",
|
|
" var scope = this.pushScope();",
|
|
" try {"
|
|
],
|
|
"post_context": [
|
|
" }",
|
|
" finally {",
|
|
" this.popScope();",
|
|
" }",
|
|
" };",
|
|
" /**",
|
|
" * @inheritDoc"
|
|
],
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": " callback(scope);",
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"module": "@sentry.hub.dist:hub",
|
|
"in_app": false,
|
|
"symbol_addr": null,
|
|
"filename": "/home/hemanth/Desktop/sentry/node_modules/@sentry/hub/dist/hub.js",
|
|
"lineno": 103,
|
|
"colno": 13,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"raw_function": null
|
|
},
|
|
{
|
|
"function": "null.<anonymous>",
|
|
"abs_path": "/home/hemanth/Desktop/sentry/trigger-exception.js",
|
|
"errors": null,
|
|
"pre_context": [
|
|
" dsn: 'https://redacted.ingest.sentry.io/5216640',",
|
|
"});",
|
|
"",
|
|
"Sentry.withScope(function(scope) {",
|
|
" scope.addEventProcessor(function(event, hint) {",
|
|
" return event;",
|
|
" });"
|
|
],
|
|
"post_context": [
|
|
"});",
|
|
"",
|
|
""
|
|
],
|
|
"vars": null,
|
|
"package": null,
|
|
"context_line": " Sentry.captureException(new Error('Sample error from node.'));",
|
|
"symbol": null,
|
|
"image_addr": null,
|
|
"module": "trigger-exception",
|
|
"in_app": true,
|
|
"symbol_addr": null,
|
|
"filename": "/home/hemanth/Desktop/sentry/trigger-exception.js",
|
|
"lineno": 11,
|
|
"colno": 27,
|
|
"trust": null,
|
|
"data": null,
|
|
"platform": null,
|
|
"instruction_addr": null,
|
|
"raw_function": null
|
|
}
|
|
]
|
|
},
|
|
"type": "Error",
|
|
"mechanism": {
|
|
"synthetic": null,
|
|
"help_link": null,
|
|
"type": "generic",
|
|
"meta": null,
|
|
"handled": true,
|
|
"data": null,
|
|
"description": null
|
|
},
|
|
"value": "Sample error from node."
|
|
}
|
|
]
|
|
},
|
|
"fingerprint": [
|
|
"{{ default }}"
|
|
],
|
|
"grouping_config": {
|
|
"enhancements": "eJybzDhxY3J-bm5-npWRgaGlroGxrpHxBABcTQcY",
|
|
"id": "newstyle:2019-10-29"
|
|
},
|
|
"hashes": [
|
|
"0f8707d55b9a07f1d98f7f411ae91921",
|
|
"2b51fa6978fa72e1a400507643d03846"
|
|
],
|
|
"key_id": "1146336",
|
|
"level": "error",
|
|
"location": "/home/hemanth/Desktop/sentry/trigger-exception.js",
|
|
"logger": "",
|
|
"metadata": {
|
|
"function": "null.<anonymous>",
|
|
"type": "Error",
|
|
"value": "Sample error from node.",
|
|
"filename": "/home/hemanth/Desktop/sentry/trigger-exception.js"
|
|
},
|
|
"received": 1588227573.562812,
|
|
"sdk": {
|
|
"version": "5.15.5",
|
|
"name": "sentry.javascript.node",
|
|
"packages": [
|
|
{
|
|
"version": "5.15.5",
|
|
"name": "npm:@sentry/node"
|
|
}
|
|
],
|
|
"integrations": [
|
|
"InboundFilters",
|
|
"FunctionToString",
|
|
"Console",
|
|
"Http",
|
|
"OnUncaughtException",
|
|
"OnUnhandledRejection",
|
|
"LinkedErrors"
|
|
]
|
|
},
|
|
"timestamp": 1588227573.562812,
|
|
"title": "Error: Sample error from node.",
|
|
"type": "error",
|
|
"version": "7",
|
|
"url": "https://sentry.io/api/0/projects/hypro999-personal-organization/zulip-integration-testing/events/f9cb0f2afff74a5aa92e766fb7ac3fe3/",
|
|
"web_url": "https://sentry.io/organizations/hypro999-personal-organization/issues/1638852747/events/f9cb0f2afff74a5aa92e766fb7ac3fe3/",
|
|
"issue_url": "https://sentry.io/api/0/issues/1638852747/"
|
|
},
|
|
"triggered_rule": "Send a webhook payload to Webhook.site"
|
|
},
|
|
"installation": {
|
|
"uuid": "65027794-169a-4042-80d0-808ece377141"
|
|
},
|
|
"actor": {
|
|
"type": "application",
|
|
"id": "sentry",
|
|
"name": "Sentry"
|
|
}
|
|
}
|