Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Exceptionless 2.0 Overview
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:
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.
Plugins will allow customization and translation throughout the Exceptionless platform, including integration with third-party services and more.
- 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.
- 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.
- 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.
- 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.
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
- 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.