SigNoz Cloud - This page is relevant for SigNoz Cloud editions.
Self-Host - This page is relevant for self-hosted SigNoz editions.

Interactivity in dashboards

Dashboards in SigNoz let you interact with data through panels built in the Query Builder, where context menus and click actions allow you to drill deeper, apply filters, and move to related logs, traces, or metrics.

Dashboard context menu example
Context menu on a metrics panel.

These interactive features make dashboards a powerful tool for root cause analysis, helping you move from high-level trends to detailed records with just a few clicks.

Features

Interactive dashboards include multiple capabilities such as View Logs and Traces, Breakout by, Context Links, Cross Filtering, Filter in Tables, and Cross-Panel Sync. Together, these features let you drill deeper, correlate across signals, and debug issues faster.

View Logs and Traces

The View in Logs/Traces option allows you to go beyond aggregated charts and tables by opening the underlying raw signal data.
This helps not only in viewing the exact records behind a metric or trace but also in correlating across signals for deeper debugging.

How it works

  1. Click on a datapoint in a chart or a value in a table.
  2. A context menu will appear with options including View in Logs and View in Traces.
  3. When you select one of these options:
    • The current filters, time range, and group-by context are preserved.
    • SigNoz opens the corresponding Explorer view (Logs or Traces).
    • You immediately see the subset of records that contributed to the clicked datapoint.

This ensures that you can move seamlessly from high-level aggregates to detailed records without needing to rebuild queries.

Example

In the example below, a CPU Usage by Host metrics panel shows an anomaly.
By right-clicking on the datapoint, you can select View in Logs or View in Traces from the context menu.

Right-clicking a datapoint in a metrics panel to open related logs and traces
Right-clicking a datapoint in a metrics panel to open related logs and traces

This workflow shortens the gap between observing anomalies and finding their root cause by connecting metrics, traces, and logs in one flow.

Why use it

  • Faster correlation: Jump from metrics to traces and logs in context.
  • Root cause focus: Cut the time between spotting anomalies and debugging them.

Breakout by

The Breakout by option allows you to drill deeper into aggregated data by regrouping it with another attribute.
Instead of building a new query from scratch, you can click on a datapoint or table cell and break it down further to uncover patterns and anomalies.

How it works

  1. Click on a chart datapoint, bar segment, or table cell.
  2. From the context menu, select Breakout by....
  3. Choose an attribute from the list (for example, k8s.pod.name or host.name).
  4. The panel is updated in place to show the new breakdown:
    • Existing filters, time range, and dashboard variables are preserved.
    • The selected data is applied as a filter so the new breakdown focuses only on that slice.
    • The chosen attribute becomes the new group by dimension (it replaces the previous grouping).

This lets you move from a broad overview to more granular insights step by step.

Example

In the example below, a panel showing CPU Usage by Host can be further analyzed by selecting Breakout by → k8s.pod.name.
This reveals which pods inside the host are contributing most to CPU usage.

Breaking down CPU usage by host into pod-level details using Breakout by
Breaking down CPU usage by host into pod-level details using Breakout by

Why use it

  • Anomaly detection: Spot which service, pod, or endpoint is driving unusual behavior.
  • Layered exploration: Start broad (by service) and go deeper (by pod, endpoint, or trace attribute).
  • Faster debugging: Explore data without manually editing queries.

Context Links are links available in a panel’s context menu.
They let you attach dynamic URLs to a panel and navigate to internal explorers (Logs, Traces, Metrics) or external tools (e.g. Jenkins, PagerDuty) using the values of the datapoint you clicked.

Context menu showing dynamic links that use the clicked value and time range
Context menu showing dynamic links that use the clicked value and time range

How it works

  1. Edit a panel and open the Context Links section.
  2. Click + Context Link and configure:
    • Label: The menu text (fallback is the raw URL).
    • URL: A template URL with variables like {{_service.name}} or {{timestamp_start}}.
    • Query params: Manage key–value pairs visually in the table.
