Explore metrics with metric explorer
Query any Prometheus-compatible metric, visualize the results, and drill down by label dimensions without setting up a dashboard first. Metric Explorer gives you a dedicated workspace to investigate metric behavior, compare series across labels, and surface outliers across your entire label space from a single screen.
Use Metric Explorer to:
- Query without a dashboard: Build and run PromQL queries in a dedicated workspace, using a no-code builder or a code editor.
- Visualize and compare: See metric trends as time series charts, filter by labels, apply aggregations, and combine expressions to derive new signals.
- Find what's driving anomalies: Drill down by label dimensions to identify which label values are contributing to unusual behavior, without writing additional queries.
What you need
- The
METRICS.DATA-API#HIGH:READDATApermission. - Metrics data ingested into Coralogix.
Open Metric Explorer
Navigate to Explore, then Metric Explorer.
Build a query
Metric Explorer provides 2 query modes: Builder and Query. Use Builder for guided, no-code query construction. Switch to Query to write PromQL directly.
Filter by label
Use Filter by to narrow the metric to a specific subset of your data before running the query. Select a label from the dropdown, then select a value to apply as a filter.
Shows the RUM_duration metric with the Filter by label dropdown open. The available labels include city, source, and replica fields. Selecting a label filters all results to matching series only, and the chart and table update immediately.
Use case
You are investigating elevated RUM page load times across your application. You select the RUM_duration metric and open Filter by to see which labels are available. You select the city label to understand how duration varies by city, immediately surfacing that Frankfurt am Main (last value: 320) and Mumbai (last value: 251) are the highest contributors.
Add a function
Use Function to shape your query results. Select from aggregation, count, rollup, and rank functions.
Aggregation
Aggregation functions calculate a set of values and return a single value. Once you select the function, select the label to aggregate by.
| Function | Description |
|---|---|
avg | The average value of all data points within the selected time range. |
count | The total number of data points within the selected time range. |
min | The smallest value among the data points within the selected time range. |
max | The largest value among the data points within the selected time range. |
sum | The sum of all data points within the selected time range. |
quantile | Computes the phi-quantile for each group of labels within the time series. The value of phi must fall within the range [0, 1]. |
histogram_quantile | Computes the phi-percentile based on the provided histogram buckets. The value of phi must be between 0 and 1. |
Shows the Function menu open with all aggregation options visible. Selecting Avg with a By label groups the average across each dimension, producing 1 series per label value in the chart and table.
Use case
After filtering by city, you add an aggregation to see the average load time per city over the last 15 minutes. You select Function → Aggregation → Avg, then set By to the city label. The chart shows a separate trend line per city, making it easy to compare which cities are consistently exceeding your latency threshold.
Count
Count functions run calculations on a set of values and return a single value.
| Function | Description |
|---|---|
count | The total number of data points within the selected time range. |
absent | Returns 1 if time series have no data points. Otherwise, returns an empty result. |
absent over time | Returns 1 if the provided time range contains no raw samples. |
present over time | Returns 1 if there is at least 1 raw sample in the provided time range. |
changes | The number of times the time series value changed within the provided time range. |
resets | The number of counter resets within the provided time range. |
Rollup
Rollup functions aggregate time series data over a specified time range. Once you select the function, select the range to query as a hard number or ${__range} (the duration of the selected time range).
| Function | Description |
|---|---|
average over time | Computes the average of time series values over a time range. |
max over time | Finds the maximum value of time series data over a time range. |
min over time | Determines the minimum value of time series data over a time range. |
sum over time | Calculates the sum of time series values over a time range. |
count over time | Counts the number of elements with valid numeric values in the time series over a time range. |
quantile over time | Computes the specified quantile of time series data over a time range. |
Rank
Rank functions sort, rank, and filter data within your queries.
| Function | Description |
|---|---|
TOPK | Retrieves the top K results from a dataset based on a specified metric. |
SORT | Orders data in ascending order based on the selected metric. |
SORT Descending | Orders data in descending order based on the selected metric. |
Write a query directly
Switch to Query mode to write PromQL expressions directly. The Result preview shows the generated query string as you type, so you can verify the syntax before running.
Shows a PromQL expression entered in the code editor. The result is a single aggregated series displayed in the chart, with a trend line and last value in the table.
Use case
You want to calculate the global average RUM duration, unfiltered by city or source. You switch to Query mode and enter avg(RUM_duration{}). The chart shows a single line trending upward near the end of the 15-minute window, confirming a recent degradation that is not city-specific.
Set the time range and automatic refresh
Use the time range picker to control the window of data Metric Explorer analyzes. The Quick tab provides preset options from Last 1 minute to Last 7 Days. Use Relative, Custom, or Tag to define a precise range.
Turn on Refresh query automatically to keep the results live. Set the refresh interval (for example, 30 seconds) so the chart and table update without manual intervention.
Shows the time range picker open with Last 15 Minutes selected and automatic refresh set to 30 seconds.
Use case
You are watching for a RUM duration spike during a deployment that recently rolled out. You set the time range to Last 15 Minutes and turn on Refresh query automatically at 30 seconds. The chart updates every 30 seconds, so you can watch the trend in real time.
Combine expressions
Select Add expression to add a second metric or expression to the query. You can combine 2 expressions using arithmetic: Division, Multiplication, Addition, or Subtraction. Use this to derive new signals such as ratios, deltas, or normalized values from multiple metrics.
Shows the expression operator menu open with Division selected. The first expression uses a filtered RUM_duration metric, and the result preview reflects the combined formula.
Use case
You want to calculate the ratio of average city duration to the global average to normalize for baseline performance differences. You add a second expression for the global average and set the operator to Division. The result shows how much each city deviates from the global average, making outliers stand out clearly.
Switch the metric without losing your context
To change the metric, select a different metric in your query. Metric Explorer keeps your filters and group-by expressions in place, so you can explore one metric across a cluster or environment, then swap to another metric while keeping the same expressions, instead of rebuilding the query each time.
If the new metric does not carry a label you filtered on, the results show no data. This is expected: adjust or remove that filter to see results for the new metric.
Run a query
After you build or edit a query, select Run query, or use the Cmd+Enter or Ctrl+Enter keyboard shortcut, to run it. Metric Explorer runs a query only when you ask it to, so you control exactly when a query fires.
Read query error messages
When a query cannot run, Metric Explorer shows the specific reason and how to resolve it rather than a generic failure. For example, a series limit reached message means the query matches too many series. Narrow the query with filters, or use recording rules to pre-aggregate the data.
Visualize results
After running a query, Metric Explorer displays results in the Query over time chart and a table.
The chart shows each series as a color-coded line. Hover over any timestamp to see the exact values for each series at that moment. Use the legend to identify or toggle individual series.
The table lists each series with:
- Trend: a trend line showing the shape of each series over the selected period.
- Label columns: the label dimensions that differentiate each series.
- Last value: the most recent recorded value for the series.
Select a column header to sort the table. Use Search series to filter rows by label value.
The table and chart interact: hovering or selecting a row in the table highlights the corresponding series in the chart.
Filter values from the table
Hover over a value in the results table to filter it in or out. Metric Explorer adds the filter directly to your query, so you do not edit the expression by hand. Run the query again to apply the new filter.
Group by a column from the table
Hover over a column header to reveal its menu icon, then select an aggregation to group by that column: avg, sum, max, min, or count. Metric Explorer adds the aggregation to your query, for example sum(rum_data_cx_docs_total{}) by (context_rating), without requiring you to write PromQL.
Shows the group-by menu on a results-table column, with the avg, sum, max, min, and count options.
Use case
You are investigating why your documentation site shows degraded performance. You select the rum_data_cx_docs_total metric and select Run query. The table returns many series across pages, ratings, and countries, so you hover the good value in the context_rating column and filter it out to focus on the ratings that need attention. To break the remaining volume down, you hover the context_rating column and group by it with Sum. One grouped row carries most of the volume, so you select its drilldown arrow to open Drill-down by label dimensions and find that a single page and country drive the result. You then switch the metric to a related latency metric, keeping the same filter and group-by, to confirm the same page is also slow. This chains the new controls into one path: run on demand, narrow from the table, aggregate without PromQL, drill into the cause, then pivot to a related metric without rebuilding the query.
Drill down by label dimensions
Select any row in the table to open the Drill-down by label dimensions panel. Use it to understand how the selected series distributes across all available label dimensions without writing additional queries.
When a query is aggregated with a group-by, each grouped row shows a drilldown arrow at the end of the row. Select it to open the panel for that row. Unaggregated queries have nothing to drill into, so the arrow does not appear.
The panel applies the selected series value as a filter to the query and shows a grid of subseries charts, one chart per available label. Each chart displays all values for that label as separate series, so you can compare behavior across dimensions.
Shows the Drill-down by label dimensions panel with one subseries chart per label.
To control which labels appear in the grid, use Labels to explore in the panel. You can add or remove labels, with up to 30 labels visible at a time.
Select Update main screen to apply the current drilldown selections back to the main query view.
Explore metric labels and values
Before running a query, you can use Browse Metric Labels and Values to browse available metrics, labels, and label values, and generate a starting PromQL query without prior knowledge of the metric structure.
Permissions
| Permission | Action |
|---|---|
METRICS.DATA-API#HIGH:READDATA | Access Metric Explorer and run queries |
Learn more
Next steps
Navigate metrics, labels, and label values without writing PromQL in Browse metric labels and values.






