Weekly Update - Review of New Releases and More

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!

Exceptionless Live Stream Update 4/13/17 #

Exceptionless Core Updates #

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,

Foundatio Updates #

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.

Changes to Exceptionless.NET #

For the .NET client, we merged in changes to csproj and released version 4.0.3. Make sure to check out the release notes and upgrade!

Updates to Exceptionless.UI #

In Exceptionless.UI, lists of tags now wrap to the next line, and we fixed an issue where long user names would cause the UI to go crazy.

Updates to Foundatio.Repositories #

Here, we fixed a caching issue where you couldn't set the key without enabling cache, and we simplified index creation and stopped using a lock.


Watch more Live Code Demos

Exceptionless.NET client, core, UI, releases - Bugs, Usability, Performance, Self Hosting

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!

Exceptionless 4.0.2 Release Notes #

  • 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.
  • View the full changelog.

Upgrading to Exceptionless 4.0.2 #

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.

Exceptionless.NET 4.0.3 Release Notes #

New Features #

  • log4net .NET Core support has been added.
  • 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.

Bug Fixes #

  • 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)

Upgrading #

Just update your NuGet packages. For more info, check out the upgrade guide.

View the full changelog.

Exceptionless.UI 2.6.2 Release Notes #

  • Previously, long, single-line content could cause the user interface to go crazy while updating event lists. This has been fixed (thanks @caesay!).
  • Also, tags now wrap to the next line, instead of overflowing the content area. @caesay strikes again!
  • View the full changelog.

Feedback Requested #

We want to know what you think about Exceptionless - what you think we should add, fix, streamline, improve, etc. Please let us know!

Azure Functions, Email Client, Foundatio - 4/3/17 Weekly Update

Q2 2017 is here already, whether we are ready for it or not! In March, we released several new updates to Exceptionless and Foundatio, so our first update in April isn't crazy, but here we go!

Exceptionless Updates #

Foundatio Updates #

  • This past week, we worked on some bug fixes related to queue processing in Foundatio.


March Update Rollup - New Releases, Updates, Bug fixes, and more!

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.

Let's get to it!

Week of 3/6/2017 #

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.

Week of 3/13/2017 #

Attended Elastic{ON} 17, Released Foundatio 5.0, PowerShell script update, RabbitMQ update, IMessageBus breakage, Marker interface addition #

  • Blake attended Elastic{ON} and talked to product teams about issues we've been running into, as well as the future of Elasticsearch.
  • Foundatio
    • Released Version 5.0 of Foundatio
    • We also modified an existing PowerShell script that updates existing projects to the VS2017 project format.
    • And, of course, we added some more documentation!
  • Foundatio Repositories
    • Updated the RabbitMQ queues to use the delayed message exchange
    • Broke the IMessageBus.Subscribe API surface by changing the signature to SubscribeAsync
    • Added a marker interface when patching documents

Watch the 3/13/2017 update video

Week of 3/20/2017 #

Released Exceptionless 4.0.1, Performance improvements, Bug fixes, Exceptionless.NET udpates, Foundatio Amazon SQS queues and CloudWatch metrics pull requests, Foundatio reindexing improvements #

  • Exceptionless
    • Released Exceptionless version 4.0.1
    • We upgraded to the latest Foundatio and Repositories builds, which brings in some performance improvements and bug fixes.
    • Visual Studio 2017 is now a requirement to debug any Exceptionless project.
    • Various bug fixes
  • Exceptionless.Net
    • Upgraded to VS2017 project format and fixed an asp.net core bug.
    • All nightly builds for all of our NuGet packages can now be found on myget.
  • Foundatio
    • New pull request for Amazon SQS queues and CloudWatch metrics
    • We also had some more documentation contributions!
  • Foundatio Repositories
    • We made some improvements around reindexing.
    • Then we also fixed a few various bugs

Watch the 3/20/2017 update video

Week of 3/27/2017 #

Event metadata archiving, Amazon SQS queus and CloudWatch metrics pull requests, Blake speaks at code camp #

  • This week we added a setting in Exceptionless for disabling the archiving of event metadata
  • 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.
  • Lastly, Blake spoke at Northeast Wisconsin Code Camp over the weekend on exception driven development. The slides can be found here.

Watch the 3/27/2017 update video


Watch more Live Code Demos

Weekly Update - Bug Fixes, Archival Format Changes, and Foundatio Updates

This week we've got some cool stuff in our weekly update! Along with the below, you can now follow along over on the new YouTube Exceptionless Weekly Updates playlist, so make sure to check it out and subscribe!

Let's Get Down To Business #

Updates to Exceptionless #

  • 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.

