Skip to content

Monitoring

Learn how to query and visualize your Vercel usage, traffic, and more with Monitoring.

Monitoring is available in Beta on Enterprise plans

Monitoring is a powerful query editor that allows you to visualize, explore, and monitor your usage and traffic. Members on an Enterprise account can access Monitoring from the Vercel dashboard.

Access Monitoring from the Vercel dashboard.

Monitoring in the Vercel dashboard.

Charts allow you to visually explore your query results in detail. Filters can be used to adjust the settings of a chart. These include filter options for date, data granularity, and the ability to view a chart as a line or bar chart.

Graph view to visualize data and usage of your application.

For in-depth analysis, hover and move your mouse through the graph. As you move across the chart, you view the data at that point in time. For example, if the data granularity is set to 1 hr, the queried data changes with one-hour time roll-ups.

The tooltip shows you the aggregated data for the date and time selected.

On the left navigation bar, you will find a list of example queries to get started:

Query Name
Description
Requests by Hostname
The total number of requests grouped by host
Requests by Project
The total number of requests grouped by project_id
Requests by IP Address
The total number of requests grouped by public_ip
Requests by Bot/Crawler
The total number of requests grouped by bot_name
Requests by User Agent
The total number of requests grouped by user_agent
Requests by Region
The total number of requests grouped by region
Bandwidth by Project, Hostname
The outgoing bandwidth grouped by host and project_id
Bandwidth by Path, Hostname
The outgoing bandwidth grouped by host and source_path
Request Cache Hits
The total number of request cache hits grouped by host
Request Cache Misses
The total number of request cache misses grouped by host
429 Status Codes by Host, Path
The total 429 (Too Many Requests) status code requests grouped by host and source_path
5XX Status Codes by Host, Path
The total 5XX (server-related HTTPS error) status code requests grouped by host and source_path
Execution by Host, Path
The total build execution time grouped by host and source_path

Below you will find two examples on how to use Monitoring. For both examples, set the query parameters to the following:

  • Date: Last 3 days
  • Data Granularity: 1 hour
  • View: Line Chart

Requests by hostname will query the total number of requests grouped by the host for the past 3 days. A host is a domain or subdomain linked to your Vercel Team.

Query data results for Requests by Hostname.

Note: Please note that you cannot edit or add new Example Queries.

You can create a new query to visualize and analyze your website usage and traffic according to your custom requirements. Click the Create a New Query button and enter a name.

Create new queries from the top right button.

When you click Create, you will see a query template. Select the Edit Query button to open a query editor that has the following editable clauses:

You can also use the “+” button to the right of the “My Queries” and “Team Queries” folders to create new queries.

Click the '+' icon next to the query folder name to add new queries.

The Visualize clause selects which field you will perform a calculation on within your query. It allows you to select one of the following at a time:

Field Name
Description
requests
The HTTP requests which are sent
bandwidth_incoming
Bandwidth that was sent from the client to Vercel
bandwidth_outgoing
Bandwidth that was sent from Vercel to client
bandwidth_total
Sum of bandwidth_incoming and bandwidth_outgoing
execution
Serverless function usage for your Vercel team account
serverless_function_duration
The time duration during which your Serverless Functions are invoked and executed
memory_size
The max size of memory used to process the request in the lambda

The Where clause defines the conditions to filter your query data. It only fetches data that meets a specified condition. It allows you to filter results based on several tokens/variables and operators as listed in the table below:

Token/Variable Name
Description
requests
The count of requests made.
bandwidth_total
The sum of the incoming and outgoing bandwidth for the request.
bandwidth_incoming
The bandwidth sent from the client to your Vercel account for the request.
bandwidth_outgoing
The bandwidth sent from your Vercel account to the client for the request.
host
The domains or subdomain for the request.
execution
For functions, the billed function usage.
serverless_function_duration
For functions, the time spent executing the function.
memory_size
For functions, the max amount of memory used.
path_type
The path type for the request. Learn more about Path Types.
project_id
The project ID for the request ID.
status
The HTTP response code for the request.
source_path
The mapped path used by the request. For example, if you have a dynamic route like /blog/[slug] and a blog post is /blog/my-blog-post, the source_path is /blog/[slug].
request_path
The path used by the request. For example, if you have a dynamic route like /blog/[slug] and a blog post is /blog/my-blog-post, the request_path is /blog/my-blog-post.
cache
The cache status for the request.
error_details
The errors that were thrown on Vercel. This does not include your errors thrown by you or your application code.
deployment_id
The deployment ID the request came from.
environment
The environment the request came from.
request_method
The HTTP method for the request (GET, POST, PUT, etc.)
public_ip
The IP address for the request.
user_agent
The user agent for the request.
asn
The asn for the request. This is related to what network the request came from (either a home network or a cloud provider).
bot_name
The bot crawler name for the request. This field will contain the name of a known crawler (e.g. Google, Bing).
region
The region the request was routed to.
Operator Name
Description
in
The operator that allows you to specify multiple values
and
The operator that displays a query result if all the filter conditions are TRUE
or
The operator that displays a query result if at least one of the filter conditions are TRUE
not
The operator that displays a query result if the filter condition(s) is NOT TRUE
like
The operator used to search a specified pattern. This is case-sensitive. To do a case-insensitive search, use ilike. Example: host like 'acme.com'. You can also use _ to match any single character and % to match any substrings. Example: host like 'acme_.com' will match with acme1.com, acme2.com, and acme3.com. host like 'acme%' will also have the same matches.
startsWith
Filter data values that begin with some specific characters
match
The operator used to search for patterns based on a regular expression (Re2 syntax). Example: match(user_agent, 'Chrome/97.*')

