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.

Seq 2020.1 is faster, even easier to use, and makes better use of hardware resources than its predecessor.

If you just want to dive in, download the Windows installer or pull the latest datalust/seq Docker image, and go! Seq 2020.1 is a highly-compatible, in-place upgrade from all recent versions.

What is Seq?

Seq is a self-hosted log server, designed to let any software development team, on any platform, get first class diagnostics from production apps and services. It's the solution of choice for organizations that need to own and tightly manage their diagnostic data.

Seq is a fully-integrated event store, query engine, alerting system, and web interface, built using C#, JavaScript, and Rust.

Highlights of 2020.1

Though we didn't set out intentionally to break records, Seq 2020.1 became the single biggest Seq milestone ever. Here are some of the highlights!

Go further with the same hardware 🚀

Upgrading from Seq 5.1 to 2020.1 gives you increased responsiveness, and better search performance (we've seen ~10× for some queries), from the same server hardware.

Along with improvements thanks to .NET Core 3.1, we've moved large parts of the Seq query engine from C# into Rust, reducing pressure on the .NET garbage collector and enabling more aggressive parallelism.

There is a 4-10x gain in query performance between Seq 5.1 and Seq 2020.1 query engines, with some queries taking over 34 seconds in 5.1, now taking less than 3 seconds in 2020.1.
Seq 2020.1 vs Seq 5.1 query and search performance (lower is better). The chart shows a portion of results from benchmarking experiments conducted in Google Cloud on an `n1-highcpu-4` (4 vCPUs, 3.6 GB memory) virtual machine backed with standard SSD storage. The "RAM" queries were executed with caching enabled and a dataset of 1.2M events, while the "disk" queries show performance outside of the cache, over 1.9M events. The difference in dataset sizes makes disk queries appear a little slower than they actually are relative to "RAM" queries; look out for a more detailed performance analysis here, soon.

While the cache-enabled numbers (RAM) show an improvement from 5.1 to 2020.1, it's disk search has the biggest performance impact when data exceeds available memory, and this is where we've focused most of our effort. The improvements in Seq 2020.1 make a noticeable difference when running with larger machine and data sizes.

Some really interesting tech came out of this work, including a fully-vectorized, sparse JSON parser, and a new runtime for evaluating complex expressions over JSON objects. We're excited to share it with you, so watch this space for an upcoming deep technical dive into the new stack.

Authenticate with OpenID Connect

OpenID Connect is the emerging standard for authentication using OAuth 2.0. Many teams use OpenID Connect providers like Auth0 to implement single-sign-on and multifactor authentication. Thus, integration has been one of the most-requested features on our backlog.

Find out how to get started in our detailed setup guide.

Stay in control of log ingestion

Carefully managing the volume of log data ingested by Seq is crucial for keeping storage and processing costs down. Applications can behave unpredictably, misbehave, or just send more data to Seq than expected, leading to runaway disk, RAM, and CPU consumption, and reduced search performance.

A screenshot of the new Seq Ingestion page, showing a 24 hour area chart with incoming events and current ingestion statistics. Also a table showing all sources of input into Seq.
Seq 2020.1 ingestion view

The new ingestion view shows trends and data volumes across log inputs, tracked for 24 hours, making it much easier to spot problems and filter out unnecessary noise.

Handle logs from more frameworks and platforms with ease

GELF, syslog, and other pluggable inputs are now on an equal footing with the built-in HTTP API:

  • Track fine-grained ingestion metrics for each input
  • Limit ingestion using minimum levels and filters
  • Tag events with attached properties, and
  • Use server timestamps when necessary.

Whether you're managing .NET, Java, or Node.js apps, or collecting logs directly from Docker, Seq 2020.1 provides a first-class experience.

Easily deploy Seq to Kubernetes

The official Seq Helm chart for Kubernetes has had an overhaul. Better defaults, and more features enabled out-of-the-box, make setting up Seq 2020.1 on your Kubernetes cluster a breeze.

Find more details in the Helm chart documentation.

Narrow down your search

We've added new language features to help you find what you're searching for, faster. Express an even wider variety of queries using:

  • The universal case-insensitive (ci) modifier, enabling case-insensitive group by, property access, comparisons, and more
  • Conditional expressions with if/then/else
  • Object literals {a: 'hello', b: 42}
  • Structural equality comparisons for arrays and objects, e.g. EventId = {Id: 1, Name: 'UnhandledException'}
  • interval() in queries that group by time()
  • select * and @Document now reflect the underlying JSON data model
  • Better error reporting for search expressions
  • coalesce() function with variable number of arguments - coalesce(A, B, C, ...)
  • Keys() and Values() built-in functions for collection manipulation
  • ToJson() and FromJson() for handling JSON-encoded strings
  • ToUpper() and ToLower() built-ins
  • Column aliases in groupings - group by A as b

Upgrading from Seq 5

Seq 2020.1 is an in-place upgrade for Seq 5.0 and 5.1. Most users can simply run the new Windows installer, or pull the latest datalust/seq Docker image, and Seq will take care of migrating your existing data when it starts up.

If you're running a large Seq installation, or have applications that integrate tightly into the Seq API, check out the upgrade guide for an overview of what's changed.

Learning more

There's a lot more to Seq 2020.1, and we'll have some in-depth posts to share in the coming weeks.

Our Seq documentation has had major update for this version, and is a good place to start if you're new to Seq. If you're already thoroughly familiar with Seq, and just want the details, the 2020.1 GitHub milestone has some great info.

Happy logging!

Nicholas Blumhardt

Read more posts by this author.