For the complete documentation index, see llms.txt. Markdown versions are available by appending .md to documentation URLs.

Interactivity in dashboards

SigNoz Cloud - This page applies to SigNoz Cloud editions.
Self-Host - This page applies to self-hosted SigNoz editions.

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.

Context menu on a time series panel datapoint with Dashboard Variables, View in Logs, View in Traces, and Breakout by
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, View Trace Details, 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.

You can trigger these interactions from a panel on the dashboard or from inside a panel's expanded View modal. See Drill down in the expanded view for how the two entry points differ.

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 namespace metrics panel shows a spike.
Click the datapoint and select View in Logs or View in Traces from the context menu. The Logs Explorer opens in a new tab, filtered to the clicked namespace and time.

Clicking a datapoint in a metrics panel and selecting View in Logs opens the Logs Explorer filtered to that namespace
Clicking a datapoint and selecting View in Logs

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.

View Trace Details

When the data point or table row you click carries a trace_id, a View Trace Details link is added to the context menu automatically. You do not need to configure a context link for it.

How it works

  1. Click a data point in a chart, a pie slice, or a row in a table whose query returns a trace_id.
  2. Select View Trace Details from the context menu.
  3. The trace detail page for that trace_id opens in a new browser tab, so your dashboard stays open.

Drill down in the expanded view

Every panel can be expanded into a full-screen View modal by selecting the expand icon on the panel header. Drill-down interactions are available inside this modal, not just on the dashboard grid.

  • Filter by value and Breakout by work the same way inside the modal: click a data point, pie slice, or table cell and choose an action.
  • The result refines in place. The query re-runs and the chart or table updates within the same modal, rather than opening a nested modal.
  • Each drill-down step updates the URL, so the refined state is preserved when you reload or share the link.

This lets you start from an aggregate view and keep narrowing (filter, then break out, then filter again) without leaving the expanded panel.

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, or type in Search breakout options... to find one (for example, k8s.pod.name or host.name).
  4. The panel opens in the expanded View modal with the new breakdown. Further drill-downs refine it in place. See Drill down in the expanded view.
    • 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 namespace is broken out with Breakout by and k8s.pod.name.
The panel then shows the pods in the clicked namespace, so you can see which pods use the most CPU.

Breaking down CPU usage by namespace into pod-level series using Breakout by and k8s.pod.name
Breaking down CPU usage by namespace into pods with 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.

Table cell context menu with two context links, Open runbook for kube-system and View pod in Infrastructure Monitoring, below the built-in actions
Context menu showing dynamic links that use the clicked value and time range
  1. Edit a panel and expand the Context Links section in the config pane. Links appear in a menu when someone clicks a data point. They can pass the clicked values and dashboard variables into the destination URL.
  2. Select Add link (formerly "Add Context Link") to open the context link editor.
  3. Configure the link:
    • Label: the text shown in the context menu. If you leave it empty, SigNoz shows the URL instead.
    • URL: the destination URL. It can include {{variable}} tokens that resolve to the clicked datapoint's values (see Available variables).
    • URL parameters (optional): select Add URL parameter to manage query parameters as key-value rows. Each row adds a key=value pair to the URL.
    • Open in new tab: on by default. Leave it on to open the destination in a new browser tab and keep the dashboard where it is; turn it off to navigate in place.
  4. Select Save.
Add a context link dialog with Label, URL, Add URL parameter, and the Open in new tab toggle
Authoring a context link. The label and URL accept {{variable}} tokens.
Edit context link dialog with a {{_service.name}} token in the URL, and the saved link listed in the Context Links pane
A context link whose URL carries a {{_service.name}} token. Saved links appear in the Context Links pane with edit and delete actions.

The URL field and the URL parameters table stay in sync:

  • Editing the URL populates the parameter rows (values are decoded).
  • Editing a parameter row updates the URL (values are encoded).

URL validation

The URL must start with one of the following, or the link cannot be saved:

  • http:// or https:// for an absolute link to an external tool.
  • / for a root-relative path inside SigNoz, for example /logs.
  • A {{variable}}/ token, so the resolved variable value forms the start of the URL.

If the URL does not match, SigNoz highlights the field and shows the message URL must start with http(s)://, /, or {{variable}}/. Fix the URL to save the link.

