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
executorIProbeExecutorledgerOutcomeLedgersignalersIEnumerable<ISignaler>timeProviderTimeProviderloggerILogger<ProbeRunner>onOutcomeAction<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
probeProbectCancellationToken