Seq 2025.2 Release

TL;DR: Seq 2025.2 is ready on datalust.co and as datalust/seq in your Docker container registry of choice.

Introducing Heatmaps

TL;DR: Heatmaps are a great way to visualize timing data over time.

What's new in seqcli?

It's been a while since we posted an update on Seq's hard-working command-line client, seqcli.

Leader Election in Seq Clusters

We spent the past 12 months making Seq HA-capable and able to scale work out across multiple nodes. This post is the first of three that dig into how clustering is implemented. It's not so much about using Seq, as about how it works inside, and along the way we'll touch on some of the trade-offs we chose.

Announcing Seq 2025.1

TL;DR: Seq 2025.1 is here! If you're upgrading machines in a disaster recovery (DR) configuration, take note of the requirements for this upgrade. Otherwise, grab the MSI from datalust.co/download, or pull datalust/seq:latest from your preferred registry, and enjoy the most polished and productive Seq release yet.

Replace Function

Seq 2025.1 introduces a Replace function that replaces occurrences of a pattern with a replacement. To replace the word March with the word April:

System Notifications

TL;DR: Seq 2025.1 supports connecting system notifications to an output app instance to proactively receive notifications.

Faster Percentile

TL;DR: Dashboards, alerts and queries that include percentile calculations will run faster and more efficiently with Seq 2025.1, in exchange for a small reduction in accuracy.

Introducing the Seq Command Palette

TL;DR: ever wanted to reset the Seq events screen quickly, deselecting active signals, clearing the filter box, and resetting the date range? In Seq 2025.1, now in preview, that's Ctrl Space, followed by c. You can learn about this shortcut and others by pressing Ctrl K in any screen.

Space-efficient indexing for immutable log data

This post describes our approach to implementing a disk-backed hashmap in Rust for indexing high-cardinality predicates in our diagnostics product, Seq. If you've ever wondered how a hashmap works, or what makes a disk-backed datastructure different from an in-memory one, you might find it interesting.

Announcing Seq 2024.3

TL;DR: With Seq 2024.3, Seq gains user-defined high-cardinality indexes, its first new index type since the introduction of signal indexes back in 2018! If you're eager to skip to the binaries and dig around for yourself, you can get MSIs at https://datalust.co/download, or pull datalust/seq:latest from Docker Hub.

Faster searches with property indexes

Now in preview, Seq 2024.3 introduces a new index type on event properties, known as expression indexes. Under the right circumstances, expression indexes reduce search time from minutes to milliseconds.

Working with Nested Event Properties

Seq 2024.1 introduced a change to the default display of nested event properties. Previous versions of Seq rendered collapsed nested structures that could be expanded to access a context menu on the nested properties. The newer scheme flattens nested properties into dotted names and makes the regular property context menu available for all nested properties.

Enhancing .NET Aspire Observability with Seq

.NET Aspire is a toolkit for development and deployment of microservice applications. It is a local orchestrator with support for deployment to production-grade orchestrators like Azure Container Apps or Kubernetes.

Customizing service trace colors

Seq uses the OpenTelemetry service.name attribute, or Serilog-style Application property, to determine which color should be used for the spans belonging to a service.

Easy in-proc debugging for Seq Apps

TL;DR: the new Seq.Apps.Testing package makes it easy to interactively debug Seq Apps in C#, by hosting them in a console app and sending events directly from Serilog.

Exploding Collections πŸ’₯

TL;DR: Seq 2023.3 introduces the unnest set function and lateral cross joins, enabling natural queries over nested collections in log events.

Seq 2023.3

TL;DR: Seq 2023.3 is now available from datalust.co and by pulling datalust/seq from Docker Hub. It adds support for SQL-style unnest() over JSON array data, and introduces secure internal auditing for the Seq Datacenter tier.

A self-hosted target for OpenTelemetry Logs

Structured logs are the latest component of the OpenTelemetry protocol (OTLP) to stabilize. The promise of structured logging with OTLP is huge: built around a common data model and tightly-specified protocol, fully-structured application logs should soon be able to be shipped from just about any application to any log server with a minimum of fuss.

Seq 2023.2

TL;DR: Seq 2023.2 is out! It adds a native ingestion endpoint for OpenTelemetry Logs, which makes it easier getting structured logs into Seq from a wider range of sources.

Memory limits in Seq 2023.1 on Windows

It's been a month since Seq 2023.1 was released, and in that time we've seen a great uptake of the new version for Seq installations large and small.

