Build & validate

See the result while you build.

Choose which records and fields to keep. Work with saved samples beside the pipeline to see what each step adds, changes, or drops before the data reaches a destination.

Inside Smeltr

From raw records to a reviewed change.

Explore parsing, enrichment, tests, and review using sample web and firewall logs from a running Smeltr installation. Open any screenshot for a closer look.

1 · Parse

Turn a line of text into useful fields.

This web-log parser extracts the client address, request method, status, and other fields. Its settings sit beside the sample output. Green additions show exactly what the step produced.

Web-log parser settings beside an expanded sample showing added client_ip, method, status, and other fields. Open complete screenshot ↗Web-log parser settings beside an expanded sample showing added client_ip, method, status, and other fields. Open complete screenshot ↗
Web-log example: one raw line becomes fields you can filter, change, and route.

2 · Enrich

Add the context your logs are missing.

In this firewall pipeline, a directory lookup uses the recorded username to find a department and full name. Select the lookup step to see the fields it adds to each matching record.

Smeltr's pipeline editor with an open directory lookup on the left and added department and full-name fields highlighted in the sample preview on the right. Open complete screenshot ↗Smeltr's pipeline editor with an open directory lookup on the left and added department and full-name fields highlighted in the sample preview on the right. Open complete screenshot ↗
Running editor with sample data. Inspect each step’s effect, then lock the expected output as a regression test.

3 · Test

Save what the output should look like.

Choose Lock this as a test in the editor to save the expected result. A regression test checks that later edits still produce that result, including which records the pipeline drops. Here, both saved firewall tests are passing.

Samples page with two passing firewall pipeline tests. One expects ten records in and nine out; the other expects ten in and ten out. Open complete screenshot ↗Samples page with two passing firewall pipeline tests. One expects ten records in and nine out; the other expects ten in and ten out. Open complete screenshot ↗
A passing test can include dropped records: the first test expects 10 inputs and 9 outputs.

Keep useful events. Leave out the noise.

Suppose your team needs order and error events, but not routine health checks or debug fields. A Drop step removes health-check records. An Eval step clears the unused fields from the records you keep. The result is two smaller records ready for delivery.

3 records in · 2 records out · debug fields removed

Input 1

{
  "event_type": "order",
  "message": "Order placed",
  "debug": "trace-101"
}

Kept

{
  "event_type": "order",
  "message": "Order placed"
}

Keep the order event; remove the debug field.

Input 2

{
  "event_type": "health_check",
  "message": "Service is healthy",
  "debug": "trace-102"
}

Dropped

No record sent to the destination.

Drop the whole record because event_type is health_check.

Input 3

{
  "event_type": "error",
  "message": "Payment timed out",
  "debug": "trace-103"
}

Kept

{
  "event_type": "error",
  "message": "Payment timed out"
}

Keep the error event; remove the debug field.

Try these three samples and save their results as tests →

Keep what matters. Send it where it belongs.

Keep useful data, then route itSource records enter filtering and transformation. Dropped rows stop here. Kept records can be delivered to each destination whose rule matches.Source recordsRows and fieldsFilter & transformKeep useful dataDestination AMatching delivery ruleDestination BMatching delivery ruleDropped rowsNo downstream deliveryKeep useful data, then route itSource records enter filtering and transformation. Dropped rows stop here. Kept records can be delivered to each destination whose rule matches.Source recordsRows and fieldsFilter & transformKeep useful dataDropped rowsNo deliveryDestination AMatching ruleDestination BMatching rule
Remove unused fields from kept records. Drop unwanted rows entirely. Each matching delivery rule can send a kept record to a destination.

Configure sources · Configure destinations

Put it into practice

Finish with a record at the destination.

In an existing Smeltr installation, build a small pipeline, lock its output as a test, review and deploy it, then verify the worker's commit and the delivered record. The tutorial supplies the input, expressions, and checks for each step.

Test your own data · Expression reference