All of your project's resources like pages, functions, and images have a path type.

Path Type
Description
static
A static asset (.js, .css, .png, etc.)
func
external
A resource that is outside of Vercel. This is usually caused when you have rewrite rules.
edge
prerender
A pre-rendered page built using Incremental Static Generation
streaming_func
background_func
The Incremental Static Regeneration Render Function used to create or update a static page

The Group By clause groups the data based on the selected attributes. The available grouping attributes are:

Group Name
Description
cache
Group by the cache hit status (HIT or MISS)
deployment_id
Group by the request's deployment
environment
Group by the environment (production or preview)
error_details
Group by the errors that were thrown on Vercel
host
Group by domains and subdomains
path_type
Group by the request's resource type
project_id
Group by the request's project
request_method
Group by the HTTP request method (GET, POST, PUT, etc.)
source_path
Group by the path of the request
status
Group by the HTTP response code for the request

The Limit clause defines the number of results the query will show.

For example, a query to visualize Top Bandwidth Images on your website will have the following fields:

Set the "Visualize" field to bandwidth_outgoing.

Query editor from where you edit your new and existing queries.

Next, click the Run Query button. The query editor will start generating query results which you can further refine by applying different filters and graph views.

You can create saved personal queries under the My Queries folder on the left navigation bar. These queries are only viewable and editable by the user that created the query.

To create a saved personal query, click on the (+) icon to the right of the My Queries folder. When the "Create New Query" modal appears, type in a name and click on the "Create" button. Use the query editor to modify your results and click "Run Query" to execute your query. To save your personal query, click the "Save" button in the upper right-hand corner.

Team Queries are saved queries that any user can access on a Team with the owner or member roles. These queries are located in the Team Queries folder on the left navigation bar.

To create a saved team query, click on the (+) icon to the right of the Team Queries folder. When the "Create New Query" modal appears, type in a name and click on the "Create" button. Use the query editor to modify your results and click "Run Query" to execute your query. To save your team query, click the "Save" button in the upper right-hand corner.

You can manage your saved personal and team queries right from the query console. Select a query from the left navigation bar and click on the vertical ellipsis (⋮) in the upper right-hand corner. You can choose to Duplicate, Rename, or Delete the selected query from the dropdown menu.

Duplicate, Rename and Delete a query from the query editor.

Alternatively, you can perform the same actions from the left navigation bar. Hover your mouse over a saved query and click on the vertical ellipsis (⋮) to view the drop-down menu.

Manage individual queries from the sidebar right next to their names.

Duplicating a query creates a copy of the query in the same folder as the original. Queries cannot be copied to another folder. In addition to being able to rename a saved query via the ellipses (⋮) drop-down menu, you can also click directly on the title of the saved query to edit it.

Deleting a saved personal or team query is permanent and irreversible. Once you have selected a saved query to delete, click the delete button in the confirmation modal to confirm the deletion.

Monitoring is in the beta stage and is currently available to all Enterprise accounts. Only users with the owner or member roles can access this tab from the dashboard. The retention time for the queryable data is 30 days.

The queryable data includes all the CDN requests, which means only the Edge, Lambda, External, and Static logs are displayed. Build logs are not present.

When using Monitoring, you might run into errors like Invalid Queries. For such cases, no data appears when you define an incorrect location parameter that generates an invalid query. This incidental response appears as an error message at the bottom-right corner of the page. Make sure you choose a valid location for your query to fetch data.