Context link dialog showing the URL validation error beneath an invalid URL
An invalid URL is flagged inline and blocks saving until it is corrected.

Available variables

You can use different types of variables inside the URL or a parameter value. While editing the URL or a parameter value, type {{ to open an autocomplete popover that lists the variables available to the current panel, grouped by type.

TypeDescriptionSyntaxExample
Global timestampThe 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 you click 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}}

Saved links appear as a compact list under the Context Links section. Each row shows the label (or the URL when no label is set) as the primary text and the full URL beneath it. Hover a row to reveal its edit (pencil) and delete (trash) buttons. Select the pencil to reopen the editor with the link's values prefilled.

To use a link, click a chart datapoint, bar segment, or table row in the dashboard to open the context menu, then select the link. Variables resolve to the clicked values and the destination opens.

Panel context menu listing a custom View service details link below the built-in drill-down actions
A saved context link appears in the panel's context menu alongside View in Logs, View in Traces, and Breakout by.

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.
Filter by k8s.namespace.name menu on a table cell with Is this and Is not this options
Clicking a table cell to add a filter condition directly from the group-by value
  1. A Filter by menu for that field opens, for example Filter by k8s.namespace.name.
  2. Choose an operator based on the field type:
    • String: = (Is this) or != (Is not this)
    • 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.
Cross-Panel Sync settings in the dashboard Configure drawer with Sync Mode set to Tooltip and 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 time series panels side by side. Hovering frontendproxy on the left panel draws a crosshair on the right panel, whose tooltip shows only the matching frontendproxy 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

If you hide a series in the chart legend (see Work with the chart legend), tooltip matching ignores that series:

  • 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.

Work with the chart legend

Use the legend below or beside a chart to choose which series the chart draws and to read the full name of a series. Each legend row has a square marker in the series color, and a label. The marker is filled when the series is visible. It is hollow when the series is hidden.

These controls work on each chart that uses the shared chart legend: dashboard panels (Time Series, Area, Bar, Pie, Histogram, and Heatmap), the alert chart preview, and infrastructure monitoring panels. The Logs and Traces explorers use a different legend, so these controls do not apply there.

Show and hide series

The result of a click on a row depends on which series are visible:

  • If all series are visible, a click on a row shows only that series and hides the others.
  • If only one series is visible, a click on its row shows all series again.
  • In all other cases, a click on a row shows or hides that series.

A click on the square marker always shows or hides that one series, no matter how many series are visible. At least one series must stay visible. For this reason, the marker of the last visible series does not respond to clicks.

Row hover actions

When you hover over a legend row, two buttons appear on the right side of the row:

  • Only shows only that series. If the row is visible and other series are hidden, the button reads All, and it shows all series again.
  • The copy button copies the full name of the series to your clipboard. Use it when the row cuts off a long label.
Time series legend with the kube-system row hovered, showing the Only and copy buttons, the full series name tooltip, and the other series dimmed on the chart
Hovering a legend row highlights its series and shows the Only and copy buttons.

When you hover over a row, the chart also highlights that series or slice and dims the others, so you can find it without hiding anything. The highlight stops when you move the pointer off the row.

Series count

A search box and a Showing N of M series count appear above the legend. When they appear depends on the legend position:

  • Right of chart: They appear when the legend has at least one series.
  • Below chart: They appear only when the series need more than two rows and the panel has room for the search row.

N is the number of series that are visible and match the search. M is the total number of series. Heatmap panels show the search box but not the count.

Create an alert from a panel

You can turn any panel into an alert without rebuilding its query. When you create an alert from a panel, SigNoz carries the panel's query into the alert builder and seeds the alert condition from the panel's Reduce To setting and its thresholds, so the condition arrives partly filled in.

Create Alerts is available on Time Series, Bar, Value (Number), and Histogram panels. Table, List, and Pie panels do not offer it.

You do not need edit access. The action is available on locked and read-only dashboards as well as editable ones, since creating an alert never modifies the dashboard.

Create the alert

  1. Hover over the panel and open its actions menu (the ... menu in the panel header). You can also open the same action from the panel editor's Actions section.
  2. Select Create Alerts. SigNoz opens the alert builder in a new tab with the panel's query already loaded, including its formatting unit.
  3. Review the pre-filled condition, adjust anything you need, and save the alert.