Suppressing noise to maximize Seq performance

Log data is noisy! Sometimes a rock band playing at the foot of your bed kind of noisy. This isn't always a bad thing - a lot of good log data is speculative, and when it turns out to be important you're glad it's there.

Seq 2023.1 is ready to rock your world!

Nearly a year in the making, Seq 2023.1 is faster, plays better with container hosts, and scales up like no Seq version before. Get the Windows MSI at πŸ‘‰ datalust.co/download, or pull datalust/seq:latest from Docker Hub.

Seq 2023.1 Beta

TL;DR: Seq's new query engine uses CPU cores and memory more intelligently. It's ready to try in non-mission-critical environments, and we're eager for your feedback!

Tailing a log file or folder with Fluent Bit and Seq

It's not always possible to ship logs directly from an application to a centralized log server like Seq. Many interesting systems, new and old, write text or JSON log files locally, and rely on a separate collector to read, parse, and ship them.

Choosing the right log levels in development and production

The concept of log event "levels" is ubiquitous, appearing in practically every application logging library and language. We have an intuitive sense of what familiar levels like debug, warning, and error mean, but there's surprisingly little useful advice out there on how to use levels effectively. Here's one tip based on what I've learned building systems, and helping people to "log better" these last eight years:

2022.1.7647 maintenance release

We've just published a new patch for Seq 2022.1, including a number of bug fixes, and support for the ECR Public Gallery.

Updated permissions in Seq 2022.1

Seq uses a roles-and-permissions based scheme for managing user privileges. Users are assigned to roles, and roles carry one or more of a handful of permissions that API endpoints demand.

Moving metadata to Seq's native storage engine

In Seq 2022.1 we've hit a bit of an internal milestone. It's the first release of Seq ever with no dependency on any external storage engine. On Windows that means ESENT is no longer used for local metadata (document) storage, and on Linux that means no more LMDB. All traces of these other engines have been hoisted out-of-tree and all local storage now runs through Flare, the storage engine initially built for Seq's event store.

Bringing a little slice of Developer Tools to Seq in 2022.1

If your experience is anything like mine, debugging in production is as much about organizing information - clues, leads, sometimes frustrating dead-ends - as it is about unearthing it. Working through an issue, I need pen and paper, sticky notes, whiteboards and spreadsheets as much as I depend on searching logs.

Improving the signal bar

Signals are one of Seq's most important and useful features. Activating and combining signals can very quickly limit a search or query down to a narrow stream of relevant events.

Sending Alerts to Slack

Seq can monitor the event stream and trigger alerts when configured conditions occur. For example, a system produce an alert when an item runs out of stock.

Getting Seq onto .NET 6 and ARM

Seq 2021.4, scheduled for December, will be our first release targeting .NET 6 and ARM. Porting to the new instruction set began right at the start of 2021, which has meant targeting both .NET 5 and .NET 6 simultaneously over the course of the year. This post is a quick rundown of how we've made that work.

What's coming in Seq 2021.3?

We're only two weeks away from the release of Seq 2021.3, on October 26th! The latest preview build is feature-complete, so now's a great time to share an update on what you can look forward to in this release.

Understanding the Seq Storage view

Seq 2021 introduced a fantastic new visualization of how Seq uses disk and memory resources, under Data > Storage:

Seq 2021.3 previews now available

The first 2021.3 preview builds are now live on datalust.co/download and Docker Hub. Along with some other improvements, they include the very first pieces of clustered Seq: disaster recovery (DR) and zero-downtime upgrades through asynchronous replication.

Populate Seq with realistic sample data

Without the log data, searches, and dashboards that show what your application or system is up to, Seq is just a blank frame.

Seq 2021.1 is released πŸŽ‰

In case you missed it, we've also included updates in 2020.5, which was released on Dec 24, 2020. πŸŽ„

Seq 2020.3 is released πŸŽ‰

This release improves stability for Seq customers using Azure Active Directory (AAD) authentication. We've also made some much-anticipated changes to live tailing to make it more responsive and easier to follow.

Resetting the Seq Forwarder project

Seq Forwarder is a tiny local server that imitates the Seq HTTP ingestion API. You can send logs to it using any Seq client library; by default it listens on port 15341:

A Seq query language primer

Seq 2020.1 includes some interesting query language improvements, including object literals, a universal ci case-insensitive text comparison modifier, conditional expressions, and a bunch of new built-ins. Now seems like a good time to reintroduce our much-loved query language from the ground, up!