Foundatio Updates #

  • 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.

Updates to Foundatio Repositories #

  • 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 more Live Code Demos

Email Logging, UI Improvements, Foundatio Updates, and more - Live Code Demo

Exceptionless live code demo 2/20/17

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.

Exceptionless Updates #

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.

Exceptionless #

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.

View Repo

Exceptionless.NET #

  • We added SetException EventBuilder overload so you can submit any event type with an exception object.
  • Then, we fixed an issue where the client could blow up on startup while trying to wire up to trace listeners.
  • Finally, we also fixed an issue where signed web packages http handlers weren't being registered with the right namespace.

View Repo

Foundatio #

  • Attempted to track down issues where the redis queues would stop processing.
  • Worked with Microsoft to get our unit tests discoverable on the new csproject format.
  • Added new Foundatio.Jobs commands package that allows you to quickly discover and get command line help on your jobs.

View Repo

Foundatio.Repositories #

  • Fixed various issues with running data migration scripts for the first time.
  • Fixed an issues with GetByIds where falling back to search wouldn't take into account multiple pages of results.

View Repo


Watch more Live Code Demos

Duplicate Event Total Fix, Setting Min Log Levels, Foundatio Updates, and more - Live Code Demo

exceptionless duplicate event totals, min log levels, foundatio

Blake's back at it this week, onward to something new after the Exceptionless 4.0 launch. Today we talk deduplicate event totals, setting minimum log levels, updates to Foundatio, and tracking down an event processor job issue!

  • We had previously reverted to earlier commits that showed the deduplicated event total separately from the event total, but since we are running on new indexes now, we are able to reliably include the deduplicated total as the total number of events. GitHub Issue #270

  • You can now set the min log level in configuration using:


    Learn more

  • The Foundatio updates we made include performance and handling improvements to the message bus. Learn more about these improvements on GitHub. We also added IHybridCacheClient interface marker, giving you granular control over dependency injection. Now, you can inject either a cache client or a hybrid cache client much easier. Learn more.

  • Lastly for this week, we are working on tracking down the root cause of an issue with the event processor job that is causing it to stop processing events. More on that soon!


Watch more Live Code Demos

Live Code Demo & Review of Exceptionless 4.0 Launch

During the Exceptionless 4.0 Release, we covered a lot of enhancements and changes. In this week's Live Code Demo, Blake reviews the 4.0 release notes and talks through other tweaks and post-launch cleanup.

In this Live Code Demo Episode... #

  • Exceptionless 4.0 has been released for a few weeks now, with ElasticSearch 5 running in production for even longer. Let's take another look at the release notes and talk through some notable topics.
  • We look at the self hosting & upgrading documentation, which has been updated for Exceptionless 4.0.
  • In the process of the latest release, we upgraded Foundatio to new csproject format, logging many bugs on the .NET CLI along the way. Blake reviews this in the above video as well.
  • In the end, we obviously had to merge in pull requests and clean up issues, which he also reviews.
  • Lastly, we cleaned up the new Azure infrastructure!


Watch more Live Code Demos

Live Code Demo - New Query Validation, DI Issues, and Error Handling

This week's live code demo comes to you during a week of final testing and tweaks prior to our launch of Exceptionless 4.0.

Blake dives into and shows you the code for several important improvements and fixes, which we've listed below.

  • We've added a much improved Query Validator to the repositories and Exceptionless.

  • Some DI issues with running jobs under the debugger have also been fixed.

  • Then, we added error handling around heartbeat submission end points.

  • And finally, an issue where the app would blow up when trying to save invalid reference ids has been fixed.

Watch Video

Watch more Live Code Demos

Exceptionless 4.0 Enhancement Overview - Live Code Demo

Exceptionless 4 Enhancement Overview

We recently announced Exceptionless 4.0, but we also recorded a short demo of some of the enhancements and talked through them.

In this live code/feature/functionality review video, Blake talks about:

  • Deploying Elasticsearch 5.x to production with completely new Azure resources.

  • Fixing bugs and doing extensive testing on the new Elasticsearch 5 and Azure implementation.

  • Massive performance boosts due to daily indexes, SSD-backed storage, and bug fixes. These boosts should result in near0instant page loads and huge improvements to session dashboards.

  • Automating cluster setup using Azure CLI and Elasticsearch ARM Templates.

  • A new custom SSH script that allows us to quickly and securely connect to machines, as well as forward ports for things like Kibana.

  • New Azure resources and dashboards.

  • Setting up WebJobs to run as cron jobs.

  • We also found PM2, a new way to manage Node.js services for our StatsD service.


Watch more Live Code Demos