We're delighted to announce the release of Seq 3.3, a major milestone for Seq that raises the bar for usability and convenience.
Front and center of the new release is an amazing new filter box. The filter box in Seq 3.3 has great syntax highlighting, multi-line editing, and saved queries. It's also context-aware, so that correct filters are easier to write and common typos are easy to spot.
Along with the new filter box, many tricky scenarios have been smoothed out. Accepting
where clause predicates as filters means that it's now trivial to switch between simple filtering and more advanced SQL queries: the same filtering syntax works for
having clauses, too.
Fundamentals in this release include support for a new compact JSON format that means less bandwidth is required for the same volume of log data. We've also hunted down and fixed bugs in every corner of the app.
More than anything else, Seq 3.3 brings a more refined and cohesive experience to the full breadth of the user interface.
The fantastic filter box
Nearly all interactions with Seq begin with the filter box. One of the fundamental principles that guides the design of Seq is to provide a smooth transition from simple text searching through to advanced SQL aggregations and charting, and the filter box is how that is realized.
The simplest Seq query is a text search. Just typing or pasting what you're looking for will usually find what you want:
The filter box knows when a filter is being matched as text. To make this clear, syntax highlighting switches off and the
Text indicator appears when this happens.
Filter expressions that match structured data light up with full highlighting:
Universal filtering syntax means that SQL expressions like the one above, and classic C#-like syntax and operators, are both accepted as filters.
When writing SQL to calculate an aggregate, the filter box intelligently switches on highlighting for SQL keywords -
distinct and so-on:
The SQL implementation in Seq is strict, so filtering conveniences like the C#-style operators aren't accepted. To make this obvious, unsupported syntax is detected and highlighted:
Oh, and once things have outgrown the single line of text that fits in the filter box, pressing
<Ctrl + Enter> inserts line breaks:
Saved and pre-defined queries
Over in the signal bar, you'll immediately notice that Seq 3.3 makes better use of the available space to fit more signals, and the new query list, on-screen,
When Seq 3.3 is installed, a number of pre-defined signals (on fresh installations) and queries are loaded. The example queries in particular make it quick to get up and running:
A query can be loaded into the filter bar by clicking on it. To edit the query, click the small "cog" icon to the right of the query title.
+ button next to the Queries heading shows a list of queries created by other team members. Clicking New in this dialog initializes a query with the contents of the filter box.
Compact JSON support
Seq's HTTP ingestion API accepts JSON payloads comprising a collection of serialized log events. While we've had great success with this format, it's not ideal for several reasons:
- The format gives readability more consideration than efficiency, consuming unnecessary network bandwidth and storage space
- The format is Serilog-specific, requiring fields like
MessageTemplatethat don't make sense for clients using different logging technologies
- As a single JSON document, the payload is hard to parse incrementally; streaming is awkward and when the payload is corrupted it's hard to isolate individual events so that a client can be notified of exactly which event in the payload is invalid.
Earlier this year, a new compact JSON format was implemented for Serilog, with these issues considered. The new format maintains good human-readability characteristics, but uses as little as half the space for the same event information. Newline-delimited batches mean the new format is easier and more efficient to process.
Seq 3.3 now accepts this format, and Serilog.Sinks.Seq version 3.0.0 produces it when the
compact: true configuration option is set. Future versions of our client libraries for other logging platforms will be updated to take advantage of the compact format in the near future.
Apps can be configured to receive a stream of events defined by the intersection of multiple signals, instead of just a single one:
The new debounce window setting can be applied to all apps to avoid a flood of notifications when the rate of events triggering the app increases.
The installer provides a simple in-place upgrade for Seq versions from 2.0 onward.
Seq 3.3 internally uses Serilog 2.0 and updated components that depend on it. After upgrading, Seq apps that use the
Seq Serilog sinks, including the File Archive and Replication apps, will need to be upgraded to matching versions.
To complete this step, after installing Seq 3.3 go to Settings > Apps and click Manage next to the app name. Click the Update button to download, install, and restart the app with the latest package version.
These notes correspond to the 3.3.20 milestone on our issue tracker.
Features and enhancements
- Saved Query List 439
- Syntax highlighting for filters and SQL queries 456
- Grow filter box/accept carriage returns when
<Ctrl + Enter>is pressed 377
- Easier frequency plotting for level and event type 472
- Better default column names 471
- Cleaner stream view layout 461
- Use Serilog's Compact JSON format for "Raw JSON" download 460
- Treat more non-Boolean filter expressions as text searches 458
ToNumber()function for parsing numeric data in filters 398
- Allow (and default to) SQL expression syntax everywhere 457
- Don't automatically open the Timeline histogram when a date range is selected 455
- Allow backups to be downloaded through the admin screen 454
- Allow a web proxy/username/password to be specified 335
- Config, status, restart commands 447
- Allow CORS on non-ingestion API endpoints 445
- Support the intersection of multiple signals, like "Production + Errors" as app input 444
- Locked-down ingestion-only port 437
- Compact JSON format support 435
- Time-slicing result set truncated rather than raising limit error 473
- Filter wildcard "any" expressions fail to match 470
- Add to Signal is enabled for SQL queries when selecting query from history 406
- IE 10/11 - Active navigation menu item overflows bounding box 469
- Large strings of digits in filters cause parsing failure 468
not likeshould require existence of first argument 467
- Dismissed trial license warning reappears after switching views 466
<Enter>in date picker edit box should refresh results 464
- Whitespace and other non-semantic changes in signal filters cannot be saved 463
- Auto-refresh: loading spinner still spins when stop button is pressed 462
order byclause can only refer to projected column aliases" when ordering by built-in properties 459
- Post-install, don't attempt to fall back to IE when the default browser fails to open 434
- Diagnostics page forces full GC on refresh 450
- Change authentication screen does not initialize provider drop-down 449
- Assignments not loading on dashboard 448
- Integrated Windows login fails when virtual directories are used 446
- Active Directory Domain field is not cleared when choosing Basic auth 442
- Provide an option to limit the rate of events received by an app instance 443
- Inline histogram causes performance problems if range exceeds cached storage 441
- Internal app input queue exhausted when importing events 436
Seq 3.3, we hope you will agree, is one of our most exciting releases yet. If you have any questions about upgrading, or need any help with the new version, please get in touch via [email protected].
Thank you to everyone who tried and gave feedback on the preview builds of Seq 3.3. Your input was invaluable and we couldn't have shipped this release in such great shape without you.
We hope you enjoy working with the new version!