Set up a pipeline
In the dashboard, open the app, then Observe, Logs, scroll to Pipeline, and paste your rules. Or:Rule kinds
Multiline (one per pipeline) Matches the first line of a record with a regex pattern; following lines are joined to it until 2 seconds of quiet or 64 KiB is reached. Use this for exceptions, stack traces or logs with embedded newlines.[REDACTED] (or a replace value you set). Applied to the stored and exported copy, not the container’s own stdout.
Example rules.json
Manage pipelines
A pipeline is app-specific. Changes take effect within about 15 seconds and apply only to new lines.
API
- GET
/api/v1/apps/{name}/log-pipeline- fetch the pipeline - PUT
/api/v1/apps/{name}/log-pipeline- set the pipeline (body:{"rules":[...]}), or empty list to clear - DELETE
/api/v1/apps/{name}/log-pipeline- clear the pipeline - POST
/api/v1/apps/{name}/log-pipeline/preview- dry run a pipeline against sample lines (body:{"rules":[...],"lines":[...]})
Patterns
Patterns use Go RE2 syntax, so backreferences and lookahead are not available. Multiline and parse must have apattern. Redact has pattern and optional replace (default [REDACTED]). Drop has pattern only.
Dashboard
The Pipeline card on the app’s Observe, Logs page shows your current rules, a live preview pane below it, and a full-screen editor. Changes save on click; errors appear inline.What redaction covers
Redaction applies to:- Lines stored in the node-local log store
- Lines returned by the
/api/v1/apps/{name}/logssearch endpoint - Lines downloaded via
/api/v1/apps/{name}/logs/download - Lines exported via log drains (external HTTP endpoints)
- The container’s own stdout or stderr (visible if you exec into the container)
- Traces or metrics (separate systems)
Troubleshooting
Pattern is not matching
Check the pattern with a test case:levelrail-cli apps log-pipeline preview <app> --input - and paste a matching line. Verify the pattern compiles as Go RE2.