Exceptionless 2.0 Overview

Eric J. Smith edited this page Aug 14, 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 Processor (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://gist.github.com/ejsmith/53cd2341dcab8cf79eee)

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

Elastic Search

  • Moving to Elastic Search for event and stack storage. Will enable us to simplify many areas of the system like stats.
  • Will enable search by tags, date range, keywords, error types, etc while providing full stats at the same time.
  • Removes the need for us to do stats incrementing for every type of view that we would like to show.
  • Stats will be more accurate, real-time and will also enable us to easily display them in multiple time zones.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.