App error reporting and observability
Monitor Retool apps by connecting with Datadog or Sentry.
Retool supports monitoring and reporting of app errors using Datadog or Sentry. Once configured, app errors include a callstack and descriptive tags. Retool then reports any app errors in the production environment to a connected observability provider when interacting with an app in preview or public (end-user) mode.
You can create custom error reporting workflows with Retool Events if you want to use any other observability provider.
1. Configure observability provider
- Datadog
- Sentry
To configure Datadog:
- Create a Datadog pipeline to consume logs. Retool app errors will stream as error logs from
service:retool-error-monitor
. - Create a Datadog API key to use in the next step.
To configure Sentry:
- Create a Sentry project for Retool app errors.
- Navigate to the Client Keys (DSN) section of your Sentry project's settings. Copy the DSN key to use in the next step.
2. Connect providers to Retool
Next, configure your Retool organization to connect to your observability provider. You can configure the connection by either:
- Navigating to Settings > Observability.
- Using the Retool API to programmatically configure observability provider connections.
- Datadog
- Sentry
Configure the API key setting with the Datadog API key you created in the previous step.
Configure the DSN key setting with the Sentry DSN key you created in the previous step.
Error types
Retool reports the following error types and includes a callstack.
Description | Type | Additional trace contents |
---|---|---|
Resource not found | Query | Missing resource name. |
Error processing query | Query | Query input values, context lines. |
Query with failure response | Query | Query input values, API request. |
JS Code error | Query | Context lines, additional scope values. |
Transformer error | Transformer | Context lines. |
Component error | Component | Context lines. |
Page load error | Server | Module UUID. |
Error tags
Tags can be used to filter, categorize or route errors to different owners, using the following format tag:value
.
Here is the updated table with the specified changes:
Error detail | Datadog tag | Sentry tag | Example |
---|---|---|---|
Name | app_name | app_name | My App Name |
Path | app_path | app_path | Jenny/My App Name |
Release tag | app_release | app_release | 0.1.0 |
App ID | app_uuid | app_uuid | a031dff4-1d38-11ef-8787-b7ac527da581 |
Browser | browser | browser | chrome |
Browser version | browser_version | browser_version | 124.0.0 |
Embed app Imported (if is_embedded is true ) | embed_uuid | embed_uuid | 612dc16d-9230-4133-bf22-cfcac703a036 |
Environment | env | environment | production (only) |
Whether or not app was loaded using an embed URL | is_embedded | is_embedded | false |
Log level (always error ) | level | level | error |
Module ID (if error originated from module) | module_uuid | module_uuid | 68ec78b2-f20b-11ee-bb14-13ef186a41a6 |
Organization ID | org_sid | org_sid | org_9848411250f241939b5092af3714b4c5 |
Imported query ID (if error originated from a query imported from the Query Library) | playground_query_uuid | playground_query_uuid | 9ba338f8-ef18-4c83-8606-2bf775168ad0 |
Origin (either runtime or server ) | source | source | runtime |
Operating system | os | os | Mac OS |
Plugin ID for the widget, query, or function that triggered the error | plugin_id | plugin_id | button1 |
Retool version | release | release | 3.58.0 |
Resource ID (if error originated from a query) | resource_id | resource_id | 526a6aa4-c237-4711-bc12-4a0c7a5fa276 or resource display name |
Full URL used to access the app including any string and hash parameters | url | url | https://example.retool.com/app/my-app?_releaseVersion=... |
Email of the user who experienced the error | user | user.email | jenny@retool.com |
View mode (either presentation for apps in view mode or public for embedded apps). | view_mode | view_mode | presentation |
Filtering and routing
You can configure observability providers to filter and route errors reported for Retool apps.
- Datadog
- Sentry
Datadog errors are sent as logs. You can filter for all Retool app errors by setting service:retool-error-monitor
, or any additional tags. Refer to Datadog's error tracking documentation to create rules for Retool app errors using service:retool-error-monitor
.
Sentry can route errors to designated app owners. Refer to Sentry's ownership rules documentation for instructions.