Debugging
The Pipeline Debugger provides an interactive testing environment for validating pipeline processing logic before deployment. It enables you to execute pipelines with test data and observe how each processor transforms the data through the processing chain.
Accessing the Debugger
The debugger is a tab of the Pipeline Editor's dock. Navigate to
Dataset Providers
Test data is selected in a two-step drawer: Select sample (choose a provider) and Select log lines (pick a specific log entry), after which
| Provider | Description |
|---|---|
| Library samples | Select a sample from the Library, or one that came with the pipeline's Content Hub pack (Kind: Pack) |
| Upload log file | Upload a log file containing test data |
| Enter logs manually | Enter log data directly in the input editor |
| Live logs | Capture live logs from a Director or Device in real time |
Library samples
One table lists two sources together: the samples that came with the pipeline's Content Hub pack, and the Library's own samples that are offered to the debugger. The
The
Upload log file
Upload log files for one-time testing. After upload, select a specific log line from the file content to use as test input.
Enter logs manually
Enter log data directly in the input editor, then select a specific log line to use as test input. This method is useful for:
- Testing specific edge cases
- Debugging individual log entries
- Quick validation of processor behavior
Live logs
Capture live data from a selected Director or Device, then pick a captured log line as test input. The capture controls match the Live Data panel. While a capture is running, the list stays where you left it rather than scrolling to the newest event, so you can pick a line while events keep arriving.
Changing the Sample
Once a sample is selected, the debugger header shows its name beside the
The
Entry Point
The
Environment Variables
The debugger allows configuration of environment variables that affect pipeline execution context:
Open the modal with the
| Control | Input Type | Description |
|---|---|---|
| Dropdown | Simulates the source device type (Windows, Linux, Syslog, HTTP, TCP, UDP, Kafka, Azure Event Hubs, Azure Blob Storage) — sets the devicetype variable | |
| Definition ID | Dropdown | Sets the definitionid log definition identifier from available Windows and Linux log types |
| Request | Text | Configures request-level context variables |
| Toggle | When enabled, system-generated metadata fields are included in the debugging process | |
| Route configuration | YAML editor | A route configuration document — the same YAML an Advanced Route's Route Configuration step takes — with a conf block. The debugger applies that block over the pipeline's own settings for every run in the session, the way a Director does for a route |
Configure these variables to match production conditions when testing pipelines that contain conditional logic based on device type or other context values. Leave
Unlike the other controls, which reach the pipeline as text, the route configuration can express a boolean, a number, or a list — useful for debugging a pack in a mode other than its default:
conf:
use_smart_routing: false
The route configuration is part of the editing session; it is not saved with the pipeline. A document that is not valid YAML, or has no conf block, fails the run with an error that says so.
Pipeline Visualization
The debugger displays the pipeline structure as an interactive node graph:
- Pipeline nodes: Represent the main pipeline and any referenced child pipelines
- Processor nodes: Show individual processors in the execution chain
- Connection lines: Indicate data flow between processors
Navigating Child Pipelines
When a pipeline references child pipelines, click on a pipeline node to navigate into its structure. A breadcrumb trail at the top of the view tracks your navigation path and allows you to return to parent pipelines. Two toolbar buttons perform the same navigation:
Execution and Results
Running the Pipeline
Click
Node Status Indicators
After execution, each node displays a status indicator:
| Status | Description |
|---|---|
| Completed | Processor executed successfully |
| Failed | Processor encountered an error |
| Skipped | Processor was skipped due to conditional logic |
| Continue | Processing continued to the next processor |
| Dropped | Event was dropped by the processor |
| Return | Processing returned early from the pipeline |
Viewing Results
The debugger displays input and output in a side-by-side layout, enabling direct comparison of data before and after processing. This parallel view simplifies identification of changes at each pipeline stage. Click a processor node to view its specific output.
Click
Rerouted Runs
When a run sends a record through a smart-routing pack's reroute processor,
- The status in the debugger toolbar reads Rerouted instead of Dropped or Completed, and the size figure beside it is hidden.
- The
Output header shows a switch: Default, followed by one entry per rerouted record, named after the reroute's table or stream (for the ASIM packs, the table name —ASimNetworkSessionLogs,ASimWebSessionLogs) — or its target when it names none. Selecting an entry shows that record inOutput ; the size figure next to the switch belongs to whichever output is selected. The same switch appears in the diff view's header. - Several copies of the same record sent to different targets under one table name are listed once.
- A dropped record shows
{}inOutput .
Failed Runs
In
Workflow
- Select or enter test data using one of the dataset providers
- Configure environment variables if needed for conditional processing
- Click
Run to execute the pipeline - Review node status indicators to identify processing results
- Click individual nodes to inspect their output
- Use
Switch to diff view to compare transformations - Iterate on pipeline configuration based on test results