Repository navigation
Stop sending legacy raw stats in the SendStats payload - #1861
aleksandar-apostolov wants to merge 3 commits into
Conversation
Syncs signal.proto with GetStream/protocol#2116, which removed the deprecated SendStatsRequest fields. Android only populated publisher_stats and subscriber_stats; sendCallStats() no longer takes a CallStatsReport and the collectStats() calls that only existed to fill it are gone.
PR checklist ✅All required conditions are satisfied:
🎉 Great job! This PR is ready for review. |
SDK Size Comparison 📏
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (10)
💤 Files with no reviewable changes (2)
Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 0 remain after this review. WalkthroughThe PR removes per-peer stats and input-device fields from ChangesSendStats payload and reporting
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~12 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The payload reduction appears consistent across the schema, generated API, and reporting paths. No concrete merge-blocking issue is established. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 18.75% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 16 functions across 6 files. (2 skipped: 2 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. A rabbit checks the stats payload, Comment |
|



Goal
Closes AND-1612
GetStream/protocol#2116 removed the deprecated
SendStatsRequestfields:subscriber_stats(2),publisher_stats(3),audio_devices(7),video_devices(8),subscriber_rtc_stats(13),publisher_rtc_stats(14).This SDK still filled
publisher_stats/subscriber_statswith a full rawgetStats()JSON dump on every stats tick, every reconnect and on leave. Theother four were never populated. JS equivalent: GetStream/stream-video-js#2488.
Implementation
signal.protosyncs with the protocol change — fields dropped,reserved 2, 3, 7, 8, 13, 14.RtcSession.sendCallStats()loses itsreport: CallStatsReport?parameter.The
collectStats()calls insendConnectionTimeStats,prepareRejoin,CallReconnector.reconnectFast/migrateandCallLifecycleManagerexistedonly to fill it and are gone with it;
CallStatsReporter.start()keeps itscall, which is what refreshes
statsReport,statLatencyHistoryandstate.statsfor local observers.CallReconnectorno longer takesCallStatsReporter, andCall.collectStats()is removed — both were left without callers.
CallStatsReport.toJson(StreamPeerType)is deprecated rather than removed sodevelopstays source-compatible. Removal belongs ondevelop-v2.SendStatsRequestloses six getters and the widerconstructor/
copyoverloads.rtc_stats,encode_statsanddecode_statsare unchanged.Testing
33 tests, 0 failures. Not exercised against a live SFU — the payload shrinks,
and the backend already ignores the removed fields.
Summary by CodeRabbit