OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Exceptionless

Error, log and feature-usage reporting for .NET and JavaScript apps, hosted or on your own servers

Open source alternative to

Visit ExceptionlessGitHubDocumentation

Main features

  • Error, log message, feature usage and 404 reporting
  • Automatic stacking of similar events, with manual stacking
  • Mark stacks fixed or hidden
  • Client-side de-duplication of bursts of identical events
  • Log levels and data exclusions changed from the dashboard without redeploying
  • User sessions with the events each user triggered
  • JavaScript source map resolution
  • Email notifications plus Slack, Zapier and webhook integrations
  • Event search, filtering and a REST API
  • LDAP sign-in on self-hosted instances

What Exceptionless does

Exceptionless collects exceptions and other events from applications and groups them into “stacks”, so a crash that happens a thousand times shows up as one item with a count and its occurrences. Official clients exist for .NET (ASP.NET Core, Web API, MVC, WebForms, WPF, WinForms and console apps) and JavaScript (browser, Node.js, React, Vue, Angular and Express). Other languages can post events to the REST API.

It records more than errors. Log messages, feature usage, broken links (404s) and session start and end events go into the same system, which lets a team see what a user did before a failure without adding a separate logging service. Stacks can be marked fixed once resolved, or hidden when they are noise.

Client control and privacy

A distinctive feature is that some client behavior is set on the server. Log levels and data exclusions are configured per project in the dashboard and pushed to running clients almost immediately, so you can raise logging for one component or stop sending a field without shipping a new build. Data exclusions remove named fields, with wildcards, before a report leaves the application.

The client also rolls up identical events submitted within 60 seconds into a single event with a count, which keeps a crash loop from flooding the server. JavaScript source maps are picked up automatically when they are public or can be uploaded from a build pipeline; they only apply to events received after the upload.

Self-hosting Exceptionless

The server is a .NET application with a Svelte front end, and it stores events in Elasticsearch and uses Redis for caching, queues and messaging. For a quick trial the project publishes an all-in-one Docker image with a single-node Elasticsearch inside, which the documentation describes as unsuitable for production. For production it recommends Kubernetes with Helm, your own Elasticsearch cluster, Redis and an SMTP server. The Kubernetes guide is marked as a work in progress.

Configuration uses environment variables prefixed with EX_. Major upgrades can involve data migrations: version 8 moved to Elasticsearch 8, and the upgrade notes ask you to load existing data with the latest Elasticsearch 7 release first. Self-hosted instances can sign users in with Active Directory over LDAP. To use the Slack integration you have to create your own Slack app.

Hosted version

The project runs a hosted service at exceptionless.com. It has a free plan limited to one project and one user with short data retention; paid plans add longer retention and the premium features listed above. The self-hosting documentation does not describe any feature limits for your own instance.

Limitations

Only .NET and JavaScript have official clients, so teams on Python, Go, Ruby or PHP would have to write against the API. It does not accept Sentry SDK traffic, so moving from Sentry means replacing client libraries. There is no session replay and no distributed tracing. Running Elasticsearch well is the main operational cost of self-hosting.

Who it suits

Exceptionless fits .NET shops, and JavaScript front ends that sit in front of them, that want errors, logs and feature usage in one Apache-2.0 tool and either already run Elasticsearch or prefer the hosted service. For a Sentry-compatible server, see Rustrak; for all the options, see the error tracking guide.

License details

Apache-2.0. The whole repository is Apache-2.0. On the hosted service, search, per-occurrence notifications and the Slack, Zapier and webhook integrations are reserved for paid plans.

Technical details

Self-hosting needs

  • Elasticsearch
  • Redis

Built with

  • C#
  • .NET
  • ASP.NET Core
  • Svelte

GitHub topics

  • asp-net
  • bug-tracking-tool
  • c-sharp
  • crash-reporting
  • crash-reporting-tool
  • crash-reports
  • elasticsearch
  • error-handling
  • error-monitoring
  • error-reporting
  • error-stack-trace
  • exception
  • exceptionless
  • foundatio

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.