Skip to content

v5.0.0

Compare
Choose a tag to compare
@niemyjski niemyjski released this 20 Aug 15:56
f605edf

With 5.0.0 we focused on ASP.NET Core support and performance. This allows us to run Exceptionless cross platform on Linux or MacOS. This opens a lot of opportunities for everyone like higher performance at lower cost and platform choice. We realize that there was a large gap between the last release, we just wanted to make sure we got it right. Going forward we'd like to add value through new smaller feature releases.

ASP.NET Core Support

We added support for ASP.NET Core 2.2 with this release. This involved a massive amount of work upgrading everything from: Runtime, Configuration, Web Sockets, Logging and so much more. This allowed us to get off the .NET Framework and move onto the future platform that allows us to scale much higher and cheaper. Some of the early wins of upgrading allowed us to

  • Shrink our event processor jobs instance count by 70%.
  • Optimize our CPU Utilization, allowing more work to be done in less time.
  • Run cross platform in docker with full support for health checks. This allows us to deploy even quicker and with higher confidence.
  • Improved logging has made it easier to debug and diagnose issues. We are also dog fooding the same logging abstractions that we support to log to ourselves.

Cross Platform Support

Since we upgraded to ASP.NET Core one advantage is now we could develop and run on Linux or MacOS. We also spent the time to ensure this was a great experience by adding VS Code tasks to allow you to quickly debug or develop the next feature on your machine.

Self Hosting Improvements

A huge thanks to @edwardmeng for his work in adding support for different running on different hosted services (#359, #383). You can now use managed resources (storage, queues and metrics) at different cloud providers like:

  • Amazon (SQS, S3)
  • Aliyun
  • Minio
  • InfluxDB
  • Graphite

Docker/Kubernetes Support

We will only be releasing docker images going forward, we know this is going to be a short term pain point for self-hosters, but going forward it's going to make upgrading a breeze. One huge advantage of this is we can run and test Exceptionless locally and know it's going to work the same way it does in production. This will also limit the number of GitHub Issues where the server is missing configuration or a dependency. All of the images can be found on our docker hub UI, Server, Jobs.

To get up and running it's as easy as cloning this repository and running docker-compose up!

Localization

A huge thanks to @Varorbc @edwardmeng for helping us add Chinese language support (exceptionless/Exceptionless.UI#164)
image

New Features

  • Added the ability to copy text stack traces to the clipboard (exceptionless/Exceptionless.UI#161)
  • Added support for showing the IP addresses as a grid column when viewing 404 events.
    image
  • Added the ability to discard user data server side (#382). This is an extra step to ensure sensitive data is removed.
  • Added support for deleting the current user (#319). Users can now completely delete their accounts at any time.
    image
  • Added support for storing the IP address that submitted the event to the api on request info.
  • Added support for searching by client.version or client.useragent (#358).
  • Improved security headers we send back to the clients.
  • Added Elasticsearch support for Basic Auth (#424 @witskeeper)
  • Added support for versioned swagger documentation (#354 @caesay).

Performance

We spent a great deal of time ensuring performance was where it needed to be when we upgraded to ASP.NET Core. We'd like to thank @edwardmeng and @redknightlois for your time and mentorship. We learned a ton in this process and the community benefited from your efforts. Here is a list of some the big things we did for performance. Check the full change log for the smaller items.

  • Upgraded to Foundatio 8. We profiled jobs, caching and made massive gains in performance across the board. We did so by looking at bottlenecks and ensured we could inline more work resulting in better cpu usage.
  • Added support for queue scopes for load balanced environments (@edwardmeng). This allows you to scale out Exceptionless in different ways (pods).
  • Disable any middleware that isn't needed like web sockets, Razor etc... Buy into only what you need. It's much faster to run less code :).
  • Added new middleware for heartbeat submission and project configuration. This saved us the overhead of hitting a controller for extra work.
  • Looked at all IO calls and optimized them via parallel saves (saving event data), added options to skip the archive and only save payloads required for event submission (50% reduction in IO calls).
  • Identified ways to reduce calls to Elasticsearch and cache calls (less is more). One of the ways we did this was by adding more meta data to queue entry meta data items and storing looked up information directly on the http context for cheap access later in the http pipeline.
  • Use binary serialization for caching.
  • Increment stack event count with separate job and run every 5 seconds instead of every event processed. (#349 @edwardmeng )
  • Cancel any message bus change notifications if no one is listening over web sockets. This results in a huge reduction in the number of web socket and message bus messages processed.
  • Don't throttle when the ApiThrottleLimit is -1 or int.MaxValue (@edwardmeng)

Bug Fixes

We had several notable fixes in this release that deserve some recognition.

  • Various user interface usability issues have been fixed in this release. Please view the UI release notes (v2.8.0 for more info.
  • Updated Foundatio which uses a task queue to resolve dead locking and thread exhaustion.
  • Fixed a bug where notifications and web hooks would be sent for fixed events.

Upgrading to 5.0

The only users that need to worry about upgrading anything for this new release are self-hosters. If you are self hosting Exceptionless, please review the Self Hosting Documentation, which contains information about upgrading your existing install. Please review the self hosting documentation for more information.

Please take a look at the change log for a full list of the changes.

Always Improving

We’re always striving to improve the efficiency of Exceptionless and all of our projects. If you see any room for improvement or have any comments when using anything from us, please send us an in-app message, submit a GitHub issue or contact us on the website.

Thanks

We'd like to say thank you to the community and project sponsors for helping us ship 5.0!