Skip to main content

Overview

Vercel’s drains forward observability data to an external destination in real time. Routing this data into Bronto lets you correlate frontend performance, user behaviour, and backend telemetry in a single place, with long-term retention and unified alerting across your full stack.
DrainWhat it containsSchema reference
LogsRuntime logs from your Vercel deploymentsLog Drains reference
TracesDistributed trace spans across your serverless functionsTraces reference
Speed InsightsCore Web Vitals and real user performance metricsSpeed Insights reference
Web AnalyticsVisitor events and page view dataAnalytics reference
This guide walks you through configuring each drain type to send data to Bronto.

Prerequisites


Drain Types

Vercel exposes four drain types. Each maps to a separate Bronto ingestion endpoint and encoding format:
DrainEndpoint URLEncoding
Logshttps://ingestion.<region>.bronto.io/NDJSON
Traceshttps://ingestion.<region>.bronto.io/v1/tracesProtobuf
Speed Insightshttps://ingestion.<region>.bronto.io/NDJSON
Web Analyticshttps://ingestion.<region>.bronto.io/NDJSON
Replace <region> with your Bronto account’s region — either eu or us. All four drain types use the same set of required headers:
HeaderValue
x-bronto-api-keyYour Bronto API key
x-bronto-datasetThe dataset name to write into
x-bronto-collectionThe collection name to write into

Configure a Drain in Vercel

The steps below apply to all four drain types. Repeat this process for each type you want to enable.
  • Navigate to your team settings in Vercel and go to the Drains section
  • Click Add Drain in the top-right corner
  • Select the drain type you want to configure (Logs, Traces, Speed Insights, or Web Analytics)
  • Configure the drain name and select which projects should be associated with it
All data associated with a single drain configuration will be grouped in the same dataset. We recommend creating separate drains for different projects and environments.
  • For Logs drains: select the log sources and environments (e.g., production, preview) you want to include
  • Most customers send all data to Bronto without sampling — Bronto is designed to handle high-volume ingestion. Sampling rules are available if you need to control Vercel drain costs.
  • Select Custom Endpoint and set the URL to the appropriate endpoint from the table above
  • Select the encoding format from the table above (NDJSON or Protobuf)
  • Add the three required headers (x-bronto-api-key, x-bronto-dataset, x-bronto-collection)
  • Click Test — if everything is configured correctly you should see a 200 status response
If you receive an error, double-check that the endpoint URL is correct for the drain type, the API key has the Ingestion role assigned, and all three required headers are present and correctly formatted. If issues persist, contact Bronto Support.
  • Click Create Drain to finish setup

Verify Data Flow

Once a drain is created, data from the selected projects and environments will begin flowing into Bronto. Navigate to your dataset in Bronto to confirm data is arriving as expected.

Out-of-the-Box Monitoring with Bronto Express

Once your Vercel drains are flowing into Bronto, you can use Bronto Express to instantly provision pre-built dashboards, monitors, and saved searches — no manual setup required. Bronto Express detects which drain types you have configured and offers only the content that matches your data. If you later add additional drains, re-run Express provisioning to unlock the corresponding dashboards.
Bronto Express for Vercel is currently in preview and available on request. Please reach out to support to enable it for your account.
Each of the three Vercel dashboards maps to a different drain type. You can ship with any subset — a Vercel Express package is considered valid if at least one drain’s content is fully provisioned.

Dashboards

Vercel Overview (Logs drain)

A high-level view of request traffic, error rates, cache behaviour, and firewall activity across your Vercel deployments.
WidgetTypeWhat it shows
Total RequestsQuery ValueCount of all proxied requests
5xx Error CountQuery ValueCount of server error responses
Lambda CrashesQuery ValueFatal-level events and status code –1
Requests Over TimeLineProxied request volume over time
Requests by SourceBarBreakdown by source (build / edge / lambda / static / …)
HTTP Status BreakdownBarRequest count grouped by HTTP status code
Requests by MethodBarRequest count grouped by HTTP method
Cache State DistributionBarBreakdown by proxy.vercelCache (HIT / MISS / STALE / …)
Top Error PathsTop ListPaths with the most 5xx responses
Top Edge RegionsTop ListMost active executionRegion values
Firewall ActionsBarRequest count grouped by WAF action
Top Denied ClientsTop ListClient IPs most frequently denied by the firewall
Build Failures Over TimeLineBuild-source error log volume over time

Vercel Web Vitals (Speed Insights drain)

Core Web Vitals at P75, segmented by route and device type, using Google’s published “good” thresholds.
WidgetTypeWhat it shows
LCP P75Query ValueLargest Contentful Paint at the 75th percentile
INP P75Query ValueInteraction to Next Paint at the 75th percentile
CLS P75Query ValueCumulative Layout Shift at the 75th percentile
TTFB P75Query ValueTime to First Byte at the 75th percentile
Web Vitals Over Time (P75)LineP75 trend for all metric types
LCP P75 by RouteTop ListSlowest routes by LCP P75
INP P75 by RouteTop ListSlowest routes by INP P75
Device Type BreakdownBarMeasurement count by device type

Vercel Web Analytics (Web Analytics drain)

Visitor and engagement data from your Vercel Web Analytics drain.
WidgetTypeWhat it shows
Pageviews Over TimeLinePageview event volume over time
Top PagesTop ListMost visited paths
Top Custom EventsTop ListMost frequent custom event names
Referrer BreakdownBarPageviews grouped by referrer
Country DistributionTree MapPageviews grouped by country
Device TypeBarPageviews grouped by device type

Monitors

Monitors run continuously against your incoming data and fire alerts when thresholds are crossed. All windows are 5 minutes.
MonitorDrainSeverityThreshold
Lambda Error SpikeLogsCritical10 events
Lambda CrashLogsCriticalAny event with status code –1
5xx Error Rate SpikeLogsCritical5% of total requests
High 4xx RateLogsWarning15% of total requests
Firewall Deny SpikeLogsWarning100 deny events
LCP P75 RegressionSpeed InsightsWarningP75 > 2,500 ms
INP P75 RegressionSpeed InsightsWarningP75 > 200 ms
Thresholds for LCP and INP match Google’s and Vercel’s published “needs improvement” cut-off. You can adjust these in the monitor settings to match your own performance baseline.

Saved Searches

Pre-built filters you can open directly from the search bar or use as a starting point for your own investigations.
NameDrainWhat it finds
Lambda ErrorsLogsError and fatal log events from lambda sources
Lambda CrashesLogsEvents with status code –1 (process crash)
Firewall DeniesLogsRequests denied by the Vercel WAF
Build FailuresLogsError-level events from the build source
Poor LCP PagesSpeed InsightsLCP measurements above 2,500 ms
Poor INP PagesSpeed InsightsINP measurements above 200 ms