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