Operations | Monitoring | ITSM | DevOps | Cloud

elmah.io

Lessons learned after migrating Azure Functions to Isolated Functions on .NET 8

The In-process model of running Azure Functions is being retired in favor of the Isolated model in two years. A lot of components on elmah.io are running on Azure Functions. To ensure we are running on the most modern and supported platform (also in two years), we have spent quite some time migrating from In-process to Isolated functions. In this post, I'll share both a checklist to help you do the same as well as some of the lessons learned we had during the migration.

"Secret" elmah.io features #5 - Breadcrumbs leading up to errors

It's time for a new post in the series about "secret" elmah.io features. This is the series where I highlight features that some of you may already know while others don't. For today's post, I want to highlight a feature that turns 3 years old this week: Breadcrumbs. Breadcrumbs is a built-in feature in all of our client integrations and the UI. Debugging what went wrong is often a lot easier by providing a logged error with a list of breadcrumbs leading up to an error.

HTTP Error 500.19 - Internal Server Error

I was just asked how to troubleshoot an HTTP Error 500.19 - Internal Server Error when trying to launch an ASP.NET Core website on IIS. I have seen this error too many times for both ASP.NET and ASP.NET Core so decided to write a blog post about at least one, obvious, fix. The problem happens when deploying the ASP.NET or ASP.NET Core website to IIS and getting the following error message in the browser.

"Secret" elmah.io features #4 - Get help from AI and ChatGPT

In this fourth post in the series of "secret" elmah.io features, I want to introduce you to one of several AI features available on elmah.io. We have had machine learning features like automatic bot detection and spike identification for years. But a recent addition to the portfolio of AI features is the integration with ChatGPT to get help solving issues. In this post, I'll show you how to set it up and how it works.

"Secret" elmah.io features #3 - Automate tasks with elmah.io CLI

In this third post in the series of "secret" elmah.io features, I want to introduce you to the elmah.io Command Line Interface (CLI). While you probably spend most of your elmah.io-related time inside the UI, the CLI offers some interesting possibilities not available through the web app. In this post, I'll show what I believe are the two most usable and helpful features of the elmah.io CLI. There are a lot of sub-commands so feel free to play around with it.

Testing logging code with Microsoft.Extensions.Logging and FakeLogger

Unit testing is most often used for testing business logic. But what if you want to ensure that your code logs important messages to your log store? In this post, I'll introduce you to FakeLogger and how it can be used to test logging code when using Microsoft.Extensions.Logging and the ILogger interface. So, let's start by discussing why to even unit-test logging code. Adding good logging to your code is an often forgotten or down-prioritized practice.

"Secret" elmah.io features #1 - Include source code in errors

This is a new series of blog posts that I have been wanting to write for a while. elmah.io offers a large range of features both through the UI and the list of integrations. While basic error monitoring is used by all of our users, there are features available that can provide huge value but are not so commonly used or known. In this first part, I'll go through including source code in errors and how it will make it easier to debug errors.

Validate NuGet packages before publishing from GitHub Actions

A big part of elmah.io is our clients for various web and logging frameworks. All of them are open-source, hosted on GitHub, and available as NuGet packages on nuget.org. I have blogged about building on GitHub Actions in the past. It struck me that I have never actually shared anything about the various steps we take for validating NuGet packages before pushing them. Let's fix that!

Validate JSON files against schema in Azure DevOps build

JSON files have become part of our daily lives. We use JSON files for all sorts of tasks like settings, defining database schemas, and much more. The other day I found out that invalid JSON files had been pushed to one of our repositories. So, I decided to include JSON file validation as part of our build on Azure DevOps. In this post, I'll share the solution. I'm sure you can think of a scenario where invalid JSON files either do not parse as valid syntax or don't conform to the intended format.