Skip to content

Exceptionless 2.0 Overview

Eric J. Smith edited this page Jul 2, 2014 · 16 revisions

Event Based System

Many users have asked for ways to use Exceptionless to report additional types of events, rather than just errors. With 2.0, we are moving to an event based system that will accommodate this.

  • Allows us to take literally any data that people want to send us instead of only allowing errors.
  • Event posts can be as simple as this:
![https://raw.githubusercontent.com/exceptionless/docs.exceptionless.com/gh-pages/images/ex-curl.png](https://raw.githubusercontent.com/exceptionless/docs.exceptionless.com/gh-pages/images/ex-curl.png)
* You can send log messages or even entire log files. * Log messages can contain extended data objects just like errors can now. * You can post random JSON objects and the data within them will be treated as extended data. * You can post batches of events instead of only being able to send one at a time. * You can send feature usage events that let you see how often features of your application are being used. * You can send session start and end events that will enable you to know what percentage of users are affected by errors and enable you to better know what your priorities should be. * We will be gathering enough data to make it easy for us to begin putting together some very useful analytic reports.

API Simplified

Since going open source, we've wanted to simplify the API and make it easier to work with. We're taking the time to do it now, and it's going to be awesome. Watch out!

  • Event POSTs take the raw data and use a plugin system to interpret that data and translate them into events.
    • This allows us to take literally any data and turn it into events in the system.
    • The POST data is captured as raw bytes and immediately added to a queue for processing.
    • Plugins can easily be created to support new data formats like system logs.
  • This simplified API will make creating libraries for other platforms dead simple.
  • New REST API documentation and samples site
  • The API lives in a separate project and can be hosted on high-performance systems like the new Helios IIS host.
  • Makes it easy for us to migrate the UI to a SPA app.
  • Now uses OAuth 2.0 in addition to supporting API tokens.
  • Highly consistent REST API modeled after GitHub and Stripe.
  • It's so simple you can just use CURL as a client.

Pluggable System

Plugins will allow customization and translation throughout the Exceptionless platform, including integration with third-party services and more.

Event Parsing (Source)

  • Has access to the raw POST data as well as the content type and submission client info.
  • Used to translate that raw data into events.
  • Can easily create new plugins to support new data formats like system logs.
  • Can be used to support other JSON formats like adding support for clients made for other systems.

Event Pipeline (Source)

  • Can be used to add new functionality to the system.
  • Gets called on startup, when an event is starting to be processed and when an event is done being processed.
  • Has access to settings from both the org and project level.
  • Can be used to create integrations for 3rd party services like HipChat, Trello, GitHub, Slack, etc.

Formatting (Source)

  • Used to control how events are displayed in the system.
  • Controls the summary view of an event.
  • Controls the stack title.
  • Controls what notification emails look like.
  • Controls which view is used to display the details of an event.

Client Rewrite (Source)

  • Rewritten to be highly simplified and extensible.
  • Will work on Mono and Project K.
  • Base client is PCL and we will have platform specific clients that add additional functionality for that platform.
  • Easy to add extra data to events.
[](https://raw.githubusercontent.com/exceptionless/docs.exceptionless.com/gh-pages/images/ex-client.png)

New Message Bus and Queueing Systems

  • Used to make the system less coupled and will allow for easily adding new functionality

Job System Enhancements

  • Jobs can easily be run standalone now which makes it easier to test the system.
  • Jobs can be run in process, as a service, standalone exes or as Azure WebJobs
Clone this wiki locally