Releases: exceptionless/Exceptionless
v6.1.1
With 6.1.1 we focused bug fixes and improving the self hosting experience.
Docker
We added an easier way to try Exceptionless out locally with a single docker image. Exceptionless can be run locally as simply as docker run --rm -it -p 5000:80 exceptionless/exceptionless:6.1.1
. This will run a completely self-contained simple instance of Exceptionless. It is only suitable for testing purposes since it will not persist data. For more complete setups, check out the self hosting documentation.
Bug Fixes
We had several notable fixes in this release that deserve some recognition.
- Fixed an issue for users around the globe where the existing CDN provider may have not been available in some regions. This could cause the User Interface (UI) to not load (exceptionless/Exceptionless.UI#195).
Upgrading to 6.1.1
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 6.0!
v6.1.0
With 6.1.0 we focused bug fixes and improving the self hosting experience.
Bug Fixes
We had several notable fixes in this release that deserve some recognition.
- Fixed a bug where requests would fail with
Synchronous operations are disallowed
(#572). - Fixed a bug with verifying email addresses could fail (#545)
Upgrading to 6.1
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 6.0!
v6.0.0
With 6.0.0 we focused on Elasticsearch 7 and ASP.NET Core 3.1 support.
Elasticsearch 7.x
The upgrade from Elasticsearch 5.x to Elasticsearch 7.x was a massive effort and is well worth the data migration required. We took a step back and also looked at the changes we could make to improve search too! Here is some of the benefits we get by upgrading:
- We reexamined all of our search queries and tweaked them to work better. Then we looked at and fixed all the user logged search issues.
- Faster Shard Recovery via Sequence Ids and Resiliency. Now if a node goes down for service, it will recover even faster.
- Faster query performance. Elasticsearch has done a ton of work to optimize all queries especially date based queries.
- Better memory footprint. Elasticsearch has optimized the memory footprint and we have also tweaked our indexes to do multi field search so we don't have to do extra copies of data into an all field (This also means less data stored on disk).
ASP.NET Core Support
We added support for ASP.NET Core 3.1 LTS with this release. This upgrade allows us to stay on the current supported version while getting many performance improvements that come with version 3.x.
Docker/Kubernetes Support
We've done more work to stream line our docker and Kubernetes experience. We do want to make it easier to get up and running with Kubernetes and we'll be taking steps to make this process easier.
Upgrading to 6.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 6.0!
v5.0.0
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)
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.
- 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.
- Added support for storing the IP address that submitted the event to the api on request info.
- Added support for searching by
client.version
orclient.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!
v4.1.0
With 4.1.0 we focused on notification improvements by greatly improving the existing email notifications and adding Slack support! We really wanted to improve the signal to noise ratio while providing richer notifications.
Email Notifications
We spent a lot of time on adding value to our emails by researching how we could reduce noise and provide even more useful information at a glance.
We ended up completely rewriting our email templates using Zurb's Foundation for Emails and wrote a nice blog post on how it's implemented here.
Additionally, we added support for JSON-LD which provides quick actions in some email clients like gmail.
Slack Support
One of the big areas we wanted to invest in is providing notifications to where you and your team are working.
We took a deep dive into seeing what it would take to bring first class slack support to Exceptionless. It was quite a learning experience but we are glad we did it. It opened our eyes on how we could improve notifications everywhere.
You can add slack support by going to your projects integrations tab and clicking the Add Slack button.
Project Improvements
We made several improvements in this release around managing projects.
API Keys
We added the ability to give descriptions to API Keys. This allows you to describe where a key is being used without having to do tons of research.
Project Usage Stats
We wanted to give you a better insight into how much plan usage a specific project is using. You now have an overview of the average number of events a project is using every month.
Improved Stacking
We recently updated the JavaScript client and one of the things we noticed we could greatly improve on is the stacking of JavaScript Unhandled Rejections.
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.7.0 and v2.7.1) for more info.
- Fix encoding issues when the url contained Chinese characters (#309 @edwardmeng).
- Require login after changing your password, not doing so could allow an existing session to be taken over (Contrib https://twitter.com/Hammadkhan724).
Upgrading to 4.1.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 4.1.0
v4.0.2
Version 4.0.2 is a maintenance release that fixed several usability issues regarding self hosting as well as various performance issues with processing events.
- We received a report (#290) as well as pull requests (@caesay #291, @edwardmeng #292) to support a wider variety of mail servers. We also noticed a few issues when hosting in different environments like azure functions (we toyed around with this idea) that all email settings must be stored in settings and not in a web.config. So we merged in #294, and made improvements when sending emails. If you are self hosting you'll need to update the email settings in the
appSettings
section. Thanks again to @caesay and @edwardmeng for your help and wisdom :) - We added support for using azure storage queues (#289). Storage queues will automatically be used if the
AzureStorageConnectionString
has been defined. - Various user interface usability issues have been fixed in this release. Please view the UI release notes for more info.
- Fixed an issue where processing of events could fail if a large number of events (of the same stack) occurred in a distributed environment.
- Resolved an issue where deleting a stack events could throw an exception and cause the stack work queue item to be abandoned.
- Fixed an issue where the GeoIP database was being downloaded every time the app was restarted.
- Fixed an issue where the BASE_URL didn't contain the correct hashbang (E.G.,
#!
), this was causing verification and other emails to generate incorrect emails in some self hosted and development environments.
Upgrading to 4.0.2
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 note that we made some changes in this release to the Elasticsearch configuration. 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.
v4.0.1
Version 4.0.1 is a maintenance release that fixed several usability issues regarding self hosting. It also added new feature to show you total times an event occurred by including the deduplicated event counts in the total occurrences.
- We now include the total number of events discarded by the clients in the overall total so you can see how many times a specific event is occurring without paying the price of sending all events.
- You can now have two projects with the same exact name in multiple organizations (Contrib @nj).
- Various user interface usability issues have been fixed in this release. Please view the UI release notes for more info.
- We updated Foundatio and received some nice performance improvements by reducing the amount of overhead pertaining to the message bus and queues. This should result in much less work happening inside of the app especially if you are running jobs out of process.
- We made the elasticsearch
mapper-size
plugin optional in this release so users hosting on managed elasticsearch services can now upgrade seamlessly. We highly recommend using this plugin as it allows you to query by event size. This can be enabled by installing the plugin and setting theEnableElasticsearchMapperSizePlugin
AppSetting totrue
. See #280 for more information - Many improvements were made around the event posts job to be more reliable and give more insight into how the job is behaving. We added improved logging and metrics and also updated the default event post size limit to 1MB. This is controllable via the
MaximumEventPostSize
setting.
Upgrading to 4.0.1
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 note that we made some changes in this release to the Elasticsearch configuration. 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.
v4.0.0
With 4.0.0 we focused on adding support for Elasticsearch 5. By migrating from Elasticsearch 1.7 to 5, we removed growing technical debt and benefited greatly in the process. Here is a high level overview of the benefits gained by migrating to Elasticsearch 5 in 4.0.0.
Performance
We've learned a lot since we first migrated to Elasticsearch 1.x from MongoDB. We've taken those hard lessons learned and applied them to this release as well as to our new infrastructure we setup.
- We've moved from monthly indexes to daily indexes. This change means that when you are filtering by the last 24 hours or last week, you are greatly reducing the amount of work elasticsearch has to do to return the request data.
- Average use cases see between 25% and 80% improvement to indexing throughput. This means that with the same hardware we can index the same documents much faster!
- We moved from groovy scripts to painless scripts which are 4 times faster. By moving to painless scripts we also greatly simplified the burden of having to modify configuration files to enable scripting!
- Elasticsearch has added lots of new data types since 1.7, that we can take advantage of that reduce memory, storage and query costs. This means we can query the same data faster and using less memory. We've also setup more sensible defaults to ensure we don't index very long strings.
- Many performance and reliability improvements to snapshots (backups).
Self Hosting improvements
Our goal is to have everyone be able to setup and use exceptionless in a matter of minutes. One of the areas that had bitten a lot of self hosters in the past was forgetting to update the elasticsearch.yml file. One of the key benefits of moving to Elasticsearch 5 was the migration to painless scripts.
- The move to using painless scripts as part of bulk updates and ingest pipelines reduced the burden of having to modify configuration files to enable scripting! Long gone are the times where you'd have to reset your setup because you missed a configuration step.
- We've also added various maintenance jobs that handle backups and restores automatically. So you don't have to worry about losing your data!
- Future upgrades should be seamless as Elasticsearch now handles reindexing out of the box! Once you are migrated your data to Elasticsearch 5, we think future major upgrades will just be handled by the exceptionless app itself!
- You can now also use docker or Azure arm templates to quickly setup a cluster. We really like this direction and will continue moving down this path. How sweet would it be if you could click a single button and have Exceptionless production instance running locally!
Dashboards
With 4.0.0 we continued to focus on finishing up the backend improvements to both our repositories and parsers that we made in the 3.5 releases. We feel that all the pieces are finally in place to allow us to do custom dashboards in the near future.
- Foundatio.Parsers now gives us the abilities to define and validate custom aggregations using lucene style syntax. For example lets say I want a date histogram that shows the min, max and average event value. I'd just need to pass
date:(date min:value max:value avg:value)
to the following endpoint:/api/v2/events/count?aggregations=date:(date min:value max:value avg:value)
to return aggregations across a time series!
Upgrading to 4.0.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, project sponsors and the Elasticsearch team for helping us ship 4.0.0
v3.5.1
The 3.5.1 is a maintenance release that fixed an issue with how daily email notifications were being created.
Upgrading to 3.5.1
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 note that we made some changes in this release to the Elasticsearch configuration. 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.
v3.5.0
With 3.5.0 we focused on making backend improvements that would allow us to easier migrate to Elasticsearch 5.x in a future release. Part of this included fixing a many bugs and adding hundreds of unit tests for our repositories. As a result, we were able to fix many bugs around paging, cheaper batch updates and deletes, and much more. We feel that we need to work towards upgrading to Elasticsearch 5.x as there are many improvements like 80% faster indexing, built in reindexing support and would allow us to build out reports / dashboards easier.
- There are a few user interface improvements and bug fixes that are included in this release. Please view the UI release notes for more info.
- Updated repositories to latest version of Foundatio.Repositories. This gave us many performance improvements and bug fixes across the board.
- Improved entity changed push notifications have more details about what was changed. This allows the client to be much smarter about what was updated and when to refresh.
- Upgraded our query parser to generate more intelligent queries. We are now seeing big reductions in the amount of time it takes to run stats related queries.
- Fixed a bug where regressed events were being marked fixed.
- Fixed a bug where an unsuspended organization might not be able to submit any data until the limit reset.
- Fixed a bug where there could be multiple open sessions by the same session heartbeat.
Upgrading to 3.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 note that we made some changes in this release to the Elasticsearch configuration. 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.