Bug 1561923 - Remove expired WebRTC telemetry; r=drno,bwc

Differential Revision: https://phabricator.services.mozilla.com/D37757

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Dan Minor 2019-07-31 19:57:55 +00:00
Родитель f94b0ec315
Коммит 97c5db53eb
23 изменённых файлов: 18 добавлений и 559 удалений

Просмотреть файл

@ -2360,34 +2360,6 @@ RefPtr<MediaManager::StreamPromise> MediaManager::GetUserMedia(
docURI->SchemeIs("file", &isFile);
bool isApp;
docURI->SchemeIs("app", &isApp);
// Same localhost check as ServiceWorkers uses
// (see IsOriginPotentiallyTrustworthy())
bool isLocalhost =
NS_SUCCEEDED(rv) && (host.LowerCaseEqualsLiteral("localhost") ||
host.LowerCaseEqualsLiteral("127.0.0.1") ||
host.LowerCaseEqualsLiteral("::1"));
// Record telemetry about whether the source of the call was secure, i.e.,
// privileged or HTTPS. We may handle other cases
if (privileged) {
Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
(uint32_t)GetUserMediaSecurityState::Privileged);
} else if (isHTTPS) {
Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
(uint32_t)GetUserMediaSecurityState::HTTPS);
} else if (isFile) {
Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
(uint32_t)GetUserMediaSecurityState::File);
} else if (isApp) {
Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
(uint32_t)GetUserMediaSecurityState::App);
} else if (isLocalhost) {
Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
(uint32_t)GetUserMediaSecurityState::Localhost);
} else {
Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
(uint32_t)GetUserMediaSecurityState::Other);
}
nsCOMPtr<nsIPrincipal> principal =
nsGlobalWindowInner::Cast(aWindow)->GetPrincipal();

Просмотреть файл

