373 lines
12 KiB
JSON
373 lines
12 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"mode": "live-export",
|
|
"scenarioId": "phil-kenny-one-on-one-76",
|
|
"scenarioDescription": "Captured paired export from the real phil-kenny one-on-one call that exposed mixed transport/stall pressure on one peer and severe stale-timestamp dropping on the other.",
|
|
"fixtureId": null,
|
|
"generatedAt": "2026-04-26T13:13:47.160Z",
|
|
"seed": null,
|
|
"pairedAnalysis": {
|
|
"peerA": {
|
|
"addr": "peer-A",
|
|
"role": "root-forwarder",
|
|
"primaryClass": "mixed",
|
|
"secondaryClass": "transport-dominated",
|
|
"provisionalBars": [
|
|
{
|
|
"metric": "packetsDroppedPendingDecryptRatePerSec",
|
|
"observed": 0,
|
|
"threshold": 1,
|
|
"operator": "<",
|
|
"passed": true,
|
|
"description": "Decrypt drop rate < 1.0/s (decrypt pass bar)"
|
|
},
|
|
{
|
|
"metric": "playoutUnderTargetFraction",
|
|
"observed": 0.481,
|
|
"threshold": 0.35,
|
|
"operator": "<=",
|
|
"passed": false,
|
|
"description": "Under-target fraction ≤ 0.35 (provisional jitter pass)"
|
|
},
|
|
{
|
|
"metric": "playoutOutsideTargetFraction",
|
|
"observed": 0.689,
|
|
"threshold": 0.5,
|
|
"operator": "<=",
|
|
"passed": false,
|
|
"description": "Outside-target fraction ≤ 0.5"
|
|
}
|
|
],
|
|
"passedAllBars": false,
|
|
"severity": "moderate",
|
|
"diagnosticNotes": [
|
|
"V2-managed sources: 1; using v2 jitter summary instead of legacy Opus window fields",
|
|
"Stale timestamp drops: 22 (0.71/s); inspect sourceTimestampLateness gating before playout policy tuning",
|
|
"Tick budget: 23 breaches, P95=39.7ms",
|
|
"Transport triad: bridgeHW=24, binaryHW=2",
|
|
"Stage5 boost: 23.9s"
|
|
]
|
|
},
|
|
"peerB": {
|
|
"addr": "peer-B",
|
|
"role": "standby-forwarder",
|
|
"primaryClass": "policy-dominated",
|
|
"provisionalBars": [
|
|
{
|
|
"metric": "packetsDroppedPendingDecryptRatePerSec",
|
|
"observed": 0,
|
|
"threshold": 1,
|
|
"operator": "<",
|
|
"passed": true,
|
|
"description": "Decrypt drop rate < 1.0/s (decrypt pass bar)"
|
|
},
|
|
{
|
|
"metric": "playoutUnderTargetFraction",
|
|
"observed": 0.538,
|
|
"threshold": 0.35,
|
|
"operator": "<=",
|
|
"passed": false,
|
|
"description": "Under-target fraction ≤ 0.35 (provisional jitter pass)"
|
|
},
|
|
{
|
|
"metric": "playoutOutsideTargetFraction",
|
|
"observed": 0.975,
|
|
"threshold": 0.5,
|
|
"operator": "<=",
|
|
"passed": false,
|
|
"description": "Outside-target fraction ≤ 0.5"
|
|
}
|
|
],
|
|
"passedAllBars": false,
|
|
"severity": "mild",
|
|
"diagnosticNotes": [
|
|
"V2-managed sources: 1; using v2 jitter summary instead of legacy Opus window fields",
|
|
"Stale timestamp drops: 947 (32.47/s); inspect sourceTimestampLateness gating before playout policy tuning",
|
|
"Policy: avgPcm=110.6ms, underTarget=54%, mode=recovery",
|
|
"Stage5 boost: 24.0s"
|
|
]
|
|
},
|
|
"bothPassed": false,
|
|
"worseAddr": "peer-A",
|
|
"qualityScore": 3.0760000000000005,
|
|
"callSummary": "[Poor 3.1/10] ONE OR BOTH PEERS FAIL — peer-A (root-forwarder): mixed, severity=moderate; peer-B (standby-forwarder): policy-dominated, severity=mild"
|
|
},
|
|
"firstDegradedPeer": "peer-A",
|
|
"firstDegradedStage": null,
|
|
"likelyFixSurfaces": [
|
|
"mixed",
|
|
"transport-dominated",
|
|
"policy-dominated"
|
|
],
|
|
"peerA": {
|
|
"addr": "peer-A",
|
|
"role": "root-forwarder",
|
|
"senderProfileId": "live-export",
|
|
"senderProfileLabel": "Live export",
|
|
"impairmentSummary": "Imported from a live paired diagnostics export.",
|
|
"metrics": {
|
|
"avgPcmBufferedMs": 90.851,
|
|
"avgPlayoutDeltaMs": 0,
|
|
"playoutUnderTargetFraction": 0.481,
|
|
"playoutOutsideTargetFraction": 0.689,
|
|
"playoutRateFractionBelow1": 0.665,
|
|
"jitterUnderruns": 0,
|
|
"missingFrames": 0,
|
|
"concealmentTicks": 130,
|
|
"packetsDroppedStaleTimestamp": 22,
|
|
"packetsDroppedStaleTimestampRatePerSec": 0.7110996185920228,
|
|
"packetsDroppedPendingDecrypt": 0,
|
|
"packetsDroppedPendingDecryptRatePerSec": 0,
|
|
"pendingDecryptDepthHighWater": 0,
|
|
"reticulumAudioBridgeQueuedFramesHighWater": 24,
|
|
"reticulumAudioBinaryOutQueueDepthHighWater": 2,
|
|
"reticulumAudioBridgeWaitingForDrain": false,
|
|
"reticulumAudioQueuePressureDrops": 13,
|
|
"reticulumAudioStaleDrops": 0,
|
|
"avgOpusBufferedMs": 0,
|
|
"maxOpusBufferedMs": 0,
|
|
"adaptiveTargetMedianMs": 120,
|
|
"wasmFecDeferredPcmTicks": 0,
|
|
"durationMs": 30938,
|
|
"adaptiveNetworkMode": "recovery",
|
|
"playoutStarvationWorstSeverity": "none",
|
|
"gcallAudioStage5BoostCumulativeMs": 23885,
|
|
"tickBudgetBreachCount": 23,
|
|
"tickBudgetBreachP95Ms": 39.7,
|
|
"tickBudgetBreachMaxMs": 45.8,
|
|
"longTaskCount": 0,
|
|
"role": "root-forwarder",
|
|
"v2ManagedSourceCount": 1,
|
|
"legacyWindowOpusMetricsMeaningful": false,
|
|
"avgPcmRingBufferedMs": 74.71582557569819,
|
|
"avgPcmRingOldestFrameAgeMs": 0,
|
|
"maxPcmRingOldestFrameAgeMs": 0,
|
|
"stalePcmDrops": 0,
|
|
"avgTargetBufferMs": 120
|
|
},
|
|
"timeline": {
|
|
"firstIssueAtMs": null,
|
|
"firstIssueStage": "playout",
|
|
"arrival": {
|
|
"firstIssueAtMs": null,
|
|
"totalPackets": 0,
|
|
"deliveredPackets": 0,
|
|
"droppedPackets": 0,
|
|
"dropRate": 0,
|
|
"staleTimestampDrops": 0,
|
|
"maxExcessLatenessMs": 0,
|
|
"maxTimestampRegressionMs": 0
|
|
},
|
|
"jitter": {
|
|
"firstIssueAtMs": null,
|
|
"avgBufferedMs": 0,
|
|
"maxBufferedMs": 0,
|
|
"maxDepthFrames": 0
|
|
},
|
|
"decode": {
|
|
"firstIssueAtMs": null,
|
|
"framesDecoded": 0,
|
|
"concealmentFrames": 130,
|
|
"concealmentTicks": 130
|
|
},
|
|
"pcmRing": {
|
|
"firstIssueAtMs": null,
|
|
"avgBufferedMs": 74.71582557569819,
|
|
"minBufferedMs": 90.851,
|
|
"maxBufferedMs": 74.71582557569819,
|
|
"underruns": 0,
|
|
"overruns": 0
|
|
},
|
|
"playout": {
|
|
"firstIssueAtMs": null,
|
|
"avgDeltaMs": 0,
|
|
"underTargetFraction": 0.481,
|
|
"outsideTargetFraction": 0.689,
|
|
"targetBufferMs": 120
|
|
},
|
|
"perf": {
|
|
"tickBudgetBreachCount": 23,
|
|
"tickBudgetBreachP95Ms": 39.7,
|
|
"tickBudgetBreachMaxMs": 45.8,
|
|
"longTaskCount": 0
|
|
}
|
|
},
|
|
"stateTransitions": [],
|
|
"classification": {
|
|
"addr": "peer-A",
|
|
"role": "root-forwarder",
|
|
"primaryClass": "mixed",
|
|
"secondaryClass": "transport-dominated",
|
|
"provisionalBars": [
|
|
{
|
|
"metric": "packetsDroppedPendingDecryptRatePerSec",
|
|
"observed": 0,
|
|
"threshold": 1,
|
|
"operator": "<",
|
|
"passed": true,
|
|
"description": "Decrypt drop rate < 1.0/s (decrypt pass bar)"
|
|
},
|
|
{
|
|
"metric": "playoutUnderTargetFraction",
|
|
"observed": 0.481,
|
|
"threshold": 0.35,
|
|
"operator": "<=",
|
|
"passed": false,
|
|
"description": "Under-target fraction ≤ 0.35 (provisional jitter pass)"
|
|
},
|
|
{
|
|
"metric": "playoutOutsideTargetFraction",
|
|
"observed": 0.689,
|
|
"threshold": 0.5,
|
|
"operator": "<=",
|
|
"passed": false,
|
|
"description": "Outside-target fraction ≤ 0.5"
|
|
}
|
|
],
|
|
"passedAllBars": false,
|
|
"severity": "moderate",
|
|
"diagnosticNotes": [
|
|
"V2-managed sources: 1; using v2 jitter summary instead of legacy Opus window fields",
|
|
"Stale timestamp drops: 22 (0.71/s); inspect sourceTimestampLateness gating before playout policy tuning",
|
|
"Tick budget: 23 breaches, P95=39.7ms",
|
|
"Transport triad: bridgeHW=24, binaryHW=2",
|
|
"Stage5 boost: 23.9s"
|
|
]
|
|
}
|
|
},
|
|
"peerB": {
|
|
"addr": "peer-B",
|
|
"role": "standby-forwarder",
|
|
"senderProfileId": "live-export",
|
|
"senderProfileLabel": "Live export",
|
|
"impairmentSummary": "Imported from a live paired diagnostics export.",
|
|
"metrics": {
|
|
"avgPcmBufferedMs": 110.566,
|
|
"avgPlayoutDeltaMs": 0,
|
|
"playoutUnderTargetFraction": 0.538,
|
|
"playoutOutsideTargetFraction": 0.975,
|
|
"playoutRateFractionBelow1": 0.559,
|
|
"jitterUnderruns": 3,
|
|
"missingFrames": 10,
|
|
"concealmentTicks": 566,
|
|
"packetsDroppedStaleTimestamp": 947,
|
|
"packetsDroppedStaleTimestampRatePerSec": 32.46708721887,
|
|
"packetsDroppedPendingDecrypt": 0,
|
|
"packetsDroppedPendingDecryptRatePerSec": 0,
|
|
"pendingDecryptDepthHighWater": 0,
|
|
"reticulumAudioBridgeQueuedFramesHighWater": 10,
|
|
"reticulumAudioBinaryOutQueueDepthHighWater": 2,
|
|
"reticulumAudioBridgeWaitingForDrain": false,
|
|
"reticulumAudioQueuePressureDrops": 0,
|
|
"reticulumAudioStaleDrops": 0,
|
|
"avgOpusBufferedMs": 214.28,
|
|
"maxOpusBufferedMs": 0,
|
|
"adaptiveTargetMedianMs": 120,
|
|
"wasmFecDeferredPcmTicks": 17,
|
|
"durationMs": 29168,
|
|
"adaptiveNetworkMode": "recovery",
|
|
"playoutStarvationWorstSeverity": "none",
|
|
"gcallAudioStage5BoostCumulativeMs": 23999,
|
|
"tickBudgetBreachCount": 0,
|
|
"tickBudgetBreachP95Ms": 0,
|
|
"tickBudgetBreachMaxMs": 0,
|
|
"longTaskCount": 0,
|
|
"role": "standby-forwarder",
|
|
"v2ManagedSourceCount": 1,
|
|
"legacyWindowOpusMetricsMeaningful": false,
|
|
"avgPcmRingBufferedMs": 37.891373801916934,
|
|
"avgPcmRingOldestFrameAgeMs": 0,
|
|
"maxPcmRingOldestFrameAgeMs": 0,
|
|
"stalePcmDrops": 0,
|
|
"avgTargetBufferMs": 120
|
|
},
|
|
"timeline": {
|
|
"firstIssueAtMs": null,
|
|
"firstIssueStage": "pcm-ring",
|
|
"arrival": {
|
|
"firstIssueAtMs": null,
|
|
"totalPackets": 0,
|
|
"deliveredPackets": 0,
|
|
"droppedPackets": 0,
|
|
"dropRate": 0,
|
|
"staleTimestampDrops": 0,
|
|
"maxExcessLatenessMs": 0,
|
|
"maxTimestampRegressionMs": 0
|
|
},
|
|
"jitter": {
|
|
"firstIssueAtMs": null,
|
|
"avgBufferedMs": 214.28,
|
|
"maxBufferedMs": 0,
|
|
"maxDepthFrames": 0
|
|
},
|
|
"decode": {
|
|
"firstIssueAtMs": null,
|
|
"framesDecoded": 0,
|
|
"concealmentFrames": 566,
|
|
"concealmentTicks": 566
|
|
},
|
|
"pcmRing": {
|
|
"firstIssueAtMs": null,
|
|
"avgBufferedMs": 37.891373801916934,
|
|
"minBufferedMs": 110.566,
|
|
"maxBufferedMs": 37.891373801916934,
|
|
"underruns": 3,
|
|
"overruns": 0
|
|
},
|
|
"playout": {
|
|
"firstIssueAtMs": null,
|
|
"avgDeltaMs": 0,
|
|
"underTargetFraction": 0.538,
|
|
"outsideTargetFraction": 0.975,
|
|
"targetBufferMs": 120
|
|
},
|
|
"perf": {
|
|
"tickBudgetBreachCount": 0,
|
|
"tickBudgetBreachP95Ms": 0,
|
|
"tickBudgetBreachMaxMs": 0,
|
|
"longTaskCount": 0
|
|
}
|
|
},
|
|
"stateTransitions": [],
|
|
"classification": {
|
|
"addr": "peer-B",
|
|
"role": "standby-forwarder",
|
|
"primaryClass": "policy-dominated",
|
|
"provisionalBars": [
|
|
{
|
|
"metric": "packetsDroppedPendingDecryptRatePerSec",
|
|
"observed": 0,
|
|
"threshold": 1,
|
|
"operator": "<",
|
|
"passed": true,
|
|
"description": "Decrypt drop rate < 1.0/s (decrypt pass bar)"
|
|
},
|
|
{
|
|
"metric": "playoutUnderTargetFraction",
|
|
"observed": 0.538,
|
|
"threshold": 0.35,
|
|
"operator": "<=",
|
|
"passed": false,
|
|
"description": "Under-target fraction ≤ 0.35 (provisional jitter pass)"
|
|
},
|
|
{
|
|
"metric": "playoutOutsideTargetFraction",
|
|
"observed": 0.975,
|
|
"threshold": 0.5,
|
|
"operator": "<=",
|
|
"passed": false,
|
|
"description": "Outside-target fraction ≤ 0.5"
|
|
}
|
|
],
|
|
"passedAllBars": false,
|
|
"severity": "mild",
|
|
"diagnosticNotes": [
|
|
"V2-managed sources: 1; using v2 jitter summary instead of legacy Opus window fields",
|
|
"Stale timestamp drops: 947 (32.47/s); inspect sourceTimestampLateness gating before playout policy tuning",
|
|
"Policy: avgPcm=110.6ms, underTarget=54%, mode=recovery",
|
|
"Stage5 boost: 24.0s"
|
|
]
|
|
}
|
|
}
|
|
}
|