The alert condition reads as a sentence: Send a notification when <query> is <operator> the threshold(s) <occurrence> during the <evaluation window>. The operator and occurrence parts are the fields seeded from the panel.

Occurrence from Reduce To

For Value (Number) panels, the panel's Reduce To setting maps to the alert occurrence:

Panel Reduce ToAlert occurrence
SumIN TOTAL
AvgON AVERAGE
Max, Min, or LatestDefault (left unchanged)

Time Series, Bar, and Histogram panels do not expose a Reduce To that maps to occurrence, so their occurrence stays at the alert builder's default.

Operator and value from thresholds

When the panel has thresholds configured, SigNoz picks the most dangerous threshold and copies its value (and unit) into the alert. Danger is ranked by threshold color:

red > orange > green > blue > any other color

For Value (Number) panels, the threshold's comparison operator is copied as well:

Panel threshold operatorAlert operator
Above (>)ABOVE
Below (<)BELOW
Above or equal (≥)ABOVE OR EQUAL TO
Below or equal (≤)BELOW OR EQUAL TO
Equal (=)EQUAL TO
Not equal (≠)NOT EQUAL TO

The inclusive boundary operators are preserved exactly. A panel threshold set to Above or equal (≥) or Below or equal (≤) now carries over to ABOVE OR EQUAL TO or BELOW OR EQUAL TO in the alert condition instead of collapsing onto the strict ABOVE or BELOW variant.

Time Series and Bar panels pre-fill the threshold value and unit, but the operator stays at the default, because these panels store thresholds as value markers without a comparison operator. Histogram panels do not pass thresholds, so nothing threshold-related is seeded.

Everything SigNoz fills in is a starting point. Review the condition and complete the remaining fields before saving. For the full list of condition options, see Metrics based alerts.

Download a panel

A panel's actions menu showing View, Edit panel, Clone, Download, Create Alerts, Move to section, and Delete panel
The panel actions menu. Download and Create Alerts sit alongside the editing actions.

Open a panel's ... menu to download what it currently shows:

  • Download as PNG and Download as SVG are available on every panel type.
  • Download as CSV is available on Table panels, and exports the table's rows and columns.

Empty panel state

When a panel query runs successfully but returns nothing for the selected time range, the panel shows an empty state titled No data in this time range instead of a chart. From here you can widen the window and re-run the query without leaving the dashboard.

Extend time range

The primary action in the empty state is Extend time range. Select it to widen the panel's time window to the next larger step and re-run the query.

  • Standard windows step up the zoom-out ladder: 15m, 45m, 2h, 7h, 21h, 1d, 2d, 3d, 1w, 2w, and 1 month. A 15-minute window widens to 45 minutes, a 45-minute window widens to 2 hours, and so on. When the new window matches one of these steps, the time picker shows it as a relative preset (for example, Last 45 minutes) instead of Custom.
  • Narrow custom or drag-zoomed windows shorter than 15 minutes expand about 3x around their midpoint until they reach 15 minutes, then follow the same ladder.
  • The window grows around its center. Once the widened end would move past the current time, the end anchors to now and the start moves further back instead.
  • At the widest step (1 month), Extend time range no longer appears.

Extending from a panel on the dashboard updates the dashboard's global time range, so every panel refreshes on the wider window. This is the same behavior as the zoom-out control in the dashboard toolbar.

Retry

When a retry handler is available, Retry appears as a secondary action alongside Extend time range and re-runs the query on the current window. If the window is already at the widest step and cannot be extended, Retry becomes the only action.

Loading state

After you select Extend time range, a loading spinner replaces the empty-state message while the widened query is in flight. The panel moves from the spinner directly to the rendered chart, or back to the empty state if the wider window still has no data.

Panel View modal

Opening a panel in its full-screen View modal gives that panel its own local time window, separate from the dashboard's global time range. If you move the modal's time window to a range with no data, the same Extend time range action appears. Extending inside the modal widens only the modal's local window. The dashboard's global time range, and any historical anchor set on the main dashboard, stay unchanged.

Is this page helpful

Last updated—October 15, 2026

Edit on GitHub