2020.1 Ingestion View

Our brand new Ingestion view is designed to help Seq admins feel in control of their incoming data.

Seq 2020.1 is here!

We've been hard at work since the release of Seq 5.1 last year, and today we're excited to finally take the wraps off Seq 2020.1.

Switching to Calendar Versioning in 2020.1

Hi! We hope 2020 is treating you well, despite its unique challenges. At Datalust we've settled into a new fully-remote workflow, which, thankfully, we were reasonably well-prepared for by our existing partly-remote schedule. We know it hasn't been so easy for everyone, so if you're facing any difficulties we can help with, we hope you'll be in touch.

Storage changes in Seq 6.0.3403-pre

One of the first major internal changes planned for Seq 6 just landed in the latest preview, 6.0.3403-pre.

Introducing Datalust Accounts

Today, we're introducing Datalust Accounts: a simple new facility that provides easy access to Seq license certificates and invoices.

Datalust at NDC Oslo 2019

We're delighted to have two people from Datalust speaking at NDC Oslo in June this year. Read on below for sessions and times, and if you're lucky enough to be in Oslo for the event, we hope you'll say "Hi!"

Building Seq Inputs in C#

Custom inputs are an exciting new feature in Seq 5.1. For me, anyway, there's something magical about plug-in systems and being able to extend an app in ways its creators might not have envisaged.

Building modern Seq Apps in C#

Seq Apps are plug-ins that read or write events to the Seq event stream. Seq apps have been around a long time, but they've been refreshed and updated recently, first to support non-.NET programming languages, and more recently, to support .NET Standard and a more efficient C# API.

Analyzing IIS log files with Seq

Nested somewhere under C:\inetpub\logs, IIS, the popular Windows web server, writes files like this:

Our journey from nightly to stable Rust

When we shipped Seq 5.0 back in November, our new storage engine was compiled against Rust's unstable nightly channel. As of Seq 5.1, we can instead use the supported stable channel. That feels like a bit of a milestone so I'd like to share a few details about our journey from nightly to stable, and celebrate the progress the community has made on the language, libraries, and tooling over the last twelve months that made that journey painless for us.

Seq 5.1 Plans

Seq 5.1 is on its way! Version 5.0 was a major turning point for Seq, and we're still coming to terms with everything we can now build on its foundations.

Collecting Docker logs with Seq

Docker's built-in logging infrastructure takes STDOUT and STDERR from a running container, and sends each line of text to one of several logging drivers. This makes it possible to monitor and diagnose issues in containerized apps without any special logging configuration in the app itself.

Seq 5 Released

Today we're excited to take the wraps off Seq 5, a major update to our much-loved log server --- bringing faster storage and lower resource requirements, support for Docker on Linux, beautiful new dark and light themes, and a host of improvements throughout the product.

Introducing Workspaces - Seq 5 Beta 2

TL;DR: The latest Seq beta build adds workspaces to help keep the Seq user interface focused even when a large number of signals, queries, and dashboards are in use. We've used this opportunity to align how signals, queries, workspaces, and dashboards are shared and managed in team settings.

How we integrate Rust with C#

Seq is a log server that's built using a few programming languages; we have a storage engine called Flare written in Rust, and a server application written in C#. Our language stack is something I've talked about previously.

Rust at Datalust

At Datalust we build a log server called Seq. It's really a database, written in C#, with its own SQL-based query language, that's specifically designed for storing and querying structured log data.

Parsing plain-text logs with `seqcli`

Plain-text logs are still with us! --- Although newline-delimited JSON is, thankfully, an increasingly common format for log files and streams, painting a complete picture of a system still does sometimes mean slurping up unstructured output, or sifting through plain text.

Native Storage in a new Seq 5 preview

Seq is a log server designed for modern structured logging and application monitoring. It's used in all kinds of organizations, with a wide variety of development technologies.

The new JSON Archive app

Seq can archive events for long-term storage to a set of regular log files, either directly to a SAN or to somewhere that a background task can pick them up and send them to off-site storage.

Seq 4.2 RTM

Seq 4.2 is now available for download. This release is one of our biggest point releases ever, with UX improvements, optimizations, polish, and bug-fixes throughout.

Serilog Tutorial

Structured logging has exploded in popularity over the past few years. We've put together this streamlined guide to Serilog, .NET's favorite structured logging library, so you can get up and running fast.

