Monitoring
Learn how to query and visualize your Vercel usage, traffic, and more with Monitoring.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.
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.