Configuring a Context Link with label, URL template, and query parameters
Configuring a Context Link with label, URL template, and query parameters
  1. The modal keeps the URL and key–value table in sync:
    • Editing the URL auto-populates the params table (values are decoded).
    • Editing the table updates the URL (values are encoded).
  2. In the dashboard, click a chart datapoint, bar segment, or table row to open the context menu.
  3. Select the created link — variables are resolved and the destination opens.

Available variables

You can use different types of variables inside the URL or param values:

TypeDescriptionSyntaxExample
Time rangeInserts the current dashboard’s absolute start and end time (epoch ms).{{timestamp_start}}, {{timestamp_end}}from={{timestamp_start}}&to={{timestamp_end}}
Query variablesThe group by fields in the query the user clicks on. Available only when the panel query has a GROUP BY.{{_fieldName}}{{_service.name}}, {{_trace_id}}
Dashboard variablesAny dashboard-level variable defined in the dashboard settings.{{varName}}{{host}}, {{env}}

Examples

1. View trace details from a table

Label: View Trace Details
URL: /trace/{{_trace_id}}

2. External link with variables (Jenkins / PagerDuty)

Label: Open in Jenkins
URL: https://jenkins.example.com/job/{{_service.name}}?from={{timestamp_start}}&to={{timestamp_end}}

Label: PagerDuty Alerts
URL: https://pagerduty.example.com/incidents?service={{_service.name}}&since={{timestamp_start}}&until={{timestamp_end}}

Why use it

  • Seamless navigation: Jump across signals (Logs ↔ Traces ↔ Metrics) or to external tools.
  • Context preservation: Links carry the clicked value, filters, and time range automatically.
  • Faster debugging: One-click access to deep-dive views without rebuilding queries.

Cross Filtering

Cross Filtering lets you use clicked data in a panel to update or create dashboard variables.
When you click on a service, pod, or trace ID, the panel’s context menu includes a Dashboard Variables option.
From here, the following actions are available:

  • Set – Assign the clicked value to an existing dashboard variable.
  • Unset – Remove the value from an existing dashboard variable.
  • Create var – Add a new dynamic dashboard variable using the clicked field. By default, no panels are configured to use a newly created variable, but you can configure panels later to reference it.

If the clicked field already has a dynamic variable, you’ll see Set/Unset. Otherwise, the option will be Create var. Panels that use the updated variable will automatically refresh.

Using the context menu to set a dashboard variable from clicked panel data
Using the context menu to set a dashboard variable from clicked panel data

Why use it

  • On-the-fly filtering: Narrow scope instantly without editing queries.
  • Dynamic exploration: Create new variables directly from clicked data.
  • Flexible workflows: Set, unset, or create variables depending on your analysis needs.

Filter in Tables

The Filter in Tables option allows you to quickly narrow results by applying filters directly from table cells. Instead of editing the query manually, you can click on a group-by value in a table and add conditions on the fly.

How it works

  1. Open a Table panel with a grouped query (for example, COUNT(*) BY service.name).
  2. Click on a cell in a group-by column.
Clicking a table cell to add a filter condition directly from the group-by value
Clicking a table cell to add a filter condition directly from the group-by value
  1. From the context menu, select Filter by....
  2. Choose an operator based on the field type:
    • String: = or !=
    • Number: =, >, <, >=, <=
    • Boolean: is true, is false
  3. Enter or confirm the filter value.
  4. The table refreshes in place with the new filter applied — no manual edits or page reloads needed.

Why use it

  • Faster narrowing: Apply filters directly from the data you are inspecting.
  • Context-aware operators: Only valid operators for the column type are shown.
  • No query editing: Instantly re-run the query without touching the Query Builder.

Cross-Panel Sync

When a dashboard has multiple charts describing the same system — request rate, latency, error count — you can synchronize them so that hovering one chart highlights the same point in time on every other chart.

