Slack Integration Update & Recap

Exceptionless Slack Integration/

Since we first introduced Slack integration with the goal of further improving notifications in Exceptionless, we've come back around with updates, a few bug fixes, and wanted to give everyone a quick all-in-one overview of the feature!

Thanks to everyone that has provided feedback, bug reports, and suggestions. If you have any, don't hesitate to submit an issue over on GitHub. We're always looking to improve and would love your input!

Along the way, we have run into incoming webhook issues, some usability/setup workflow updates that needed to be made to make the process more usable, and, among other things, incorrectly created action URLs that weren't being handled correctly with rate limiting.

We'll cover setting up Slack integration with Exceptionless below, but you can also review the original post and weekly update video, the first bug fix update and video, and the most recent Slack integration improvement update and video.

Setting up Slack Notifications for Exceptionless #

First, go into your project's settings in the Exceptionless app and click on the Integrations tab.

[<img loading="lazy" class="aligncenter wp-image-15626 size-full" src="/k-setup.png" alt="" width="811" height="595" data-id="15626" srcset="/assets/img/news/exceptionless-sla//exceptionless-slack-setup-300x220.png 300w/ack-setup-768x563.png 768w" sizes="(max-width: 811p/ts/exceptionless-slack-setup.png)/

Then, click on "Add Slack Notifications" and log in to your slack team.

Once logged in, you will need to select the channel you want Exceptionless Notifications to post to and click Authorize.

Once authorized, you can then configure the different notification settings by going back to the Exceptionless app and into the project's integrations tab again.

Once integrated and configured, notifications will look something like the below screenshot, with the message, type of event, stack trace, links to actions, etc.

We're excited to keep improving notifications, and would love for you guys to continue testing and providing feedback! What else would you like to see happening with notifications? What are we doing right, and wrong?

Integrations with other chat & productivity tools like HipChat and Microsoft Teams are on our list, as well, so if you use these please ping us and let us know so we can gauge interest!

Until next time, code on my friends.

Universal JavaScript Support Added to Exceptionless.JavaScript

Exceptionless Universal JavaScript

Recently, we released Exceptionless.JavaScript 1.5. The major update for the release was the addition of universal JavaScript (React Universal) support! More details below. The key is that we can now run in server side node apps, or in the browser, with a single script and do the right thing!

TL;DR: Isomorphism is the functional aspect of seamlessly switching between client- and server-side rendering without losing state. Universal is a term used to emphasize the fact that a particular piece of JavaScript code is able to run in multiple environments. - Gert Hengeveld, Isomorphism vs Universal JavaScript

We have gotten lots of requests for Universal JavaScript support. What this means is that you can use a library in the browser or server without any changes from the end user. This is great because you can just consume the library and just know it will work using the same API service no matter where you want to use it. The main con of using a universal client is the increased payload size as you know have to send node support to the browser as well.

We implemented universal JavaScript support by bundling both the browser and node scripts together. But it wasn't as easy as concatenating the files together. We had to refactor the node and browser entry points so that they would automatically run, while ensuring that the initialization of environment specific code (storage, network, etc.) only ran when specific environment conditions were met. This is pretty easy to do with an IIFE function and a quick if check as shown here. Next, we needed to provide a new entry point that imported both of the entry points which ensures that browser and node entry points run.

This update adds support for universal apps, and a React Universal sample that shows the exact changes that were required to get everything working and setup can be found here. The pull request for universal support can be found here.

To target it, you just need to reference the universal script (exceptionless.universal.js), this will happen automatically if you install via browserfiy or webpack.

Questions? Feedback? #

Let us know what you think about the new Universal JavaScript support over on GitHub!

JavaScript Client V1.5 Release Details & Notes

exceptionless.javascript 1.5
Exceptionless.JavaScript v1.5 Release Notes

Unversal App Support #

The major update for 1.5 is that we have added support for universal apps (React Universal).

To view the exact changes required to get everything working and set up, click here.

Other 1.5 Updates #

  • Added support for exceptions that are passed in and are just strings.
  • Updated TraceKit to the latest version, which adds support for parsing PhantomJS errors and greatly improves native stack traces.
  • Thanks @caesay for updating TypeScript to the latest version, as well!

Bug Fixes #

  • Fixed a bug where exceptionless would fail to load when used with webpack.
  • Fixed a bug where browser module info was not being populated.
  • Fixed a bug where ILog.trace was piped to the wrong console function which would error under IE (thanks @srijken!)
  • Fixed a few bugs with angular integration
  • Fixed a bug with submitLog not respecting log message and log level

For a full change log, select an applicable release on the Exceptionless.JavaScript GitHub Release page.

Weekly Update: CodeSmith Generator, Serilog Sink, and Foundatio.Redis Updates

Blake's been busy lately, including some work on one of our other projects, CodeSmith Generator, to update Exceptionless to the latest version. Naturally, this got him thinking about other potential improvements while we were doing work on Serilog Sink for Exceptionless and Foundatio.Redis, as well.

Watch the video to hear the full story!

CodeSmith Generator Gets Latest Exceptionless Update #

While updating our WPF application, CodeSmith Generator, to the latest version of Exceptionless, Blake brainstorms several improvements that could be made to help take advantage of plugins, isolate Exceptionless from other plugins, etc.

Serilog Sink #

There was an issue that was breaking the ability to update to the latest version of Exceptionless. This has now been fixed.

Foundatio.Redis Update #

Deserialization wasn't working properly with binary serializers, but the issue has been resolved.

WATCH NOW

More Improvements to Exceptionless Slack Integration

In this week's video, Blake covers a quick update on the Exceptionless Slack integration, along with a minor update to Foundatio.

Take a look!

Slack Integration Update #

We have been tweaking the recent Slack integration over the past month or so, and this week we noticed that action URLs being created incorrectly and failures weren't being handle correctly with rate limiting. So, those two issues have been tweaked and should be working much better now.

In Foundatio News #

A big shout out to @pwelter34 for submitting a pull request that added support for Serilog to Foundatio - Paul!

WATCH NOW

Watch more Live Code Demos

Exceptionless Slack Integration, Further Improved Notifications

As you guys know, we've been working on notification improvements lately. This latest video update by Blake is no different and involves Slack integration!

If you're not familiar with Slack, definitely check it out. It's a great app for communicating with your team, and much more. For Exceptionless, it's been something we've wanted to integrate closely with for a while now, because email can be very tedious and overwhelming. With Slack integration, you can set up a specific channel for your Exceptionless notifications to go to, and have an organized eye on your events.

Watch the video above for an explanation of the integration, and see below on how to set it up for yourself.

Set up Slack Notifications for Exceptionless #

First, go into your project's settings in the Exceptionless app and click on the Integrations tab.

(/assets/img/news/exceptionless-slack-setup.png)

Then, click on "Add Slack Notifications" and log in to your slack team.

Once logged in, you will need to select the channel you want Exceptionless Notifications to post to and click Authorize.

Once authorized, you can then configure the different notification settings by going back to the Exceptionless app and into the project's integrations tab again.

(/assets/exceptionless-slack-settings.png)

Once integrated and configured, notifications will look something like the below screenshot, with the message, type of event, stack trace, links to actions, etc.

Exceptionless Slack notification(/assets/exceptionless-slack-example.jpg)

We're excited to keep improving notifications, and would love for you guys to test this out for us.

Integrations with other chat & productivity tools like HipChat and Microsoft Teams are on our list, as well, so if you use these please ping us and let us know so we can gauge interest!

WATCH NOW

Watch more Live Code Demos

Email Notification Improvements - Walkthrough and Details

exceptionless email notifications

Recently, we made several improvements to our email notifications, adding additional details, improving rendering, and more. Blake has mentioned it in a few of his weekly update videos, but today we wanted to walk you through it and add a few more details, with examples. Check it out!

Exceptionless Email Notification Implementation #

We decided to use Zurb's Foundation for Emails to help us create emails that look great on all email clients. The reason we went with Zurb is because it has clean markup that translates to good old (ugly) HTML that just works. It also works great with Handlebars.Net which we use to render the email content.

An example of one of our event notification emails can be found here.

Then, we run a Node.js build task to transform the templates into some pretty crazy html markup that works everywhere. The markup at that link contains the Handlebars.Net syntax.

These templates are stored as embedded resources so we can use them from any environment and render them out with ease! Here is a code example of how we perform that task.

We added JSON-LD support, to the emails to give us rich contextual actions, by starting with this Google Developer tutorial and ended up with the below implementationIt's worth noting that we had to go through their verification process for the actions to be enabled.

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"description": "\",
"potentialAction": {
"@type": "ViewAction",
"target": "\/event/\",
"url": "\/event/\",
"name": "View Event Details"
},
"publisher": {
"@type": "Organization",
"name": "Exceptionless",
"url": "https://exceptionless.com",
"logo": "https://be.exceptionless.io/img/exceptionless-48.png"
}
}
</script>

