We've snuck in lots of updates for this past week! New features have been added, such as collecting project-level usage statistics, the ability to add notes to API keys, and much more. Oh, and we're no longer throttling free plans! That's for Exceptionless core, but we've also made updates to the Exceptionless UI and Foundatio core, Foundatio.Repositories, and Foundatio.Parsers. Check everything out, below.
We added the ability to collect project-level usage statistics. This allows us to view usage, show total blocked in emails, and more. It would also allow us to tweak rate limiting on a per-project basis.
You can now add notes to API keys in the app.
We also stopped throttling free plans.
And, finally, we introduced variou mail templates into the mix.
In the 5/1/17 weekly update, Blake talks email notification improvements, bug fixes, and Foundatio.Repositories and Foundatio.Parsers updates. Check out the video above or read the details below.
In the past few weeks, we have made massive improvements to the daily summary emails, and added support for json-ld. You can keep up with continued email improvements over on issue 177 on GitHub. Let us know what you think there!
We also fixed a bug with the Redis cache client improperly setting batch cached keys.
On May 3, Blake spoke at the North Dallas .NET User Group meetup in Plano. The topic was Exception Driven Development, and of course he killed it! Naturally, the Exceptionless love was shared to all.
For Exceptionless, we worked on upgrading the email templates to use Zurb for emails and handlebars. We also fixed an issue where you could only log in 15 times in a 15 minute time period.
Nothing too crazy going on in this week's update. A few tweaks to Exceptionless, Exceptionless.NET, and Exceptionless.JavaScript. Check out the details below, and don't forget to let us know how we're doing!
This week we released the Exceptionless 4.0.2 minor release with a few fixes and tweaks. Check out the Exceptionless 4.0.2 release details over on GitHub. Self hosters are the only ones that will need to worry about upgrading.
We also made some good strides in reducing the amount of IO work the event post queues have to do. Woohoo!
Lastly, for Exceptionless core, we merged in MailKit and continued improving email notifications.
For our JavaScript client, we want to work on supporting universal apps, but first we have to upgrade to the latest version of TypeScript, so we did some work this week toward that.
Last week we announced release notes for Exceptionless 4.0.2, Exceptionless.NET 4.0.3, and Exceptionless.UI 2.6.2. In our weekly update this week, we review some of those changes/updates, Foundatio changes, and more. Check it out!
In Exceptionless Core, we added support for MailKit, pipeline action and plugin level metrics, and the ability to dynamically shut down functionality via the configuration. We also made pipeline performance improvements. There are more performance improvements to make,
For Foundatio, we updated the Azure storage copy implementation to copy server side, fixed an issue where FolderFileStorage wasn't behaving properly when renaming files that exist, and fixed a Redis cache client issue where deleting cache items by wild card was erroring out if there were no matching keys.
Updated the azure storage copy implementation to copy server side.
This past week we released Exceptionless 4.0.2 and Exceptionless.NET 4.0.3, consisting of maintenance updates that fixed several usability issues for self hosters, various performance, issues, bug fixes, and some general improvements.
Below is a highlight of the release notes, and don't forget to let us know how we're doing or what can improve by following the relevant links to GitHub and posting an "issue."
Lastly, thanks to all of our contributors for helping us solve problems, add functionality, and improve Exceptionless!
Both @caesay and @edwardmeng submitted pull requests and helped us solve an issue with sending emails (issue #290). MailKit, a "cross-platform mail client library," has now been integrated, adding "fully featured and RFC-compliant SMTP, POP3, and IMAP client implementations" into Exceptionless.
There were also a few issues with email when hosting in different environments, such as Azure Functions. In this case, all email settings must be stored in settings and not web.config. So, we moved the MailKit implementation to the insulation project and cleaned up the main mailer class, among a few other tweaks, to further improve email sending in the app. Thanks again caesay and edwardmeng!
If you are self hosting, please update the email settings in appSettings
Support for Azure Storage Queues has been added to the app.
A bug that could cause an exception and make the stack work queue be abandoned when a stack of events was deleted has been fixed.
The GeoIP database was being downloaded each time the app was restarted. That has also been fixed.
Incorrect emails were being generated in some self hosted and dev environments because the BASE_URL didn't contain the proper hashbang (#!). Fixed that issue in this release, as well.
You should only worry about upgrading if you are a self hoster. If this is the case, please see the Exceptionless self hosting documentation. Note that changes to the Elasticsearch configuration were made in this release, so make sure to review the documentation for more information.
404 reporting support in ASP.NET Core has been added.
You can now set the min log level in configuration by calling SetDefaultMinLogLevel, allowing you to set a temporary min log level that is used until the server settings are retrieved.
Client IP support for X-Forwarded-For has been added (thanks @barankaynak!), which enables us to properly identify individual users and also helps when using proxy servers.
You can now more easily capture the HttpActionContext by adding SetHttpActionContext extension methods to web clients, allowing request and user info to be captured by default when manually submitting events.
We added SetException overload so you can now submit any event type with an exception object. So, for instance, you can now submit a log message through with an exception object and the exception tab will show.
Fixed an issue where the ASP.NET Core 1.1 runtime was sometimes preventing clients from reporting any data.
Fixed an issue where exceptions that converted to 404's were not running the event exclusion logic.
Fixed an issue where the duplicate checker plugin could DOS itself if you had client logging enabled (disabled by default - only meant for diagnostic logging).
Fixed an issue where the NLog logger wasn't setting event type.
Fixed an issue with package configuration of signed web packages.
Fixed an issue where adding our trace listener could blow up due to other invalid configured trace listeners.
Upgraded to the latest version of BenchMarkDotNet and ensure benchmarks run (Contrib @adamsitnik)
March was a productive month! We got tons done, and we're here to share everything with you so you're up to date and can hold us accountable if you notice any bugs in the changes.
Search query fix, Implemented AsyncAutoResetEvent in Foundatio, Upgraded project format #
Fixed an issue in Exceptionless where any search query starting with data. was being modified.
In Foundatio, the main repository that will contain the default deployment and EditorConfig settings for all of our projects, an effort was made to use less locking in queues and the CacheLockProvider by using AsyncAutoResetEvent, a lighter weight async primitive.
We also upgraded to the new VS2017 project format in our Foundatio repositories.
For Foundatio, a new pull request was made for Amazon SQS queues and CloudWatch metrics. We've done a lot of work to queues and the message buses to make the constructors have options classes that get passed in. We've also done a lot of work to the Azure implementations to try and optimize them and fix bugs.
We fixed an issue where you couldn't run Exceptionless on AWS because you couldn't install plugins on their ElasticSearch service. #280
The archival format has also been change from projected\year\month\day to year\month\day\hour\projectid. This allows you to quickly restore or download all events in a time period without enumerating all backed up projects.
In Foundatio, we fixed an issue where Redis Queues could deadlock, causing them to stop processing. This was being caused from topic messages locking the calling thread.
GetById and GetByIds now take an Id Type which allows us to specify routing information and much more. We have an implicit conversion that handles existing signatures.
Watch out this week, Blake's on fire! We're talking email loggings, UI tweaks, Exceptionless.NET updates and fixes, Foundatio updates, and Foundatio.Repositories updates. Lot's going on, let's check it out in this week's Live Code Demo.
This week, we made improvements to email logging and documentation when running in dev mode. Find out more by watching the live coding video or visiting the Exceptionless repo on GitHub.
We were only showing the exception tab if there was an event type of error, previously, but now we are always showing the exception tab if an exception is part of an event.