How to enable it

  1. Open a dashboard and select Configure.
  2. Under Cross-Panel Sync, choose a sync mode:
    • No Sync — panels behave independently.
    • Crosshair — a vertical time-marker appears on all panels at the hovered timestamp.
    • Tooltip — same as Crosshair, plus matching tooltips appear on related panels.
  3. When Tooltip mode is selected, a Synced Tooltip Series option appears:
    • All — shows the full tooltip with every series on the synced panels.
    • Filtered — shows only the series that match the hovered series based on shared group-by dimensions.
Dashboard Configuration panel showing Tooltip sync mode with Synced Tooltip Series set to Filtered
Cross-Panel Sync settings with Tooltip mode and Synced Tooltip Series options.

How it works

When you hover a chart (the source), every other chart on the dashboard (the receivers) reacts:

  • A vertical line (the crosshair) appears at the same timestamp on every other chart in that dashboard.
  • The source shows its full tooltip with all of its series at that point in time.
  • Other charts (the receivers) may also show a tooltip, but filtered to only the series that are comparable to what you are focused on.
Two dashboard panels with synchronized crosshair and tooltip showing matching series
Hovering the source chart shows a crosshair and filtered tooltip on the receiver.

Y-axis crosshair and matching units

Every chart has a y-axis with a unit (milliseconds, bytes, count, percent, etc.).

  • Same unit on both panels — the receiver shows both the vertical (time) and horizontal (value) crosshair lines, so you can compare values directly.
  • Different units — only the vertical line appears on the receiver. The horizontal line is hidden because aligning a "ms" cursor on a "bytes" chart would suggest a comparison that is not meaningful.

This rule applies to the crosshair lines only — tooltip behavior is covered in the next section.

How tooltip matching works

In Tooltip mode, receiver tooltips only appear when there is a meaningful match. The matching is based on the group-by dimensions of each chart's queries — the labels a chart splits its data by (for example, service.name, http.method, or region). They appear in the legend (e.g. {service.name="frontend"}).

A receiver shows a tooltip when all of these are true:

  1. Both charts have at least one group-by dimension. A chart with no group-by (a single aggregated line) will not trigger or receive a filtered tooltip.
  2. The two charts share at least one group-by dimension. For example, if the source groups by service.name and the receiver also groups by service.name, that is a shared dimension. If the source groups by service.name and the receiver groups only by region, there is no overlap.
  3. The receiver has at least one visible series whose values match the source's focused series on every shared dimension. If the source's focused series is {service.name="frontend", http.method="GET"} and the receiver only has series for service.name="checkout", no series matches.

If any condition fails, the receiver tooltip is hidden entirely — no header, no footer, no empty box.

Source groups byReceiver groups byResult on receiver
service.nameservice.name (has matching series)Tooltip with matched rows
service.nameservice.name (no matching series)No tooltip
service.nameNo group-by (single aggregated line)No tooltip
No group-byAnyNo tooltip
service.nameregion only (no shared dimension)No tooltip
service.name, http.methodservice.name onlyTooltip filtered by service.name

When a receiver tooltip appears, it lists only the series that match the source's focused series on the shared dimensions:

  • Series with data at that timestamp show their value.
  • Series that match the dimension filter but have no value at that timestamp show No Data, so you can tell the absence is meaningful (the series exists but has a gap) rather than the series being missing entirely.
  • Series that do not match the dimension filter are not shown.

Interaction with the legend

You can toggle individual series on and off through the chart legend. Hidden series are treated as if they do not exist for tooltip matching:

  • If you hide a series in the receiver chart, it will not be considered when looking for a match.
  • If every matching series in the receiver is hidden, the receiver tooltip disappears entirely the next time you move the cursor on the source.

This makes it easy to focus comparison on a specific subset by hiding the rest.

Last updated: May 13, 2026

Edit on GitHub

Was this page helpful?

Your response helps us improve this page.

On this page

Is this page helpful?

Your response helps us improve this page.