Collect Vercel logs in Osuite
Overview
Section titled “Overview”Vercel delivers observability data with Drains. A log drain POSTs runtime, build, and static logs as newline-delimited JSON to an HTTPS endpoint you configure. There is no OpenTelemetry Collector receiver that speaks Vercel’s log schema natively, so the practical path is to receive that JSON with the Collector’s webhook_event receiver and forward it to Osuite over OTLP.
Prerequisites
Section titled “Prerequisites”- A Vercel project on a Pro or Enterprise plan, with the Drains permission.
- An OpenTelemetry Collector from the Contrib distribution (
otelcol-contrib) reachable from the internet over HTTPS (directly or behind a reverse proxy). - Your Osuite ingest endpoint and token.
Collector config
Section titled “Collector config”This configuration accepts Vercel’s newline-delimited JSON on a dedicated path and forwards each line as a log record to Osuite.
receivers: webhook_event: endpoint: 0.0.0.0:8088 path: /vercel/logs split_logs_at_newline: true read_timeout: "1s"
processors: batch:
exporters: otlp/osuite: endpoint: ingest.<region>.osuite.io:443 tls: insecure: false headers: x-osuite-ingest-token: <your-ingest-token>
service: pipelines: logs: receivers: [webhook_event] processors: [batch] exporters: [otlp/osuite]Each drained line becomes a log record whose body is the raw Vercel JSON object (message, source, deploymentId, requestId, and more). To promote those fields to attributes and set severity, add a transform processor to the pipeline — see Log pipelines.
Configure the drain in Vercel
Section titled “Configure the drain in Vercel”Add the drain to your Vercel project, then set its endpoint to the Collector’s public URL and path:
- Project → Settings → Drains → Add (or the Drains section of your team settings).
- Data type: Logs. Delivery: Custom endpoint.
- Endpoint URL:
https://<your-collector-host>/vercel/logs.
Vercel verifies the endpoint before the drain goes live; complete that verification at your proxy if the raw receiver does not satisfy it.
Verify in Osuite
Section titled “Verify in Osuite”What you should see
Vercel log lines appear in the Logs Explorer within a minute or two of a deployment or request. Each record’s body is the Vercel JSON payload; once a transform processor is added, source and deploymentId become filterable attributes.
Troubleshooting
Section titled “Troubleshooting”If nothing arrives, confirm the drain endpoint is reachable over HTTPS from the public internet and that Vercel’s verification succeeded — a drain that fails verification is never activated. Check the Collector logs for the incoming POSTs; a 404 means the path in the receiver does not match the drain URL. If records arrive but are unstructured, add the transform processor to parse the JSON body.
No data in Osuite after a few minutes? Work through these checks.
- Endpoint — confirm the exporter targets exactly
ingest.<region>.osuite.io:443for your region, over TLS. - Token — confirm the ingest header carries a valid
<your-ingest-token>and has not been rotated. - Pipeline — confirm the signal you expect (traces, logs, or metrics) is wired into an active pipeline with the
otlp/osuiteexporter attached. - Export errors — check the application or Collector logs for OTLP export failures (auth, DNS, TLS, connection refused).
- Network — confirm the host has outbound access to the ingest endpoint on port
443. - Timing — allow up to a minute for the first data to appear before assuming a failure.
Still stuck? Ask the Investigation Agent or contact support.
Next steps
Section titled “Next steps”- Collect logs from any source — other sources and forwarders.
- Log pipelines — parse the Vercel JSON body into attributes.