Skip to content

Correlated timeline lanes view with event annotations #688

@erikdarlingdata

Description

@erikdarlingdata

Summary

The most common monitoring question is "did X happen at the same time as Y?" Today, metrics live on separate tabs in both apps, forcing users to memorize timestamps and mentally correlate. A correlated lanes view shows multiple metrics stacked vertically on a shared time axis with synchronized crosshairs — hover on a CPU spike and instantly see whether blocking, I/O latency, and memory moved at the same moment.

This is arguably the single biggest UX gap relative to the broader monitoring world (Grafana, Datadog, New Relic all treat synchronized timelines as foundational).

Current Tab Structure

Dashboard

Resource Metrics is a single tab with 8 sub-tabs:

  • Server Trends (2×2 chart grid: CPU, TempDB, Memory, SQL Stats)
  • Wait Stats, TempDB Stats, File I/O (Latency + Throughput), Perfmon Counters, Session Stats, Latch Stats, Spinlock Stats

Lite

Each metric is its own top-level tab:

  • Wait Stats, CPU, Memory, File I/O, TempDB, Perfmon, plus Blocking has a Trends sub-tab

Both apps show these metrics in complete isolation from each other.

Proposed Design

A new "Correlation" or "Timeline" view showing 3-5 user-selectable metric lanes stacked vertically:

  • All lanes share a single time axis
  • Hovering on any lane draws a vertical crosshair across ALL lanes simultaneously
  • Each lane is a compact chart (~80-100px tall) with the metric name and current value
  • Users can add/remove/reorder lanes from a metric picker

Default lanes (suggested)

  1. CPU Utilization (%)
  2. Top Wait Type (ms/sec)
  3. Blocking Event Count
  4. Memory Utilization (%)
  5. I/O Latency (ms)

Event Annotations (bundled with this feature)

Overlay discrete events as vertical markers/flags on the shared timeline:

  • Config changes (from sp_configure / database setting changes)
  • Default trace events (auto-growth, object changes)
  • Agent job completions
  • Deadlock occurrences

These markers answer "what changed when the metric moved?" — data that's already collected but lives in separate tabs today. Hover a marker for detail, click to navigate to the full event.

Consolidation Opportunity

Dashboard

The Server Trends sub-tab (2×2 grid of CPU, TempDB, Memory, SQL Stats) is a prototype of this idea but fixed at 4 metrics with no correlation crosshair. The correlated lanes view could replace Server Trends as the default Resource Metrics landing sub-tab. The individual deep-dive sub-tabs (Wait Stats with its selector, Perfmon with its counter packs) remain for focused investigation.

Lite

The individual top-level tabs (CPU, Memory, TempDB, File I/O) each show a single metric in isolation. The correlated lanes view could become a new top-level tab (or replace the CPU tab as the entry point) that shows the big picture, with individual tabs remaining for drill-down. This would reduce the "which tab do I click first?" problem that's more pronounced in Lite due to the flat tab structure.

Design Notes

  • Data sources all exist — this is a presentation/interaction feature, not a new data collection
  • The shared crosshair is the key interaction: it's what makes correlation visual instead of mental
  • Lane height should be compact enough to fit 5 lanes without scrolling
  • Time axis zoom/pan should apply to all lanes simultaneously
  • ScottPlot (already used in both apps) supports synchronized axes across multiple plot controls

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions