Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chidiwilliams/trackerr

Simple exception tracking for Express/Koa servers
https://github.com/chidiwilliams/trackerr

connectjs error-monitoring error-reporting express javascript koa nodejs

Last synced: 4 days ago
JSON representation

Simple exception tracking for Express/Koa servers

Awesome Lists containing this project

README

        

# trackerr

Simple exception tracking for small Express/Koa servers.

## Features

- Log uncaught exceptions to a data store of your choice
- View exceptions in the browser with a password-protected middleware in your app
- Get notified via email when an exception occurs (TODO)

## Installation

Install with NPM:

```shell
npm install --save trackerr
```

or Yarn:

```shell
yarn add trackerr
```

## Usage

Create a new client with a data store:

```js
import { Client } from 'trackerr';
import { SQLiteStore } from 'trackerr-sqlite';

const trackerr = new Client(new SQLiteStore('db.sql'));
```

trackerr will automatically begin to watch for uncaught exceptions in your app's process.

To use the middleware:

```js
server.use(trackerr.middleware());
```

The middleware will serve the trackerr page at `/__exceptions`.

## Data stores

The exception data may be stored in any data store of your choice. You may use one of the following maintained data stores or write your own plugin by implementing the `ExceptionDataStore` interface in [tracker-abstract-datastore](https://github.com/chidiwilliams/trackerr-abstract-exception-store).

- [SQLite](https://github.com/chidiwilliams/trackerr-sqlite)

## Comparison with other exception trackers

trackerr is free and open-source. It provides a simple middleware that mounts on your app, instead of relying on a third-party solution (like Airbrake or Sentry) or managing another server (like Errbit).

## Roadmap to V1

- Add password protection to trackerr page
- Email notifications

## Notes

- The idea for this project was originally shared [here](https://github.com/open-source-ideas/open-source-ideas/issues/15#issue-183618259).