Skip to main content
The Expression Browser is Prometheus’ built‑in web UI for running PromQL queries and drawing quick, simple graphs. It is intended for ad‑hoc troubleshooting, quick data checks, and exploratory queries — not for building long‑term, custom dashboards or production monitoring views.
Use the Expression Browser when you need fast, one‑off queries or to verify metric names/labels. For structured dashboards and alerts, use a dashboarding solution such as Grafana.
The image is a slide titled "Expression Browser" that outlines its purpose as a built-in web UI for executing queries and simple graphs, noting its limited functionality and lack of ability to build custom dashboards for day-to-day monitoring.

Accessing the Expression Browser

Open a browser and navigate to your Prometheus server IP and port (by default :9090). For a local instance, that is commonly: http://localhost:9090
The image shows a Firefox web browser on a Linux desktop with a search for "localhost:9090", suggesting access to a Prometheus time series collection and processing server.

Querying: autocomplete, instant vs range vectors

The query box accepts any valid PromQL expression. Autocomplete helps discover metric names and label keys/values as you type — enable or disable it with the checkbox on the page.
The image shows a web interface of Prometheus, a time-series database, in the Firefox browser. It displays a search function suggesting metrics, such as node_arp_entries and node_boot_time_seconds, to query.
Example: an instant vector query returning the current value and labels for a node metric:
When you Execute, the Expression Browser returns the current sample(s) for that instant vector. You can change the evaluation timestamp (the “evaluation time”) to inspect the value at any previous moment. To request a range of samples for a given time window, use a range vector selector — for example, the last 5 minutes:
Important distinction:
  • Instant vectors (e.g., metric{...}) return values at a single timestamp.
  • Range vectors (e.g., metric[5m]) return multiple samples across a window and are used as inputs to functions such as rate() and increase().
The image shows a Prometheus web interface in a Firefox browser on Ubuntu, displaying a query result for node_memory_Active_bytes with data fetched from a specified instance.
The Graph tab expects an instant vector to plot. Supplying a bare range vector will cause an error — wrap the range vector in an aggregation/function (for example rate()), or remove the range selector for plotting an instant vector.

Graphing and panels

  • Switch to the Graph tab to render the query output. If the query returns an instant vector, Prometheus will plot the single value at the selected evaluation time.
  • To plot time series, use functions that accept range vectors (e.g., rate()), or use a metric that yields time series points directly.
  • You can add multiple panels (queries) to the page to compare results side‑by‑side and remove panels as needed.
  • Use the graph window controls to change the display range (e.g., 30m, 2h) or set a different evaluation time.
Common graphing examples:
  • Rate of memory metric over the last 5 minutes:
  • CPU usage rate (per CPU mode) over the last 2 minutes:
When graphing metrics with multiple label combinations (for example, different CPU modes), the legend populates automatically so you can identify each series.

Quick examples and outputs

Example instant vector result (simplified):
Example of using a range vector inside a function to produce a plottable result:

Comparison: Expression Browser vs Dashboard tools

Tips and best practices

  • Prefer the Expression Browser for quick lookups, metric discovery, and validating PromQL expressions.
  • For ongoing monitoring, alerting, and multi‑panel dashboards, integrate Prometheus with Grafana.
  • When you get a graphing error, check whether your query returns an instant vector or a range vector and apply an appropriate function (e.g., rate() or avg_over_time()).
Further reading:

Watch Video