Skip to content
'; user_status_content.firstChild.appendChild(avatarContainer); } else { // Placeholder for LoggedOutUserMenu let loggedOutContainer = document.createElement('div'); // if LoggedOutUserMenu fallback let userBtn = document.createElement('button'); userBtn.style.width = "33px"; userBtn.style.height = "33px"; userBtn.style.display = "flex"; userBtn.style.alignItems = "center"; userBtn.style.justifyContent = "center"; userBtn.style.color = "var(--ds-gray-900)"; userBtn.style.border = "1px solid var(--ds-gray-300)"; userBtn.style.borderRadius = "100%"; userBtn.style.cursor = "pointer"; userBtn.style.background = "transparent"; userBtn.style.padding = "0"; // user icon ( from geist) let svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); svg.setAttribute('data-testid', 'geist-icon'); svg.setAttribute('height', '16'); svg.setAttribute('stroke-linejoin', 'round'); svg.setAttribute('style', 'color:currentColor'); svg.setAttribute('viewBox', '0 0 16 16'); svg.setAttribute('width', '16'); let path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); path.setAttribute('fill-rule', 'evenodd'); path.setAttribute('clip-rule', 'evenodd'); path.setAttribute('d', 'M7.75 0C5.95507 0 4.5 1.45507 4.5 3.25V3.75C4.5 5.54493 5.95507 7 7.75 7H8.25C10.0449 7 11.5 5.54493 11.5 3.75V3.25C11.5 1.45507 10.0449 0 8.25 0H7.75ZM6 3.25C6 2.2835 6.7835 1.5 7.75 1.5H8.25C9.2165 1.5 10 2.2835 10 3.25V3.75C10 4.7165 9.2165 5.5 8.25 5.5H7.75C6.7835 5.5 6 4.7165 6 3.75V3.25ZM2.5 14.5V13.1709C3.31958 11.5377 4.99308 10.5 6.82945 10.5H9.17055C11.0069 10.5 12.6804 11.5377 13.5 13.1709V14.5H2.5ZM6.82945 9C4.35483 9 2.10604 10.4388 1.06903 12.6857L1 12.8353V13V15.25V16H1.75H14.25H15V15.25V13V12.8353L14.931 12.6857C13.894 10.4388 11.6452 9 9.17055 9H6.82945Z'); path.setAttribute('fill', 'currentColor'); svg.appendChild(path); userBtn.appendChild(svg); loggedOutContainer.appendChild(userBtn); loggedOutContainer.style.display = 'flex'; loggedOutContainer.style.gap = '8px'; loggedOutContainer.style.alignItems = 'center'; user_status_content.firstChild.appendChild(loggedOutContainer); } })();
Menu

Monitoring Quickstart

Last updated February 27, 2026
Monitoring is now deprecated. It is no longer available for Pro users or Enterprise customers who subscribed to Observability Plus after June 2025.
Observability Plus includes Observability Query for monitoring your project.
AI Assistance

Help me set up Vercel Monitoring in this project. First, make sure the Vercel CLI is installed (`npm i -g vercel`). If I'm using Claude Code or Cursor, install the Vercel Plugin (`npx plugins add vercel/vercel-plugin`). For other agents, install Vercel Skills (`npx skills add vercel-labs/agent-skills`). Then: 1. Run `vercel link` to connect the project. 2. Set up observability by configuring `vercel logs` for runtime logs and adding instrumentation for custom metrics.

In the following guide you will learn how to view the most requested posts on your website.

    1. Open Observability in the sidebar from your Vercel dashboard
    2. Click the Create New Query button to open the query builder
    3. Click the Edit Query button to configure your query with clauses
  1. The Visualize clause specifies which field in your query will be calculated. Set the Visualize clause to requests to monitor the most popular posts on your website.

    Click the Run Query button, and the Monitoring chart will display the total number of requests made.

  2. To filter the query data, use the Where clause and specify the conditions you want to match against. You can use a combination of variables and operators to fetch the most requested posts. Add the following query statement to the Where clause:

    host = 'my-site.com' and like(request_path, '/posts%')

    This query retrieves data with a host field of my-site.com and a request_path field that starts with /posts.

    The % character can be used as a wildcard to match any sequence of characters after /posts, allowing you to capture all request_path values that start with that substring.

  3. Define a criteria that groups the data based on the selected attributes. The grouping mechanism is supported through the Group By clause.

    Set the Group By clause to request_path.

    With Visualize, Where, and Group By fields set, the Monitoring chart now shows the sum of requests that are filtered based on the request_path.

  4. To control the number of results returned by the query, use the Limit clause and specify the desired number of results. You can choose from a few options, such as 5, 10, 25, 50, or 100 query results. For this example, set the limit to 5 query results.

  5. Save your query and click the Run Query button to generate the final results. The Monitoring chart will display a comprehensive view of the top 5 most requested posts on your website.


Was this helpful?

supported.