We tested the emails in Outlook for Windows and Mac, Paper Cut, Gmail on Safari, and Apple Mail. Then, we used Litmus to test a wide range of clients before publishing and pushing everything live.

Questions? Comments? #

We hope our build out here can help other developers, and we would love to hear your feedback, questions, or comments either here on the blog or over on GitHub!

Code on.

Collect Project Level Usage Stats, UI Updates, Foundatio Updates - Weekly Video 5/8/2017

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.

Exceptionless Changes #

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

Exceptionless.UI Updates #

  • On the manage project page, we are now showing project usage statistics.
  • On the sessions dashboard, we have added the ability to see active users.
  • On the stack and session dashboards, we are now always showing hidden or fixed events.
  • When you select a usage time range, you will be redirect to the organization or project dashboard.

Updates to Foundatio, Foundatio.Repositories, and Foundatio.Parsers #

  • In Foundatio core, we merged in the CloudWatch Metric clients and SQS changes. We also moved each client into its own repo.
  • For Foundatio.Repositories and Foundatio.Parsers, we created the final 1.x release and merged in the Elasticsearch 5 branches.

WATCH NOW

Watch more Live Code Demos

Daily Summary Email Improvements, Foundatio Updates, and more - Weekly Update 5/1/2017

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.

Updates to Exceptionless #

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.

Foundatio.Repositories & Foundatio.Parsers Updates #

We updated Foundatio.Repositories so that it no longer ignores the version property.

For Foundatio.Parsers, we merged code and server mapping properties.

WATCH NOW

Watch more Live Code Demos