Everything on one surface, which makes it the best place to see what a page looks like when the product refuses to choose between metrics, logs, traces and cost.
Observability · Infrastructure and FinOps · SecurityProducts 7
The reference implementation for panel grids, template variables, and stat panels; most other tools are defined by how they differ from it.
Observability · Infrastructure and FinOps · IoT and energyQuery-first; heatmaps and BubbleUp replace the dashboard-of-panels model with draw-a-region cross-filtering.
ObservabilityQuery-first rather than panel-first: the search bar is the primary control and the charts are downstream of it, which inverts Grafana's arrangement.
Observability · SecurityPer-second charts, hundreds per node, with a per-chart anomaly ribbon instead of a band on the series.
Infrastructure and FinOps · ObservabilityA queue rather than a chart. Two-pane list and detail with keyboard traversal, because the task is working through incidents rather than looking at them.
Support · ObservabilityIssue-centric rather than metric-centric; the two-pane list-and-detail structure with sparklines inline on every row.
ObservabilityPatterns seen in this domain 58
- Alert rule attached to panel
- Annotation
- Anomaly band
- Categorical series palette
- Collapsible row
- Compare periods
- Cross-filter
- Dark-first data palette
- Dashboard builder
- Data source badge
- Data table
- Delta indicator
- Detail on demand
- Drill-down
- Empty state
- Error and stale state
- Explain this metric
- Filter bar
- Freshness indicator
- Gauge and dial
- Geo map with markers
- Grayscale with alerts
- Header KPI strip
- Heatmap
- Histogram and distribution
- Host map
- KPI tile
- Legend and series toggle
- Loading and skeleton state
- Log tail
- Metric targets
- Multi-page dashboard
- Overview then detail
- Panel grid
- Percentile summary
- Ranked list
- Ratio and rate
- Search across panels
- Semantic grouping
- Semantic status color
- Sequential and diverging scales
- Service map
- Share and embed
- Sidebar and canvas
- Small multiples
- Sparkline
- Stacked composition
- Status history
- Tabs as genres
- Target and progress
- Template variable
- Threshold line and region
- Time series
- Time-range picker
- Trace waterfall
- Two-pane list and detail
- Wallboard mode
- Zoom and pan on time
Captures
Newest first within each product.
- Loading and skeleton state A spinner and the word Loading. Correct that work is happening, silent about what is arriving or how much.
- Loading and skeleton state The space twenty-eight rows are about to fill, holding nothing. When they land, everything below them moves.
- Alert rule attached to panel Seven rules in six naming conventions. Nothing in the list conveys severity or subject.
- Alert rule attached to panel Firing for 17 days. Still actionable, in principle; nobody has acted for two and a half weeks.
- Semantic status color Pending rather than firing: the threshold is met and the duration isn't. Two states, both named.
- Filter bar "1 instance, 24 hidden by filters"—the list saying what it is not showing you.
- Drill-down The route from an alert back to the rule that defined it, on every row.
- Annotation Fifty deploy markers on a 24-hour chart. Each one is correct and together they are a picket fence.
- Annotation The same events as a list, tagged release and timestamped. Readable in a way the chart is not.
- Filter bar The tag filter that makes this survivable, already on. The chart above is the filtered version.
- Time-range picker Twenty-four hours, which is what sets the marker density. An hour here would be three lines.
- Wallboard mode The next train, three times the height of the rest. Readable at ten feet with no pointer.
- Panel grid Rows two to four at a third the size. Panel size is carrying the priority.
- Semantic status color Green for on time, next to green for the Green Line. One hue, two unrelated jobs, one row.
- Freshness indicator A countdown rather than a clock time, which is the right call and hides how old the feed is.
- Data table The raw feed under the board, including the rgb string each line colour came from.
- Template variable Six selectors bound to every panel's query, with the chosen values carried in the URL.
- Filter bar Values as removable chips rather than a dropdown saying Instance (3).
- Explain this metric Names a hidden variable set to pizza. Prose is doing the work a control should.
- Categorical series palette Twelve-plus hostnames differing only in the middle digits, with twelve-plus colours to match.
- Data table Four columns visible, the fourth cut mid-word, with no horizontal scroll offered.
- Gauge and dial Seven arcs to report that seven disks agree. This is the area argument in one panel.
- Sparkline A sparkline inside the arc: the same series encoded twice in one square.
- Sequential and diverging scales The arc runs pink through green with no perceptual order, so position on it means nothing without the number.
- Semantic status color 40.8, 20 and 48.6 all arc red. The threshold fires for everything, so it says nothing.
- Threshold line and region The coloured band around the rim is the threshold, drawn as a region rather than a line.
- Geo map with markers Markers as small dots. Green on dark grey at four pixels is near the contrast floor.
- Geo map with markers Satellite imagery under the same markers, competing with the data instead of receding.
- Sequential and diverging scales Density, with a ramp whose radius parameter changes the apparent story and isn't shown.
- Legend and series toggle A legend reading 'Layer 1'. It holds a corner of the panel and identifies nothing.
- Time series The source series, before any bucketing. Two modes are not visible here either.
- Histogram and distribution Automatic buckets on that series: clearly bimodal, humps at roughly 27 and 30.4.
- Histogram and distribution The same data at bucket size 3. Four bars, one hump, and no sign that anything was lost.
- Histogram and distribution A different series at the default count, showing a long left shoulder and a small second mode at 50.5.
- Sequential and diverging scales A gradient fill down each bar, encoding nothing. The height already carried the count.
- Stacked composition Volume by level over time. The bottom band sits on a flat baseline; the two above it are approximate.
- Log tail Raw lines, truncated at the right edge, with two timestamps in two timezones on every row.
- Drill-down The trace ID: the route out of the wall of text and into the request that produced it.
- Service map Nodes for services, edges for calls, both from instrumentation rather than from a diagram.
- Semantic status color One node: two numbers inside and a success/error ring around it. Four measures, no verdict.
- Legend and series toggle Four series named for a graph with seven nodes, which is the legend doing more work than the map.
- Zoom and pan on time The only route to the nodes pushed off the right edge, and it doesn't move the rest of the page.
- Host map Hexagons sharing edges. Adjacent unhealthy cells merge into one shape, which is the point of the tiling.
- Host map The same data as circles: a gap around every cell, so nothing clusters.
- Semantic status color A closed set of three—OK, warning, critical—applied as the whole cell fill.
- Ranked list Sorted descending so the worst cell lands where the eye starts. No share of total, and no row for the rest.
- KPI tile Name-only mode: two cells carrying a label, a colour and no number at all.
- Metric targets The budget column: the derived quantity that turns a target from a binary into a rate.
- Target and progress Budget left, −1900%. Past −100% the number is measuring the objective, not the service.
- Error and stale state No data, in the same red as a breach. A third state wearing the second one's colour.
- Small multiples A column of sparklines, each on its own axis. One runs 0–200%, the next 96–100%.
- Header KPI strip Five tiles counting targets, objectives and series. None of them says whether any of it is met.
- Dark-first data palette The same six values as the dark capture. Bright-on-charcoal became pale-on-white, and the contrast went with it.
- Dark-first data palette 63.8 GB in pale orange on white. On the dark version the identical colour was the readable one.
- Semantic status color Whole-tile fills survive the switch, because the text sits on the colour rather than being the colour.
- Grayscale with alerts Ninety green rectangles, identical in both themes. Nothing here can read as abnormal on either ground.
- Sparkline The area fills under each value drop to near-white here, so the shape that was legible on charcoal is a smudge.
- KPI tile Label, value, unit and a sparkline behind it. No delta, no base, no window.
- Dark-first data palette The dark half of the pair. The same six values in the light capture arrive as pale pink on white.
- Sparkline A column of them, each scaled to its own series, which is the comparison Tufte warns the arrangement invites.
- Semantic status color Whole-tile background colour: the loudest channel available, spent on all six.
- Grayscale with alerts Seven rows, seven different colours, no resting state. Nothing here can read as abnormal.
- KPI tile Thirty numbers with no labels—the value with nothing attached to it.
- Semantic status color No text at all. Colour is the only carrier, which is the WCAG failure stated as a feature.
- Header KPI strip Six tiles sharing one anatomy, which is the arrangement that reads as a row rather than as six things.
- Status history Continuous regions with the state name written inside each one.
- Threshold line and region Thresholds turning a numeric series into discrete bands: under 50, 50, 300.
- Time series The same query as the panel above, untranslated. Three traces you have to threshold yourself.
- Sequential and diverging scales One mark per sample, green through red by temperature—so green here means cold, not good.
- Semantic status color A closed set of two, both labelled. The clearest case on the page of colour plus a word.
- Data table Threshold colour filling the cell, which makes a column scannable without being read.
- Sequential and diverging scales A continuous ramp down a sorted column: the table doing a heatmap's job.
- Data table In-cell bar gauge clipped to a sliver, and text truncated mid-word with no escape to the full value.
- Semantic status color Value mappings turning raw levels into a closed set, each with its word in the cell.
- Delta indicator Pills reading up, down and down fast: direction with no magnitude and no base. Also page 1 of 72.
- Time series The source series. Every heatmap on the page is built from this.
- Heatmap Linear y buckets, which is the default and the one that hides the low end.
- Small multiples Nine panels, one variable changed. The comparison is the content.
- Sequential and diverging scales Every panel carries its own ramp legend, 1 to 30, so the colour is readable per panel but not across them.
- Header KPI strip Three status tiles across the top, before any chart.
- Error and stale state Red, and it names the cause: no metrics received, check configuration.
- Freshness indicator The tile whose job is 'as of when', reporting No data instead.
- Data source badge Integration version, the only tile on the row still able to answer.
- Empty state No data, centred, with no distinction from a genuine zero.
- Trace waterfall Indentation is causality, length is duration, horizontal position is when it started. Six levels deep here.
- Trace waterfall The staircase: nineteen SELECTs one after another inside getDiscounts. Batch the query, don't add a machine.
- Percentile summary This span's duration against the whole distribution, with this trace marked—so you know if you're looking at the tail.
- Detail on demand Selecting a span fills the right pane with its fields. The waterfall never moves while you read.
- Overview then detail A minimap of all 71 spans above the list, so the shape of the whole trace is visible before you scroll it.
- Categorical series palette Five services, five hues, and the name in a column beside every one. Colour is never carrying it alone.
- Heatmap Linear y-axis, so the band holding most requests is six percent of the panel height and the empty top half gets the rest.
- Dashboard builder No panel to configure—the query is the page. WHERE trace.parent_id does-not-exist is how you say root spans only.
- Tabs as genres Five readings of one result: overview, BubbleUp, correlations, traces, raw. Each tab is a different question, not a different subject.
- Search across panels The schema is the navigation, and it opens with a filter box rather than a tree you're expected to browse.
- Time-range picker Absolute, with the granularity stated beside it, and arrows that step to the previous window rather than retyping it.
- Data source badge Elapsed query time and 11,710,335 rows examined. The panel reporting its own cost and scope, which almost nothing else does.
- Freshness indicator When data last arrived, not when the page last ran. The one of the three ages that actually matters.
- Multi-page dashboard A set of peers with no landing page. Fourteen pages of them, and nothing says which is the one the team uses.
- Search across panels Past about fifty dashboards this is the navigation and the list below it is a filing system nobody browses.
- Semantic grouping Tags and a bracket prefix standing in for folders, which is what keeps 250 generated pages out of the way.
- Data table Name, description, last updated, actions. The description column is what makes this a list you can read rather than scan.
- Two-pane list and detail Fields on the left, records on the right, both on screen at once. The oldest working shape for a queue there is.
- Detail on demand An expander on every row. Inline rather than a side panel, so it pushes the rest of the list down.
- Data table One column called Summary holding every field on the record. Complete, and unreadable at a glance.
- Search across panels 315 fields, so the sidebar opens with a filter box. Past a certain count a tree is a filing system nobody browses.
- Filter bar A query language in the bar rather than chips. Powerful, and it hides what's applied from anyone who didn't type it.
- Time-range picker Relative by default, with the refresh control beside it rather than buried in a settings menu.
- Histogram and distribution Volume over the window at a 30-second auto interval. The final bar is the bucket still filling, and it always reads low.
- Ratio and rate Delay rates up to 100% with no denominator anywhere. One flight and a thousand flights render identically.
- Compare periods "vs 1 week earlier, 76.9%"—the comparison base is named and the expression isn't.
- Share and embed Share, export and full-screen in the header. Whether the range and filters travel with them is the whole question.
- Filter bar Declared controls under the query bar: two pickers and a price range. Both mechanisms on screen at once.
- Panel grid Twelve columns, and the biggest panel is a table rather than the headline chart. Size isn't carrying priority here.
- Stacked composition Stacked to 100%, so the total is discarded on purpose and only the mix of delay types remains.
- Annotation Event markers along the top of the series, numbered and grouped, on the data's own axis.
- Header KPI strip Five tiles in three different sizes and two different layouts, so the row reads as five things.
- Anomaly band Not a band. An anomaly rate as its own series, so one chart covers every metric instead of one band per chart.
- Explain this metric Every section carries a sentence saying what it counts, directly under its heading rather than behind an icon.
- Cross-filter Highlight a timeframe and the page names which metrics drove it. The selection is the query.
- Empty state "You haven't highlighted any timeframe yet"—the reason for the blank, and the action that fills it.
- Share and embed Generate report, top right. Whether the highlighted window travels with it is the question the button raises.
- Sidebar and canvas The rail is the dashboard. A generated tree of every metric family the agent found.
- Search across panels 720 charts, so search is the navigation and the tree is the filing system nobody browses.
- Header KPI strip Twelve tiles in two rows, in four different layouts. It reads as twelve things rather than one strip.
- Gauge and dial Arcs for disk reads and writes, where the maximum is invented—this is a rate, not a capacity.
- Semantic grouping Sections generated by the collector rather than chosen. Consistent, and about nothing in particular.
- Freshness indicator Live 1, Stale 8. Most products would have drawn all nine and said nothing.
- Dashboard builder A query builder inline in the panel header: group by, aggregation, node and dimension count.
- Compare periods Offered per chart rather than per dashboard, which is the scoping trap: one panel shifted, the rest not.
- Collapsible row Four levels of section, depth carried by leading dashes. Generated by the collector, and never edited.
- Gauge and dial Six arcs. Two are percentages where the endpoints mean something; four are rates in KiB/s and kbit/s on an invented maximum.
- Legend and series toggle The legend is a value table: steal 0.1, softirq 0, user 1.5113, system 0.9, iowait 0.1, each with its own bar.
- Dashboard builder A query builder in every chart header, so the panel is a live query rather than a saved configuration.
- Overview then detail System › Compute › CPU. The breadcrumb is the only thing telling you where in 720 charts you are.