Log Drains
Log drains stream your application's logs off Vessl to an external destination — a log-management service over HTTP, or a Syslog server — so you can search, alert, and retain them alongside the rest of your stack.
They complement the built-in Logs & Monitoring view: the dashboard is for looking at recent logs live; a drain is for shipping every line to a system you already use (Better Stack, Datadog, Axiom, Papertrail, a self-hosted collector, and so on).
How it works
When you add a drain, Vessl runs a small, efficient log forwarder on your server that reads your app's container output and ships each line to your destination. There is nothing to install in your app and no code change — it reads the container's normal stdout/stderr.
- Logs from all of your app's running replicas are forwarded.
- Each drain only ever receives its own app's logs.
- Changes take effect within about a minute.
- Delivery starts once the app is deployed and running. While an app is stopped or mid-deploy, there's nothing to forward.
Add a drain
- Open your app → Log Drains → Add drain.
- Give it a name and pick a destination type.
HTTP / JSON
Best for modern log platforms. Vessl POSTs batches of log lines as JSON.
| Field | What to enter |
|---|---|
| Endpoint URL | The ingest URL, e.g. https://in.logs.betterstack.com |
| Auth header name | Optional — e.g. Authorization or DD-API-KEY |
| Auth header value | Optional — the token/secret for that header |
Works with Better Stack, Datadog, Axiom, New Relic, and any endpoint that accepts a JSON POST.
Syslog
Best for classic log servers and SIEMs. Vessl sends standard RFC5424 lines over a TCP connection.
| Field | What to enter |
|---|---|
| Host | The syslog server hostname, e.g. logs.papertrailapp.com |
| Port | The port your provider gives you |
| Mode | TCP, or TCP + TLS for an encrypted connection |
Works with Papertrail, rsyslog/syslog-ng, Graylog, and most SIEMs.
- Save. The forwarder picks up the change within a minute.
Managing drains
- Enable / disable a drain without deleting it — handy for pausing a noisy or expensive destination.
- Edit a drain to change the destination or rotate a token.
- Delete a drain when you no longer need it. Removing the last drain on a server also removes the forwarder and its rendered config.
Security
- The auth header value (your token) is encrypted at rest and never returned
by the API — the form shows
********once it's set. Leave it unchanged when editing to keep the stored token; clear the header name to remove it. - Logs are shipped from your own server directly to your destination.
Notes & limits
- A slow or unreachable destination won't stall your app: the forwarder uses a bounded buffer and drops the newest lines rather than blocking log reading.
- Timestamps are UTC.
- Log drains are configured per application. Add more than one to fan out the same logs to several destinations.
See also
- Logs & Monitoring — view and stream logs in the dashboard.
- Console & Running Commands — run commands inside your app.