docs(clickstack): document table tile row-click drilldowns#6364
docs(clickstack): document table tile row-click drilldowns#6364alex-fedotyev wants to merge 6 commits into
Conversation
Add a page covering the table tile row-click action: the Search and Dashboard drilldowns, how to configure them from the Row Click Action drawer, how the destination and filters resolve from the clicked row, and a worked service-inventory to service-detail example. Correct the dashboards FAQ, which stated that dashboard-to-dashboard drill-downs are not supported, and drop the em-dashes from that section's lists. Add the new page to the dashboards sidebar group.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
3 Skipped Deployments
|
… copy Replace the two image placeholders with dark-theme screenshots captured on the demo: the Row Click Action drawer in Dashboard mode, and the Service Detail dashboard after a row click with the Service Name filter populated to the clicked service. Correct the hover-hint copy: with a template target the hint reads "Open dashboard", without the resolved dashboard name.
Lead with two worked use cases: a service inventory that drills into a per-service detail dashboard, and a service that drills into its traces in Search. Move the drawer mechanics into a reference section below the use cases, so the page opens with what the reader wants to accomplish. Add a third screenshot showing the Search landing after a row click.
…view detail screenshots Foreground the catalog concept in the narrative: a table tile is a catalog you scan, then click a row to inspect one item. Recapture the screenshots to match. The service inventory is now a RED table (Requests / Errors / P95 Duration), and the Service Detail landing is a multi-view dashboard (RED key figures, latency percentiles, request rate, per-endpoint breakdown) with the Service filter clearly set to the clicked service.
…lay setting Turn on "Display Group By Columns on Left" for the inventory and endpoints tables so the group-by column (ServiceName, SpanName) leads, which reads as a catalog. Recapture both table screenshots, and add a tip documenting the Display Settings toggle.
|
|
||
| ### Wire up the row click {#wire-dashboard} | ||
|
|
||
| On the inventory table, open **Row Click Action**, select **Dashboard**, and choose **Template** with the value `Service Detail`. Add one filter: |
There was a problem hiding this comment.
They should probably choose Service Detail directly instead of Template - it's less fragile, works better for import/export, and template isn't required since it's just a hardcoded single dashboard.
There was a problem hiding this comment.
Good call. The worked example now picks Service Detail directly from the dashboard list instead of a Template target. I added a line on why: a direct pick is pinned by ID, so it survives renames and dashboard export/import, and it pre-fills the destination's declared filters. The reference section now frames Template as the per-row option. Fixed in 96825ab.
| - **Search targets must be log or trace sources.** Metric and session sources are not offered, and are rejected if set through the API. | ||
| - **Template names must be unique.** A template target resolves by name, so two sources or two dashboards with the same name cannot be used as a template target. | ||
| - **Dashboard targets need a matching declared filter** for a carried value to take effect (see the note above). | ||
| - **Map-attribute group-by needs a SQL alias.** A chart-builder group-by on a map attribute such as `SpanAttributes['http.route']` produces a result column whose name is the raw expression, which cannot be referenced as `{{...}}` in a template. To drill down from such a column, author the tile as a [SQL-based](/use-cases/observability/clickstack/dashboards/sql-visualizations) table and give the column an explicit `AS` alias, then reference that alias in the template. A group-by on a plain column such as `ServiceName` needs no alias. |
There was a problem hiding this comment.
SQL should not be necessary, we can set aliases using the chart builder as well, either a per series alias or GROUP BY ... AS ... in the group by input
There was a problem hiding this comment.
Good catch. Removed the SQL-tile instruction. The bullet now says to alias the column in the chart builder: add AS <alias> in the Group By input (for example SpanAttributes['http.route'] AS Route), or use the per-series Alias field, then reference {{Route}}. Fixed in 96825ab.
| ## Validation and limitations {#validation} | ||
|
|
||
| - **Table tiles only.** The **Row Click Action** button appears for table tiles, both the chart-builder table and a [SQL-based](/use-cases/observability/clickstack/dashboards/sql-visualizations) table. Other tile types do not have a row-click action. | ||
| - **Search targets must be log or trace sources.** Metric and session sources are not offered, and are rejected if set through the API. |
There was a problem hiding this comment.
| - **Search targets must be log or trace sources.** Metric and session sources are not offered, and are rejected if set through the API. | |
| - **Search targets must be log or trace sources.** Metric and session sources are not offered, since they cannot be viewed on the search page. |
- Pick the Service Detail dashboard directly (pinned by ID) in the worked example instead of a Template target, and explain when Template is the right choice (per-row destinations). - Note that group-by columns can be aliased in the chart builder, so a map-attribute drilldown does not require a SQL tile. - Add a callout that filter templates reference the table's own columns (which may be aliases), not the underlying source's columns. - Reword the search-target limitation around what the search page can show. - Re-shoot the Row Click Action drawer screenshot to show the direct dashboard pick and the pre-filled ServiceName filter.
|
Thanks for the review, pushed 96825ab with the three inline points addressed. I also covered the broader point about what the templates reference: there is now a callout in the setup section noting that I re-shot the Row Click Action drawer screenshot to show the direct |
Summary
A ClickStack table tile is often a catalog: one row per service, host, endpoint, or error group. A row-click action turns that catalog into an inspection workflow, you click a row and ClickStack carries the row's values through as filters, so the destination opens already scoped to that one item. The destination is either another dashboard or the underlying logs and traces in Search. The feature shipped but was undocumented, and the dashboards FAQ stated the opposite.
This adds the customer doc for it and corrects the FAQ.
Closes #6360.
What changed
docs/use-cases/observability/clickstack/dashboards/row-click-drilldowns.md, written catalog-first. It opens with the catalog-to-inspection pattern, then walks two worked use cases on the same catalog (a service inventory), then keeps the drawer mechanics as reference:Service Detaildashboard.sql-visualizations.Use cases covered
Behaviour reference
I read the implementing PRs in
hyperdxio/hyperdxfor the exact behaviour (the two action types, the source-kind restrictions, name resolution and uniqueness, filter templating, and the map-attribute alias gotcha):hyperdxio/hyperdx#2146(row-click links and the Row Click Action drawer) andhyperdxio/hyperdx#2321(hover hint and native link affordance). The inventory and detail dashboards follow the shapes in the ClickStack dashboard MCP examples. Every product-behaviour claim on the page traces to that, and I confirmed each one against the live product.Test plan
Service Detail+ aServiceNamefilter), clicked a row, and confirmed the multi-viewService Detaildashboard opened with itsServicefilter set to the clicked service and every tile scoped to it.One correction came out of the walkthrough: with a template target the hover hint reads
Open dashboard(it cannot show the resolved name), notOpen dashboard "Service Detail". The page matches what the product shows.Keeping this as a draft pending the Vercel preview. Happy to mark it ready on request.
Follow-up
The ClickStack MCP server is still undocumented here; tracked in #6361.
Note
Low Risk
Documentation-only changes with no runtime or product behavior impact.
Overview
Adds customer documentation for table tile row-click drilldowns and fixes the ClickStack FAQ, which incorrectly stated that dashboard-to-dashboard drill-downs are not supported.
The new guide
row-click-drilldowns.mdexplains turning catalog-style tables into inspection workflows: row values flow into filters on Search or another dashboard. It walks through a RED service-inventory example (drill to aService Detaildashboard vs. traces in Search), then documents the Row Click Action drawer (Default / Search / Dashboard), Handlebars templating, resolution rules, and limitations (table tiles only, log/trace Search targets, unique template names, dashboard custom-filter matching, expression group-by aliases). Four screenshots are referenced from static assets.The FAQ What drill-down capabilities are available? section now links to the new page and describes multi-level catalog → detail-dashboard flows; the old “not currently supported” note for custom dashboard-to-dashboard drill-down is removed. Touched FAQ lists use colons instead of em-dashes for consistency. The page is registered in the ClickStack Dashboards sidebar after
sql-visualizations.Reviewed by Cursor Bugbot for commit 96825ab. Bugbot is set up for automated code reviews on this repo. Configure here.