Skip to main content

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

  1. Open your app → Log DrainsAdd drain.
  2. Give it a name and pick a destination type.

HTTP / JSON

Best for modern log platforms. Vessl POSTs batches of log lines as JSON.

FieldWhat to enter
Endpoint URLThe ingest URL, e.g. https://in.logs.betterstack.com
Auth header nameOptional — e.g. Authorization or DD-API-KEY
Auth header valueOptional — 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.

FieldWhat to enter
HostThe syslog server hostname, e.g. logs.papertrailapp.com
PortThe port your provider gives you
ModeTCP, or TCP + TLS for an encrypted connection

Works with Papertrail, rsyslog/syslog-ng, Graylog, and most SIEMs.

  1. 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