Forge.Sample (Forge v0.1.1)
View SourceCore data structure representing a sample in the Forge pipeline.
A sample flows through the pipeline, undergoing transformations and measurements. The sample struct tracks its data, computed measurements, and lifecycle status.
Summary
Functions
Adds measurements to the sample
Checks if sample is in dead-letter queue
Checks if sample is labeled
Marks sample for dead-letter queue with reason.
Marks sample as labeled
Marks sample as measured with current timestamp
Marks sample as ready
Marks sample as skipped
Checks if sample has been measured
Merges data into sample
Creates a new sample with the given attributes.
Checks if sample is pending
Checks if sample is ready
Checks if sample was skipped
Updates sample data
Types
@type status() :: :pending | :measured | :ready | :labeled | :skipped | :dlq
@type t() :: %Forge.Sample{ created_at: DateTime.t(), data: map(), dlq_reason: map() | nil, id: String.t(), measured_at: DateTime.t() | nil, measurements: map(), pipeline: atom(), status: status() }
Functions
Adds measurements to the sample
Checks if sample is in dead-letter queue
Checks if sample is labeled
Marks sample for dead-letter queue with reason.
Options
:stage- Stage name that failed (required):error- Error that caused failure (required):attempts- Number of attempts made (optional)
Marks sample as labeled
Marks sample as measured with current timestamp
Marks sample as ready
Marks sample as skipped
Checks if sample has been measured
Merges data into sample
Creates a new sample with the given attributes.
Options
:id- Unique identifier (required):pipeline- Pipeline name (required):data- Sample data map (required):status- Initial status (default::pending):measurements- Initial measurements map (default:%{}):created_at- Creation timestamp (default: now)
Examples
iex> Forge.Sample.new(id: "123", pipeline: :test, data: %{value: 42})
%Forge.Sample{id: "123", pipeline: :test, data: %{value: 42}, status: :pending}
Checks if sample is pending
Checks if sample is ready
Checks if sample was skipped
Updates sample data