Skip to content

Sentry node to be registered to a node RED instance in order to capture exceptions

License

Notifications You must be signed in to change notification settings

mpowr-it/node-red-sentry-node

Repository files navigation

Checks

Node-RED Sentry Node

This package provides a custom node for Node-RED that wraps the Sentry API for sending captured errors to your sentry project.

Installation

Install via Node-RED Manage Palette

Open your Node-RED instance and go to Manage palette and search for mpowr-it-node-red-sentry-node. Press the install button to install the node.

Install via npm

cd ~/.node-red
npm install mpowr-it-node-red-sentry-node

Usage

  1. Pull the sentry node — you can find it in the "function" section of the palette — and drop it on the flow.
  2. Double click the sentry node to configure it (see Node properties below).
  3. Drop a catch node (from "common" section) to capture all errors in the flow.
  4. Connect the catch node to the sentry node.

That's it.

Screenshot sentry node attached to catch-all node

Node properties

DSN

This is the unique identifier of your sentry project. You can find it in your sentry project settings under Client Keys (DSN).

Environment

This tells Sentry which environment the error occurred in.

Please note: You can also set the environment via the ENVIRONMENT environment variable.

If both are set, the node property takes precedence.

Per message configurations

The sentry node will look for the property msg.sentry and if found, any supported config will be set which is contained in the property.

Supported msg.sentry configurations

User information

{
  "user": {
    "id": "U123456",
    "username": "jdoe",
    "email": "jdoe@example.com",
    "ip_address": "127.0.0.1"
  }
}

Additional tags

{
  "tags": {
    "some-tag-key-1": "some-tag-value-1",
    "some-tag-key-n": "some-tag-value-n"
  }
}

How does it work?

If the msg object carries an error on its property msg.error it will be used and sent to your sentry instance. If the message objects also contains a msg._error property it will be added as breadcrumb for the error sent.

Return value

The node will return a payload of type object having a boolean sent property that indicates if the error has been sent to your Sentry project or not.

Please Note: true does not mean that the error was sent to your Sentry instance successfully, as it may fail due to invalid DSN for example, but it means that this node captured the error, parsed it, and executed Sentry.captureException.


Development

Prerequisites

  • docker-compose v2.0.0 or higher

Setup

Clone the repository and run:

make serve

This will start a local Node-RED instance with the sentry node installed.

The web UI under http://127.0.0.1:1880/ will automatically open in your browser.

Testing

make test

Tear down

make stop

About

Sentry node to be registered to a node RED instance in order to capture exceptions

Resources

License

Stars

Watchers

Forks

Packages

No packages published