@ -2117,29 +2117,6 @@ class PeerConnectionObserver {
if (pc.iceConnectionState === iceConnectionState) {
return;
}
if (pc.iceConnectionState === "new") {
var checking_histogram = Services.telemetry.getHistogramById(
"WEBRTC_ICE_CHECKING_RATE"
);
if (iceConnectionState === "checking") {
checking_histogram.add(true);
} else if (iceConnectionState === "failed") {
checking_histogram.add(false);
}
} else if (pc.iceConnectionState === "checking") {
var success_histogram = Services.telemetry.getHistogramById(
"WEBRTC_ICE_SUCCESS_RATE"
);
if (
iceConnectionState === "completed" ||
iceConnectionState === "connected"
) {
success_histogram.add(true);
pc._pcTelemetry.recordConnected();
} else if (iceConnectionState === "failed") {
success_histogram.add(false);
}
}
if (iceConnectionState === "failed") {
if (!pc._hasStunServer) {

Просмотреть файл

@ -44,7 +44,6 @@ class MediaTransportParent : public dom::PMediaTransportParent {
mozilla::ipc::IPCResult RecvRemoveTransportsExcept(
const StringVector& transportIds);
mozilla::ipc::IPCResult RecvStartIceChecks(const bool& isControlling,
const bool& isOfferer,
const StringVector& iceOptions);
mozilla::ipc::IPCResult RecvSendPacket(const string& transportId,
const MediaPacket& packet);

Просмотреть файл

@ -76,7 +76,6 @@ parent:
async RemoveTransportsExcept(StringVector transportIds);
async StartIceChecks(bool isControlling,
bool isOfferer,
StringVector iceOptions);
async SendPacket(string transportId, MediaPacket packet);

Просмотреть файл

@ -44,7 +44,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <vector>
#include "nr_socket_proxy_config.h"
#include "mozilla/Telemetry.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/Unused.h"
@ -266,7 +265,6 @@ NrIceCtx::NrIceCtx(const std::string& name, Policy policy)
: connection_state_(ICE_CTX_INIT),
gathering_state_(ICE_CTX_GATHER_INIT),
name_(name),
offerer_(false),
ice_controlling_set_(false),
streams_(),
ctx_(nullptr),
@ -735,40 +733,6 @@ NrIceStats NrIceCtx::Destroy() {
stats.turn_438s = ctx_->stats.turn_438s;
}
if (!ice_start_time_.IsNull()) {
TimeDuration time_delta = TimeStamp::Now() - ice_start_time_;
ice_start_time_ = TimeStamp(); // null out
if (offerer_) {
Telemetry::Accumulate(Telemetry::WEBRTC_ICE_OFFERER_ABORT_TIME,
time_delta.ToMilliseconds());
} else {
Telemetry::Accumulate(Telemetry::WEBRTC_ICE_ANSWERER_ABORT_TIME,
time_delta.ToMilliseconds());
}
unsigned char rate_limit_bit_pattern = 0;
if (!mozilla::nr_socket_short_term_violation_time().IsNull() &&
mozilla::nr_socket_short_term_violation_time() >= ice_start_time_) {
rate_limit_bit_pattern |= 1;
}
if (!mozilla::nr_socket_long_term_violation_time().IsNull() &&
mozilla::nr_socket_long_term_violation_time() >= ice_start_time_) {
rate_limit_bit_pattern |= 2;
}
if (connection_state_ == ICE_CTX_FAILED) {
Telemetry::Accumulate(
Telemetry::WEBRTC_STUN_RATE_LIMIT_EXCEEDED_BY_TYPE_GIVEN_FAILURE,
rate_limit_bit_pattern);
} else if (connection_state_ == ICE_CTX_CONNECTED ||
connection_state_ == ICE_CTX_COMPLETED) {
Telemetry::Accumulate(
Telemetry::WEBRTC_STUN_RATE_LIMIT_EXCEEDED_BY_TYPE_GIVEN_SUCCESS,
rate_limit_bit_pattern);
}
}
if (peer_) {
nr_ice_peer_ctx_destroy(&peer_);
}
@ -899,7 +863,6 @@ nsresult NrIceCtx::StartGathering(bool default_route_only, bool proxy_only) {
SetCtxFlags(default_route_only, proxy_only);
TimeStamp start = TimeStamp::Now();
// This might start gathering for the first time, or again after
// renegotiation, or might do nothing at all if gathering has already
// finished.
@ -907,18 +870,11 @@ nsresult NrIceCtx::StartGathering(bool default_route_only, bool proxy_only) {
if (!r) {
SetGatheringState(ICE_CTX_GATHER_COMPLETE);
Telemetry::AccumulateTimeDelta(
Telemetry::WEBRTC_ICE_NR_ICE_GATHER_TIME_IMMEDIATE_SUCCESS, start);
} else if (r != R_WOULDBLOCK) {
MOZ_MTLOG(ML_ERROR, "ICE FAILED: Couldn't gather ICE candidates for '"
<< name_ << "', error=" << r);
SetConnectionState(ICE_CTX_FAILED);
Telemetry::AccumulateTimeDelta(
Telemetry::WEBRTC_ICE_NR_ICE_GATHER_TIME_IMMEDIATE_FAILURE, start);
return NS_ERROR_FAILURE;
} else {
Telemetry::AccumulateTimeDelta(Telemetry::WEBRTC_ICE_NR_ICE_GATHER_TIME,
start);
}
return NS_OK;
@ -983,16 +939,13 @@ bool NrIceCtx::HasStreamsToConnect() const {
return false;
}
nsresult NrIceCtx::StartChecks(bool offerer) {
nsresult NrIceCtx::StartChecks() {
int r;
if (!HasStreamsToConnect()) {
// Nothing to do
return NS_OK;
}
offerer_ = offerer;
ice_start_time_ = TimeStamp::Now();
r = nr_ice_peer_ctx_pair_candidates(peer_);
if (r) {
MOZ_MTLOG(ML_ERROR, "ICE FAILED: Couldn't pair candidates on " << name_);
@ -1050,44 +1003,6 @@ void NrIceCtx::UpdateNetworkState(bool online) {
void NrIceCtx::SetConnectionState(ConnectionState state) {
if (state == connection_state_) return;
if (!ice_start_time_.IsNull() && (state > ICE_CTX_CHECKING)) {
TimeDuration time_delta = TimeStamp::Now() - ice_start_time_;
ice_start_time_ = TimeStamp();
switch (state) {
case ICE_CTX_INIT:
case ICE_CTX_CHECKING:
MOZ_CRASH();
break;
case ICE_CTX_CONNECTED:
case ICE_CTX_COMPLETED:
if (offerer_) {
Telemetry::Accumulate(Telemetry::WEBRTC_ICE_OFFERER_SUCCESS_TIME,
time_delta.ToMilliseconds());
} else {
Telemetry::Accumulate(Telemetry::WEBRTC_ICE_ANSWERER_SUCCESS_TIME,
time_delta.ToMilliseconds());
}
break;
case ICE_CTX_FAILED:
if (offerer_) {
Telemetry::Accumulate(Telemetry::WEBRTC_ICE_OFFERER_FAILURE_TIME,
time_delta.ToMilliseconds());
} else {
Telemetry::Accumulate(Telemetry::WEBRTC_ICE_ANSWERER_FAILURE_TIME,
time_delta.ToMilliseconds());
}
break;
case ICE_CTX_DISCONNECTED:
// We get this every time an ICE disconnect gets reported.
// Do we want a Telemetry probe counting how often this happens?
break;
case ICE_CTX_CLOSED:
// This doesn't seem to be used...
break;
}
}
MOZ_MTLOG(ML_INFO, "NrIceCtx(" << name_ << "): state " << connection_state_
<< "->" << state);
connection_state_ = state;

Просмотреть файл

@ -60,7 +60,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "prnetdb.h"
#include "mozilla/RefPtr.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/UniquePtr.h"
#include "nsAutoPtr.h"
#include "nsIEventTarget.h"
@ -89,11 +88,6 @@ namespace mozilla {
class NrSocketProxyConfig;
// Timestamps set whenever a packet is dropped due to global rate limiting
// (see nr_socket_prsock.cpp)
TimeStamp nr_socket_short_term_violation_time();
TimeStamp nr_socket_long_term_violation_time();
class NrIceMediaStream;
extern const char kNrIceTransportUdp[];
@ -318,7 +312,7 @@ class NrIceCtx {
nsresult StartGathering(bool default_route_only, bool proxy_only);
// Start checking
nsresult StartChecks(bool offerer);
nsresult StartChecks();
// Notify that the network has gone online/offline
void UpdateNetworkState(bool online);
@ -383,8 +377,6 @@ class NrIceCtx {
ConnectionState connection_state_;
GatheringState gathering_state_;
const std::string name_;
bool offerer_;
TimeStamp ice_start_time_;
bool ice_controlling_set_;
std::map<std::string, RefPtr<NrIceMediaStream>> streams_;
nr_ice_ctx* ctx_;

Просмотреть файл

@ -757,7 +757,7 @@ class IceTestPeer : public sigslot::has_slots<> {
ice_ctx_->SetControlling(offerer_ ? NrIceCtx::ICE_CONTROLLING
: NrIceCtx::ICE_CONTROLLED);
// Now start checks
res = ice_ctx_->StartChecks(offerer_);
res = ice_ctx_->StartChecks();
ASSERT_TRUE(NS_SUCCEEDED(res));
}
}
@ -952,7 +952,7 @@ class IceTestPeer : public sigslot::has_slots<> {
NS_DISPATCH_SYNC);
// Now start checks
test_utils_->sts_target()->Dispatch(
WrapRunnableRet(&res, ice_ctx_, &NrIceCtx::StartChecks, offerer_),
WrapRunnableRet(&res, ice_ctx_, &NrIceCtx::StartChecks),
NS_DISPATCH_SYNC);
ASSERT_TRUE(NS_SUCCEEDED(res));
}

Просмотреть файл

@ -676,8 +676,7 @@ class TransportTestPeer : public sigslot::has_slots<> {
// Start checks on the other peer.
test_utils_->sts_target()->Dispatch(
WrapRunnableRet(&res, peer_->ice_ctx_, &NrIceCtx::StartChecks,
offerer_),
WrapRunnableRet(&res, peer_->ice_ctx_, &NrIceCtx::StartChecks),
NS_DISPATCH_SYNC);
ASSERT_TRUE(NS_SUCCEEDED(res));
}

Просмотреть файл

@ -1057,15 +1057,11 @@ void TransportLayerDtls::SetState(State state, const char* file,
MOZ_ASSERT(false);
break;
case TS_CONNECTING:
handshake_started_ = TimeStamp::Now();
break;
case TS_OPEN:
case TS_CLOSED:
case TS_ERROR:
timer_->Cancel();
if (state_ == TS_CONNECTING) {
RecordHandshakeCompletionTelemetry(state);
}
break;
}
}
@ -1458,41 +1454,6 @@ void TransportLayerDtls::TimerCallback(nsITimer* timer, void* arg) {
dtls->Handshake();
}
void TransportLayerDtls::RecordHandshakeCompletionTelemetry(
TransportLayer::State endState) {
int32_t delta = (TimeStamp::Now() - handshake_started_).ToMilliseconds();
switch (endState) {
case TransportLayer::State::TS_OPEN:
if (role_ == TransportLayerDtls::CLIENT) {
Telemetry::Accumulate(Telemetry::WEBRTC_DTLS_CLIENT_SUCCESS_TIME,
delta);
} else {
Telemetry::Accumulate(Telemetry::WEBRTC_DTLS_SERVER_SUCCESS_TIME,
delta);
}
return;
case TransportLayer::State::TS_ERROR:
if (role_ == TransportLayerDtls::CLIENT) {
Telemetry::Accumulate(Telemetry::WEBRTC_DTLS_CLIENT_FAILURE_TIME,
delta);
} else {
Telemetry::Accumulate(Telemetry::WEBRTC_DTLS_SERVER_FAILURE_TIME,
delta);
}
return;
case TransportLayer::State::TS_CLOSED:
if (role_ == TransportLayerDtls::CLIENT) {
Telemetry::Accumulate(Telemetry::WEBRTC_DTLS_CLIENT_ABORT_TIME, delta);
} else {
Telemetry::Accumulate(Telemetry::WEBRTC_DTLS_SERVER_ABORT_TIME, delta);
}
return;
default:
MOZ_ASSERT(false);
}
}
void TransportLayerDtls::RecordTlsTelemetry() {
MOZ_ASSERT(state_ == TS_OPEN);
SSLChannelInfo info;

Просмотреть файл

@ -168,7 +168,6 @@ class TransportLayerDtls final : public TransportLayer {
nsCOMPtr<nsITimer> timer_ = nullptr;
bool auth_hook_called_ = false;
bool cert_ok_ = false;
TimeStamp handshake_started_;
};
} // namespace mozilla

Просмотреть файл

@ -182,7 +182,7 @@ class LoopbackTransport : public MediaTransportHandler {
void RemoveTransportsExcept(
const std::set<std::string>& aTransportIds) override {}
void StartIceChecks(bool aIsControlling, bool aIsOfferer,
void StartIceChecks(bool aIsControlling,
const std::vector<std::string>& aIceOptions) override {}
void AddIceCandidate(const std::string& aTransportId,

Просмотреть файл

@ -1050,11 +1050,6 @@ nsresult JsepSessionImpl::MakeNegotiatedTransceiver(
MOZ_MTLOG(ML_DEBUG, "[" << mName << "]: RTCP-MUX is off");
}
if (local.GetMediaType() != SdpMediaSection::kApplication) {
Telemetry::Accumulate(Telemetry::WEBRTC_RTCP_MUX,
transceiver->mTransport.mComponents == 1);
}
return NS_OK;
}

Просмотреть файл

@ -103,7 +103,7 @@ class MediaTransportHandlerSTS : public MediaTransportHandler,
void RemoveTransportsExcept(
const std::set<std::string>& aTransportIds) override;
void StartIceChecks(bool aIsControlling, bool aIsOfferer,
void StartIceChecks(bool aIsControlling,
const std::vector<std::string>& aIceOptions) override;
void AddIceCandidate(const std::string& aTransportId,
@ -689,8 +689,7 @@ void MediaTransportHandlerSTS::StartIceGathering(
}
void MediaTransportHandlerSTS::StartIceChecks(
bool aIsControlling, bool aIsOfferer,
const std::vector<std::string>& aIceOptions) {
bool aIsControlling, const std::vector<std::string>& aIceOptions) {
mInitPromise->Then(
mStsThread, __func__,
[=, self = RefPtr<MediaTransportHandlerSTS>(this)]() {
@ -709,7 +708,7 @@ void MediaTransportHandlerSTS::StartIceChecks(
return;
}
rv = mIceCtx->StartChecks(aIsOfferer);
rv = mIceCtx->StartChecks();
if (NS_FAILED(rv)) {
CSFLogError(LOGTAG, "%s: couldn't start checks", __FUNCTION__);
return;

Просмотреть файл

@ -101,7 +101,7 @@ class MediaTransportHandler {
virtual void RemoveTransportsExcept(
const std::set<std::string>& aTransportIds) = 0;
virtual void StartIceChecks(bool aIsControlling, bool aIsOfferer,
virtual void StartIceChecks(bool aIsControlling,
const std::vector<std::string>& aIceOptions) = 0;
virtual void SendPacket(const std::string& aTransportId,

Просмотреть файл

@ -249,13 +249,12 @@ void MediaTransportHandlerIPC::RemoveTransportsExcept(
}
void MediaTransportHandlerIPC::StartIceChecks(
bool aIsControlling, bool aIsOfferer,
const std::vector<std::string>& aIceOptions) {
bool aIsControlling, const std::vector<std::string>& aIceOptions) {
mInitPromise->Then(
mCallbackThread, __func__,
[=, self = RefPtr<MediaTransportHandlerIPC>(this)](bool /*dummy*/) {
if (mChild) {
mChild->SendStartIceChecks(aIsControlling, aIsOfferer, aIceOptions);
mChild->SendStartIceChecks(aIsControlling, aIceOptions);
}
},
[](const nsCString& aError) {});

Просмотреть файл

@ -59,7 +59,7 @@ class MediaTransportHandlerIPC : public MediaTransportHandler {
void RemoveTransportsExcept(
const std::set<std::string>& aTransportIds) override;
void StartIceChecks(bool aIsControlling, bool aIsOfferer,
void StartIceChecks(bool aIsControlling,
const std::vector<std::string>& aIceOptions) override;
void SendPacket(const std::string& aTransportId,

Просмотреть файл

@ -184,9 +184,8 @@ mozilla::ipc::IPCResult MediaTransportParent::RecvRemoveTransportsExcept(
}
mozilla::ipc::IPCResult MediaTransportParent::RecvStartIceChecks(
const bool& isControlling, const bool& isOfferer,
const StringVector& iceOptions) {
mImpl->mHandler->StartIceChecks(isControlling, isOfferer, iceOptions);
const bool& isControlling, const StringVector& iceOptions) {
mImpl->mHandler->StartIceChecks(isControlling, iceOptions);
return ipc::IPCResult::Ok();
}

Просмотреть файл

@ -308,7 +308,6 @@ PeerConnectionImpl::PeerConnectionImpl(const GlobalObject* aGlobal)
mIceRestartCount(0),
mIceRollbackCount(0),
mHaveConfiguredCodecs(false),
mAddCandidateErrorCount(0),
mTrickle(true) // TODO(ekr@rtfm.com): Use pref
,
mPrivateWindow(false),
@ -1508,20 +1507,6 @@ PeerConnectionImpl::AddIceCandidate(
CSFLogDebug(LOGTAG, "AddIceCandidate: %s %s", aCandidate, aUfrag);
// When remote candidates are added before our ICE ctx is up and running
// (the transition to New is async through STS, so this is not impossible),
// we won't record them as trickle candidates. Is this what we want?
if (!mIceStartTime.IsNull()) {
TimeDuration timeDelta = TimeStamp::Now() - mIceStartTime;
if (mIceConnectionState == RTCIceConnectionState::Failed) {
Telemetry::Accumulate(Telemetry::WEBRTC_ICE_LATE_TRICKLE_ARRIVAL_TIME,
timeDelta.ToMilliseconds());
} else {
Telemetry::Accumulate(Telemetry::WEBRTC_ICE_ON_TIME_TRICKLE_ARRIVAL_TIME,
timeDelta.ToMilliseconds());
}
}
std::string transportId;
Maybe<unsigned short> level;
if (!aLevel.IsNull()) {
@ -1540,7 +1525,6 @@ PeerConnectionImpl::AddIceCandidate(
}
mPCObserver->OnAddIceCandidateSuccess(rv);
} else {
++mAddCandidateErrorCount;
std::string errorString = mJsepSession->GetLastError();
CSFLogError(LOGTAG,
@ -2412,20 +2396,6 @@ void PeerConnectionImpl::SendLocalIceCandidateToContent(
ObString(ufrag.c_str()), rv);
}
static bool isDone(RTCIceConnectionState state) {
return state != RTCIceConnectionState::Checking &&
state != RTCIceConnectionState::New;
}
static bool isSucceeded(RTCIceConnectionState state) {
return state == RTCIceConnectionState::Connected ||
state == RTCIceConnectionState::Completed;
}
static bool isFailed(RTCIceConnectionState state) {
return state == RTCIceConnectionState::Failed;
}
void PeerConnectionImpl::IceConnectionStateChange(
dom::RTCIceConnectionState domState) {
PC_AUTO_ENTER_API_CALL_VOID_RETURN(false);
@ -2438,18 +2408,6 @@ void PeerConnectionImpl::IceConnectionStateChange(
return;
}
if (!isDone(mIceConnectionState) && isDone(domState)) {
if (isSucceeded(domState)) {
Telemetry::Accumulate(
Telemetry::WEBRTC_ICE_ADD_CANDIDATE_ERRORS_GIVEN_SUCCESS,
mAddCandidateErrorCount);
} else if (isFailed(domState)) {
Telemetry::Accumulate(
Telemetry::WEBRTC_ICE_ADD_CANDIDATE_ERRORS_GIVEN_FAILURE,
mAddCandidateErrorCount);
}
}
mIceConnectionState = domState;
// Uncount this connection as active on the inner window upon close.

Просмотреть файл

@ -629,8 +629,6 @@ class PeerConnectionImpl final
bool mHaveConfiguredCodecs;
unsigned int mAddCandidateErrorCount;
bool mTrickle;
bool mPrivateWindow;

Просмотреть файл

@ -272,9 +272,9 @@ void PeerConnectionMedia::StartIceChecks(const JsepSession& aSession) {
}
}
nsCOMPtr<nsIRunnable> runnable(WrapRunnable(
mTransportHandler, &MediaTransportHandler::StartIceChecks,
aSession.IsIceControlling(), aSession.IsOfferer(), attributes));
nsCOMPtr<nsIRunnable> runnable(
WrapRunnable(mTransportHandler, &MediaTransportHandler::StartIceChecks,
aSession.IsIceControlling(), attributes));
PerformOrEnqueueIceCtxOperation(runnable);
}

Просмотреть файл

@ -1041,9 +1041,6 @@ static void StoreLongTermICEStatisticsImpl_m(nsresult result,
void WebrtcGlobalInformation::StoreLongTermICEStatistics(
PeerConnectionImpl& aPc) {
Telemetry::Accumulate(Telemetry::WEBRTC_ICE_FINAL_CONNECTION_STATE,
static_cast<uint32_t>(aPc.IceConnectionState()));
if (aPc.IceConnectionState() == RTCIceConnectionState::New) {
// ICE has not started; we won't have any remote candidates, so recording
// statistics on gathered candidates is pointless.

Просмотреть файл

@ -9929,72 +9929,6 @@
"n_values": 17,
"description": "SPS.max_num_ref_frames indicates how deep the H.264 queue is going to be, and as such the minimum memory usage by the decoder, from 0 to 16. 17 indicates an invalid value."
},
"WEBRTC_DTLS_CLIENT_SUCCESS_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-dtls-telemetry-alerts@mozilla.com"],
"bug_numbers": [1336182],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for a client DTLS handshake to complete, given that DTLS succeeded."
},
"WEBRTC_DTLS_CLIENT_ABORT_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-dtls-telemetry-alerts@mozilla.com"],
"bug_numbers": [1336182],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for a client DTLS handshake to be aborted due to some external factor (eg; PeerConnection torn down)."
},
"WEBRTC_DTLS_CLIENT_FAILURE_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-dtls-telemetry-alerts@mozilla.com"],
"bug_numbers": [1336182],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for a client DTLS handshake to complete, given that it failed."
},
"WEBRTC_DTLS_SERVER_SUCCESS_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-dtls-telemetry-alerts@mozilla.com"],
"bug_numbers": [1336182],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for a server DTLS handshake to complete, given that DTLS succeeded."
},
"WEBRTC_DTLS_SERVER_ABORT_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-dtls-telemetry-alerts@mozilla.com"],
"bug_numbers": [1336182],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for a server DTLS handshake to be aborted due to some external factor (eg; PeerConnection torn down)."
},
"WEBRTC_DTLS_SERVER_FAILURE_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-dtls-telemetry-alerts@mozilla.com"],
"bug_numbers": [1336182],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for a server DTLS handshake to complete, given that it failed."
},
"WEBRTC_DTLS_CIPHER": {
"record_in_processes": ["content"],
"products": ["firefox", "fennec", "geckoview"],
@ -10025,188 +9959,6 @@
"labels": ["Unknown", "Dtls_version_1_0", "Dtls_version_1_2", "Dtls_version_1_3"],
"description": "The DTLS protocol version (as label) negotiated for a RTCPeerConnection."
},
"WEBRTC_ICE_FINAL_CONNECTION_STATE": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"kind": "enumerated",
"n_values": 7,
"description": "The ICE connection state when the PC was closed"
},
"WEBRTC_ICE_ON_TIME_TRICKLE_ARRIVAL_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) that a trickle candidate took to arrive after the start of ICE, given that it arrived when ICE was not in a failure state (ie; a candidate that we could do something with, hence 'on time')"
},
"WEBRTC_ICE_LATE_TRICKLE_ARRIVAL_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) that a trickle candidate took to arrive after the start of ICE, given that it arrived after ICE failed."
},
"WEBRTC_ICE_OFFERER_SUCCESS_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com"],
"bug_numbers": [1342523],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for the offerer to complete ICE, given that ICE succeeded."
},
"WEBRTC_ICE_OFFERER_ABORT_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com"],
"bug_numbers": [1342523],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for the offerer to abort ICE due to some external factor (eg; PeerConnection torn down). Does not count cases where StartChecks() was never called."
},
"WEBRTC_ICE_OFFERER_FAILURE_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com"],
"bug_numbers": [1342523],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for the offerer to complete ICE, given that it failed. Does not count cases where StartChecks() was never called."
},
"WEBRTC_ICE_ANSWERER_SUCCESS_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com"],
"bug_numbers": [1342523],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for the answerer to complete ICE, given that ICE succeeded."
},
"WEBRTC_ICE_ANSWERER_ABORT_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com"],
"bug_numbers": [1342523],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for the answerer to abort ICE due to some external factor (eg; PeerConnection torn down). Does not count cases where StartChecks() was never called."
},
"WEBRTC_ICE_ANSWERER_FAILURE_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com"],
"bug_numbers": [1342523],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for the answerer to complete ICE, given that it failed. Does not count cases where StartChecks() was never called."
},
"WEBRTC_ICE_NR_ICE_GATHER_TIME": {
"record_in_processes": ["content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com", "bcampen@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took to call nr_ice_gather, given that gathering did not succeed/fail immediately during the call."
},
"WEBRTC_ICE_NR_ICE_GATHER_TIME_IMMEDIATE_FAILURE": {
"record_in_processes": ["content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com", "bcampen@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took to call nr_ice_gather, given that gathering failed immediately during the call."
},
"WEBRTC_ICE_NR_ICE_GATHER_TIME_IMMEDIATE_SUCCESS": {
"record_in_processes": ["content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com", "bcampen@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "60",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took to call nr_ice_gather, given that gathering succeeded immediately during the call."
},
"WEBRTC_ICE_SUCCESS_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for ICE to complete, given that ICE succeeded."
},
"WEBRTC_ICE_FAILURE_TIME": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "The length of time (in milliseconds) it took for ICE to complete, given that it failed."
},
"WEBRTC_ICE_SUCCESS_RATE": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"kind": "boolean",
"description": "The number of failed ICE Connections (0) vs. number of successful ICE connections (1)."
},
"WEBRTC_STUN_RATE_LIMIT_EXCEEDED_BY_TYPE_GIVEN_SUCCESS": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"kind": "enumerated",
"n_values": 4,
"description": "For each successful PeerConnection, bit 0 indicates the short-duration rate limit was reached, bit 1 indicates the long-duration rate limit was reached"
},
"WEBRTC_STUN_RATE_LIMIT_EXCEEDED_BY_TYPE_GIVEN_FAILURE": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"kind": "enumerated",
"n_values": 4,
"description": "For each failed PeerConnection, bit 0 indicates the short-duration rate limit was reached, bit 1 indicates the long-duration rate limit was reached"
},
"WEBRTC_AVSYNC_WHEN_AUDIO_LAGS_VIDEO_MS": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
@ -10526,38 +10278,6 @@
"kind": "count",
"description": "The number of calls made during a session."
},
"WEBRTC_ICE_ADD_CANDIDATE_ERRORS_GIVEN_SUCCESS": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"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": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1319268],
"expires_in_version": "62",
"kind": "linear",
"high": 30,
"n_buckets": 29,
"description": "The number of times AddIceCandidate failed on a given PeerConnection, given that ICE failed."
},
"WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["seceng-telemetry@mozilla.com"],
"expires_in_version": "60",
"kind": "enumerated",
"n_values": 15,
"description": "Origins for getUserMedia calls (0=other, 1=HTTPS, 2=file, 3=app, 4=localhost, 5=loop, 6=privileged)",
"releaseChannelCollection": "opt-out"
},
"WEBRTC_GET_USER_MEDIA_TYPE": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
@ -10685,15 +10405,6 @@
"kind": "boolean",
"description": "Was DataChannels negotiated"
},
"WEBRTC_RTCP_MUX": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"bug_numbers": [1402221],
"alert_emails": ["webrtc-telemetry-alerts@mozilla.com", "nohlmeier@mozilla.com"],
"expires_in_version": "62",
"kind": "boolean",
"description": "Was RTCP-MUX negotiated for a track"
},
"WEBRTC_CALL_TYPE": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
@ -14197,15 +13908,6 @@
"n_values": 50,
"description": "Compression ratio of WOFF2 data (%)"
},
"WEBRTC_ICE_CHECKING_RATE": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],
"alert_emails": ["webrtc-ice-telemetry-alerts@mozilla.com, nohlmeier@mozilla.com"],
"bug_numbers": [1188391,1319268],
"expires_in_version": "62",
"kind": "boolean",
"description": "The number of ICE connections which immediately failed (0) vs. reached at least checking state (1)."
},
"ALERTS_SERVICE_DND_ENABLED": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec", "geckoview"],

Просмотреть файл

@ -1130,7 +1130,6 @@
"WEBRTC_CALL_DURATION",
"WEBRTC_CALL_TYPE",
"WEBRTC_DATACHANNEL_NEGOTIATED",
"WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN",
"WEBRTC_GET_USER_MEDIA_TYPE",
"WEBRTC_LOAD_STATE_NORMAL",
"WEBRTC_LOAD_STATE_NORMAL_SHORT",