What is rollbar?
Rollbar is a real-time error tracking and monitoring tool for JavaScript applications. It helps developers to detect, diagnose, and fix errors in their applications by providing detailed error reports and notifications.
What are rollbar's main functionalities?
Error Tracking
Rollbar can automatically capture and report uncaught exceptions and unhandled promise rejections. This helps in tracking errors that occur in the application.
const Rollbar = require('rollbar');
const rollbar = new Rollbar({
accessToken: 'YOUR_ACCESS_TOKEN',
captureUncaught: true,
captureUnhandledRejections: true
});
// Example of tracking an error
try {
throw new Error('Test error');
} catch (e) {
rollbar.error(e);
}
Custom Logging
Rollbar allows custom logging of messages, warnings, and info messages. This can be useful for tracking specific events or conditions in the application.
const Rollbar = require('rollbar');
const rollbar = new Rollbar({
accessToken: 'YOUR_ACCESS_TOKEN'
});
// Log a custom message
rollbar.log('Custom log message');
// Log a warning
rollbar.warning('This is a warning');
// Log an info message
rollbar.info('This is an info message');
Telemetry
Rollbar can capture telemetry data such as console logs, network requests, and DOM events. This helps in understanding the context in which an error occurred.
const Rollbar = require('rollbar');
const rollbar = new Rollbar({
accessToken: 'YOUR_ACCESS_TOKEN',
captureUncaught: true,
captureUnhandledRejections: true,
autoInstrument: true
});
// Example of adding custom telemetry data
rollbar.configure({
payload: {
telemetry: [
{ type: 'log', level: 'info', body: 'Custom telemetry data' }
]
}
});
Other packages similar to rollbar
sentry
Sentry is another popular error tracking and monitoring tool. It provides similar functionalities to Rollbar, including real-time error tracking, performance monitoring, and detailed error reports. Sentry also supports a wide range of programming languages and frameworks.
airbrake
Airbrake is an error monitoring tool that provides real-time error tracking and detailed error reports. It offers similar features to Rollbar, such as capturing uncaught exceptions and custom logging. Airbrake also integrates with various development tools and services.
bugsnag
Bugsnag is an error monitoring tool that helps developers to detect, diagnose, and fix errors in their applications. It provides similar functionalities to Rollbar, including real-time error tracking, custom logging, and detailed error reports. Bugsnag also offers features like user tracking and release tracking.
rollbar
Generic library for reporting exceptions and other messages to Rollbar. Requires a Rollbar account.
var rollbar = require("rollbar");
rollbar.init("ACCESS_TOKEN");
rollbar.reportMessage("Hello world!");
Installation
Install using the node package manager, npm:
$ npm install --save rollbar
Configuration
Using Express
var express = require('express');
var rollbar = require('rollbar');
var app = express();
app.get('/', function(req, res) {
});
app.use(rollbar.errorHandler('ROLLBAR_ACCESS_TOKEN'));
app.listen(6943);
Standalone
In your main application, require and initialize using your access_token::
var rollbar = require("rollbar");
rollbar.init("ACCESS_TOKEN");
Other options can be passed into the init() function using a second parameter. E.g.:
rollbar.init("ACCESS_TOKEN", {handler: "setInterval", handlerInterval: 5});
When you are finished using rollbar, clean up any remaining items in the queue using the shutdown function:
rollbar.shutdown();
Configuration reference
rollbar.init()
takes the following configuration options (pass in the second parameter):
-
host: The hostname of the server the node.js process is running on
default: os.hostname()
-
environment: The environment the code is running in.
default: production
-
handler: The method that the notifier will use to report exceptions.
Supported values:
- setInterval -- all items that are queued up are sent to rollbar in batches in a setInterval callback
- NOTE: using this mode will mean that items are queued internally before being sent. For applications that send a very large amount of items, it is possible to use up too much memory and crash the node process. If this starts to happen, try lowering the handlerInterval setting or switch to a different handler, e.g. 'nextTick'.
- nextTick -- all items that are queued up are sent to rollbar in a process.nextTick callback
- inline -- items are sent to rollbar as they are queued up, one at-a-time
default: setInterval
-
handlerInterval: If the handler is setInterval
, this is the number of seconds between batch posts of items to rollbar.
default: 3
-
batchSize: The max number of items sent to rollbar at a time.
default: 10
-
endpoint: The rollbar API base url.
default: https://api.rollbar.com/api/1/
-
root: The path to your code, (not including any trailing slash) which will be used to link source files on rollbar.
e.g. /Users/bob/Development
-
branch: The branch in your version control system for this code
e.g. master
-
scrubFields: List of field names to scrub out of POST. Values will be replaced with astrickses. If overriding, make sure to list all fields you want to scrub, not just fields you want to add to the default. Param names are converted to lowercase before comparing against the scrub list.
default: ['passwd', 'password', 'secret', 'confirm_password', 'password_confirmation']
Contributing
Contributions are welcome. The project is hosted on github at http://github.com/rollbar/node_rollbar
Examples
See the examples directory for more uses.
Additional Help
If you have any questions, feedback, etc., drop us a line at support@rollbar.com