Vixen
02b45cc4
csharp
public sealed class TransferMetrics

What transfers are costing. Doc 27 § Tick rebasing's four numbers.

Read the guide page for this →

Remarks

⚠ A transfer that degrades is one that stops being seamless quietly, which is the whole argument for measuring it. The overlap getting longer is a content-delivery problem; the commit latency getting longer is a control-plane problem; the abort histogram growing a new tallest bar is whichever of them just broke. None of the three is visible without the numbers, because every one of them still works — it just works worse.

Fields and properties (5)

  • public int Committed

    How many transfers finished.

  • public int Aborted

    How many did not.

  • public int PredictionResets

    How many prediction resets clients have reported.

  • public int Attempted

    How many were attempted.

  • public double SuccessRate

    The fraction that finished, or one when none has been attempted.

Methods (7)

  • public void Record(SourceTransfer transfer)

    Records a transfer that finished.

  • public void RecordResets(int count)

    Records a client's report of its own reset.

  • public int AbortsFor(TransferAbort reason)

    How many transfers gave up for a reason.

  • public IReadOnlyList<(TransferAbort Reason, int Count)> AbortHistogram()

    The abort histogram, worst first — the shape doc 27 § Diagnostics asks for.

  • public double OverlapAt(double percentile)

    How long the overlap lasts at a percentile.

  • public double CommitLatencyAt(double percentile)

    How long the whole transfer takes at a percentile.

  • public override string ToString()

    Returns a string that represents the current object.

Used by (3)

  • RealmTransfersVixen.Live.Realm
  • TransferMetricsTestsVixen.Live.Transfer.Tests
  • TransferOracleTestsVixen.Live.Realm.Tests