Bug 1017291 - Keep track of the number of errors in AddIceCandidate before ICE completes, and record this number in telemetry in the success and failure cases separately. r=ekr

This commit is contained in:
Byron Campen [:bwc] 2014-05-29 08:40:31 -07:00
parent 72cc1b277a
commit 1774026f94
3 changed files with 31 additions and 0 deletions

View File

@ -372,6 +372,7 @@ public:
break;
case ADDICECANDIDATEERROR:
mPC->OnAddIceCandidateError();
mObserver->OnAddIceCandidateError(mCode, ObString(mReason.c_str()), rv);
break;
@ -493,6 +494,7 @@ PeerConnectionImpl::PeerConnectionImpl(const GlobalObject* aGlobal)
, mNumAudioStreams(0)
, mNumVideoStreams(0)
, mHaveDataStream(false)
, mAddCandidateErrorCount(0)
, mTrickle(true) // TODO(ekr@rtfm.com): Use pref
{
#ifdef MOZILLA_INTERNAL_API
@ -1961,6 +1963,16 @@ PeerConnectionImpl::IceConnectionStateChange_m(PCImplIceConnectionState aState)
timeDelta.ToMilliseconds());
}
}
if (isSucceeded(aState)) {
Telemetry::Accumulate(
Telemetry::WEBRTC_ICE_ADD_CANDIDATE_ERRORS_GIVEN_SUCCESS,
mAddCandidateErrorCount);
} else if (isFailed(aState)) {
Telemetry::Accumulate(
Telemetry::WEBRTC_ICE_ADD_CANDIDATE_ERRORS_GIVEN_FAILURE,
mAddCandidateErrorCount);
}
}
#endif

View File

@ -528,6 +528,10 @@ public:
// is called to start the list over.
void ClearSdpParseErrorMessages();
void OnAddIceCandidateError() {
++mAddCandidateErrorCount;
}
// Called to retreive the list of parsing errors.
const std::vector<std::string> &GetSdpParseErrors();
@ -707,6 +711,7 @@ private:
// Holder for error messages from parsing SDP
std::vector<std::string> mSDPParseErrorMessages;
unsigned int mAddCandidateErrorCount;
bool mTrickle;

View File

@ -5276,6 +5276,20 @@
"n_buckets": "50",
"description": "The number of calls made during a session."
},
"WEBRTC_ICE_ADD_CANDIDATE_ERRORS_GIVEN_SUCCESS": {
"expires_in_version": "never",
"kind": "linear",
"high": "30",
"n_buckets": "29",
"description": "The number of times AddIceCandidate failed on a given PeerConnection, given that ICE succeeded."
},
"WEBRTC_ICE_ADD_CANDIDATE_ERRORS_GIVEN_FAILURE": {
"expires_in_version": "never",
"kind": "linear",
"high": "30",
"n_buckets": "29",
"description": "The number of times AddIceCandidate failed on a given PeerConnection, given that ICE failed."
},
"DEVTOOLS_DEBUGGER_RDP_LOCAL_TRACERDETACH_MS": {
"expires_in_version": "never",
"kind": "exponential",