Skip to content

Exceptionless 2.0 Overview

Eric J. Smith edited this page May 8, 2014 · 16 revisions

Event Based System

  • Allows us to take literally any data that people want to send us instead of only allowing errors.
  • Simple log messages
  • Log messages with extended data on them
  • Feature usage
  • Session start and end which will enable us to start gathering more analytic information like what percentage of total users are affected by an issue.
  • We will be able to start creating some VERY useful analytic reports.
  • Simple error messages
  • Random json objects

API Simplified

  • Event POSTs take the raw data and use a plugin system to interpret that data and translate them into events.
    • Allows us to take data as simple as a string message and turn it into a log event.
    • Can post literally any JSON object and it will create an event from it.
    • Can post system log data and have a plugin parse the log messages and turn them into events.
    • Can post very simple error objects.
  • This will make creating libraries for other platforms dead simple.
  • We may create some parsing plugins that take the format of other error reporting services and allow them to be posted into our system. Thus instantly giving us clients for all major platforms.
  • API lives in a separate project now and can be hosted in highly performant systems like the new Helios IIS host.
  • Makes it easy for us to migrate to a SPA app.
  • Now uses OAuth 2.0 in addition to supporting API tokens.
  • Highly consistent REST API modeled after GitHub and Stripe.
  • So simple that you can just use CURL as a client.

Pluggable System

  • Event parsing plugins
    • Can be used to make the system aware of different log formats and correctly parse the data into event objects.
    • Can be used to support other JSON formats like adding support for clients made for other systems.
  • Event pipeline plugins
    • 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, etc.
  • Formatting plugins
    • 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

  • Rewritten to be highly simplified and extensible.
  • Base client is PCL and we will have platform specific clients that add additional functionality for that platform.
  • 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