Sinks

Where generated events are delivered.

Sinks are the output destinations for generated events. Every run writes its events through a single destination sink, specified via CLI flags at invocation time.

CLI vs Cloud. With the CLI you select a sink per run via flags (see Running locally). In Cloud, delivery is configured per target as saved pipelines.

Available Sinks

stdout (default)

Writes JSONL to standard output. Active when no destination flags are provided:

tracemill run scenario.yaml

HEC

Posts events to a Splunk HTTP Event Collector endpoint with the HEC envelope format.

tracemill run job.yaml --hec-url https://splunk:8088 --hec-token my-token
FlagRequiredDescription
--hec-urlYesSplunk HEC endpoint URL
--hec-tokenYesHEC authentication token
--hec-insecureNoSkip TLS certificate verification (self-signed dev certs only)

S3

Batches events and uploads them as objects to an S3 bucket. Supports JSONL (default) and CloudTrail formats.

tracemill run job.yaml --s3-bucket ct-ingest --s3-region us-east-1 --s3-format cloudtrail
FlagRequiredDescription
--s3-bucketYesS3 bucket name
--s3-regionNoAWS region for the bucket
--s3-prefixNoObject key prefix
--s3-formatNoOutput format: jsonl (default) or cloudtrail
--s3-org-idNoAWS Organization ID for CloudTrail org-trail path layout

TCP

Sends events over a TCP connection (e.g., to a syslog collector or SIEM).

tracemill run job.yaml --tcp-host syslog.example.com --tcp-port 514
FlagRequiredDescription
--tcp-hostYesDestination host
--tcp-portYesDestination port

HTTP

Posts events to an HTTP endpoint (e.g., a webhook or Elasticsearch bulk API).

tracemill run job.yaml --http-url https://ingest.example.com/events
FlagRequiredDescription
--http-urlYesDestination URL
--http-methodNoHTTP method: POST (default) or PUT
--http-insecureNoSkip TLS certificate verification (self-signed dev certs only)

Destination Rules

  • Destination flag groups are mutually exclusive — specify only one per invocation.
  • Jobs define what to generate (state, pools, workloads); the destination is external to the job.
  • See the CLI reference for the complete flag list.

Event Type Affinity

Some destination formats restrict which event types they accept. For example, the S3 CloudTrail format (--s3-format cloudtrail) only accepts aws.cloudtrail events. If a job produces incompatible event types, the CLI reports an error before execution starts.

JSONL Envelope

Every event emitted by Tracemill includes envelope fields:

FieldDescription
tracemill_typeEvent type identifier (id@version)
tracemill_timestampRFC 3339 with nanoseconds
tracemill_seqMonotonically increasing sequence number

These fields are always present alongside the event's own payload fields.

In Tracemill Cloud

In the CLI a sink is chosen per invocation with flags. In Tracemill Cloud, the same delivery destinations are saved as named pipelines on a target and reused across runs. Tracemill Cloud supports the HEC and S3 destinations described above; S3 additionally uses a cross-account IAM role so Tracemill can write to your bucket without shared credentials. See Pipelines for the console setup.