Skip to main content
Read events, logs, or raw lines from a file and push them into Tell’s pipeline. Use this for one-time imports, replaying exported data, or ingesting log files from disk.
Tell reads the file line by line, batches the content, and routes it through the pipeline like any other source.

Read modes

The file source supports three modes, each producing different batch types:

Lines mode

Each line becomes a syslog message. Empty lines are skipped.
This reads the entire file, batches every 500 lines, and exits. Use transforms downstream to parse structured fields from raw lines.

JSONL mode

Parse each line as a JSON object and produce typed batches. Set format to control the schema:

Log format

Each line is a JSON log entry:

Event format

Each line is a JSON event:
Additional fields are flattened into event properties. Parse errors in JSONL mode are logged and skipped — a malformed line won’t stop the import.

Binary mode

Re-import data previously exported by the disk sink. Tell reconstructs the original batches with their metadata, including source IPs.
This is useful for replaying historical data or migrating between Tell instances.

One-shot vs continuous

By default, the file source reads the file once and exits (one_shot = true). Set one_shot = false to keep the source running after reading:

Configuration reference

The file source requires the source-file feature flag at build time.

What’s next

  • Routing — control where file data goes after ingestion
  • Transforms — parse and enrich raw lines before storage
  • Disk sink — export data that binary mode can re-import