Table
The Table visualization displays query results in a tabular format with rows and columns, suited for detailed data inspection.

When to Use
- Viewing raw or aggregated query results in detail
- Displaying multi-column data (e.g., workload, request count, log count)
- Comparing values across multiple queries side by side
- Exporting or inspecting data that doesn't fit well into charts
Building a Table Panel
- Open the Data Explorer
- Select your data source (Metrics, Logs, or Traces)
- Configure your query (see Query Builder)
- Select Table as the Panel Type in the right sidebar
- Click Run to render the table
In the example above, the panel queries Traces data with count(*) aggregation, grouped by workload. The Select Query dropdown lets you switch between viewing results from query A or query B individually.
Multiple Queries
Add multiple queries to display data from different sources in the same table. Each query is labeled alphabetically (A, B, C, etc.). Results from all queries are always combined into a single merged table — rows are joined on shared columns (e.g., a common Group By field like workload), with each query contributing its own value column.

In the example above, query A (Traces) provides the Reqs column and query B (Logs) provides the Logs column, merged on the shared workload column. Workloads without data for a query show n/a.
Dimensions
Columns from different queries are joined automatically when their names match. Dimensions let you explicitly align columns that represent the same thing but come from differently named fields — for example, joining a Traces query grouped by k8s.namespace with a Logs query grouped by namespace under a single merged Namespace column.
When to Use Dimensions
- Queries use different field names for the same concept (e.g.
service.namevsservice) - A metrics PromQL query exposes a label name that differs from the corresponding logs/traces attribute
- You want to control the merged column's display name instead of relying on the first query's field name
Configuring Dimensions
Dimensions are configured in Table Options → Align columns in the panel editor. They are only applicable to Table panels with two or more visible queries.
- Click Add dimension to create a new alignment row
- Set a Merged column name (e.g.
Namespace) — this becomes the column header in the merged table - For each query, pick the group-by field that should contribute to this dimension, or leave it as Not mapped if the query doesn't have a corresponding field
Repeat for each logical column you want to align. Columns whose names already match across queries are merged automatically and do not need a dimension entry.
Example

In the screenshot above, the panel merges two queries that count and measure activity per Kubernetes namespace:
- Query A (Logs):
count(*)grouped bynamespace— the field name used in log attributes - Query B (Metrics, PromQL):
avg by (k8s_namespace_name) (k8s_pod_cpu_usage{})— the same concept, but the label name comes from OTel metrics and isk8s_namespace_name
Without a dimension the two columns would not join (namespace ≠ k8s_namespace_name) and the merged table would show two separate columns with mostly n/a values. Configuring a single dimension named namespace and mapping Query A → namespace and Query B → k8s_namespace_name tells the table to treat them as the same column. The merged result shows one namespace column with both the log count (A) and the CPU usage average (B) side by side for each namespace. The n/a row visible in the table corresponds to a namespace value that exists in Query A but has no matching series in Query B.
Coverage Warnings
If a query has a group-by field that isn't mapped to any dimension, a warning appears next to that field in the query builder:
...is not mapped to any dimension. Rows with the same dimension values but different values for this field will collide in the merged table.
This is a correctness signal: the merged table joins on the configured dimensions only, so unmapped group-by values can cause rows that should be distinct to collapse into one. To resolve, either map the field to an existing dimension, add a new dimension for it, or remove it from Group By.
For metrics queries written in raw PromQL (code mode), the available labels are read from the query's latest response — run the query at least once so the editor can list the labels returned by the backend.
Formulas
Use formulas to create computed columns from your queries. Click Add Formula and enter an expression combining your queries (e.g., A / B). See Time Series — Formulas for more details.
Panel Configuration
Panel Options
| Option | Description |
|---|---|
| Name | Display name shown in the panel header |
| Description | Optional description for additional context |
Standard Options
| Option | Description |
|---|---|
| Unit | Unit formatter for numeric columns — choose from 100+ units including bytes, percentage, duration, requests/sec, and more |
Table Options
| Option | Description |
|---|---|
| Align columns | Define dimensions that map differently named group-by fields across queries onto a single merged column |