Organizing the Signal Bar in Seq 4.2

Seq 4.2.280-pre introduces signal groups, a huge improvement to how signals are organized and combined to produce a filtered view of the log stream.

Introducing Ashley Mannix

This week we're delighted to welcome Ashley Mannix to the Datalust team! Ashley brings a wealth of engineering talent and valuable insight, at a time when Seq is growing faster and being used in increasingly challenging and sophisticated scenarios.

Latest-value charts in Seq 4.1

The Seq dashboard is generally used for charting values over time. There are a few monitoring scenarios, though, in which a single value of some measurement is most important:

Seq 4.1 is ready to roll!

Since Seq 4 first shipped in May, we've been hard at work on Seq 4.1, which contributes to all-round performance and polish, and further enhances the new dashboarding experience.

Structured Logging comes to NLog

NLog 4.5 (now in alpha status) makes it significantly easier to filter, correlate, and analyze large volumes of log data from complex, asynchronous and distributed systems.

Smart Logging Middleware for ASP.NET Core

ASP.NET Core comes with request logging built-in. This is great for getting an app up-and-running, but the events are not as descriptive or efficient as hand-crafted request logging can be. Here is a typical trace from a single GET request to /about:

Centralized ASP.NET Core Logging in One Line of Code

ASP.NET Core comes with some great built-in logging. Framework components such as Routing, MVC and EntityFramework have been updated to support structured logging throughout - for example, when MVC selects a controller and action it includes ActionName in a log event so that later, you can drill down easily to requests hitting a specific action. The framework also adds convenient properties like RequestId to log events by default, making it trivial to zoom in on just the events raised during handling of a particular HTTP request. Setting up truly great application logging in an ASP.NET app has never been easier.

Seq 3.3 is here!

We're delighted to announce the release of Seq 3.3, a major milestone for Seq that raises the bar for usability and convenience.

Which log events are taking up the most space?

Log data is pretty unruly stuff. As apps evolve it tends to grow in volume fairly quickly, and in the noise it can be hard to work out where application CPU overhead, network bandwidth, and storage space is actually going.

Announcing Seq 3.0

Today we're pleased to announce the production release of Seq 3.0, a major update to our log server for .NET apps. Downloads are now live on the Seq website.

Featured Customer: Mater Hospitals and Health Services

We are delighted by the wide variety of businesses using Seq. This year we will be featuring some of our customers here, to share their experiences adopting Seq and structured logging.

Featured Customer: Stayhard - Mens Style Online

We are delighted by the wide variety of businesses using Seq. This year we will be featuring some of our customers here, to share their experiences adopting Seq and structured logging.

Featured Customer: Youi Insurance

We are delighted by the wide variety of businesses using Seq. This year we will be featuring some of our customers here, to share their experiences adopting Seq and structured logging.

ASP.NET Core Structured Logging and Seq

Update July 2016: RTM is here! This post was originally written for RC1, but has now been brought up-to-date to cover .NET Core 1.0.

Instant ASP.NET diagnostics with SerilogWeb.Classic

Great logs need to be built-in from the first day of a project. It's only by using your application logs during development and testing that they will deliver their full value in production.

Log Deployments from Octopus to Seq

When a new issue shows up in a complex environment, it's nice to know what recently changed. The Seq step template for Octopus Deploy lets you record deployment events to Seq, so that you can view and filter them alongside other events in your logs.

Active Directory Authentication in Seq 1.6

While the UserVoice site warms up, we're relying largely on the responses to our recent user survey to shape the Seq roadmap. More than a third of respondents rated integrated Active Directory authentication as a top-priority feature, so we're pleased to announce support for it with Seq 1.6, freshly released.

Why Seq?

Not that long ago, even releasing software was stressful. Great tools to automate builds, testing and deployment have largely fixed that: if a project is set up carefully, "pressing the button" on a new release can even be fun.

Incoming events are easier to manage in Seq 1.5

Seq 1.5 is just around the corner. It's the biggest improvement we've made to the product since 1.0, with a major storage overhaul that makes Seq both faster and easier to manage.

Detecting never-before-seen event types

Perhaps the most useful, but seldom-noticed benefit of a structured log is having the first-class notion of an event type.

Filtering events on arrival at Seq

Collecting too much log data makes the "needle in the haystack" all the more difficult to find, but for practical reasons it is often easier to collect as much data as possible anyway and "sort it out later" via Seq retention policies.