Class ProbeRunner

Namespace
Kuestenlogik.Bowire.Monitoring
Assembly
Kuestenlogik.Bowire.Monitoring.dll

Runs a probe once and records the outcome (#102). The pipeline per run: execute the recording → evaluate the assertions → append the outcome to the ledger → detect a pass↔fail transition against the ledger's previous row → fire every configured signaler on a transition. This is the single unit the scheduler invokes on each tick.

public sealed class ProbeRunner
Inheritance
ProbeRunner
Inherited Members

Constructors

ProbeRunner(IProbeExecutor, OutcomeLedger, IEnumerable<ISignaler>, TimeProvider, ILogger<ProbeRunner>?, Action<Probe, ProbeOutcome>?)

public ProbeRunner(IProbeExecutor executor, OutcomeLedger ledger, IEnumerable<ISignaler> signalers, TimeProvider timeProvider, ILogger<ProbeRunner>? logger = null, Action<Probe, ProbeOutcome>? onOutcome = null)

Parameters

executor IProbeExecutor
ledger OutcomeLedger
signalers IEnumerable<ISignaler>
timeProvider TimeProvider
logger ILogger<ProbeRunner>
onOutcome Action<Probe, ProbeOutcome>

Methods

RunOnceAsync(Probe, CancellationToken)

Execute the probe once, persist the outcome, and signal on a transition. Returns the recorded outcome. Signaler failures are swallowed (logged) so one bad channel never aborts the run or blocks the ledger write.

public Task<ProbeOutcome> RunOnceAsync(Probe probe, CancellationToken ct = default)

Parameters

probe Probe
ct CancellationToken

Returns

Task<ProbeOutcome>