Add more instrumentation to CallService.

// FREEBIE
pull/1/head
Matthew Chen 8 years ago
parent 904515994f
commit dd13119f12

@ -338,7 +338,7 @@ protocol CallServiceObserver: class {
// Don't let the outgoing call ring forever. We don't support inbound ringing forever anyway. // Don't let the outgoing call ring forever. We don't support inbound ringing forever anyway.
let timeout: Promise<Void> = after(interval: TimeInterval(connectingTimeoutSeconds)).then { () -> Void in let timeout: Promise<Void> = after(interval: TimeInterval(connectingTimeoutSeconds)).then { () -> Void in
// rejecting a promise by throwing is safely a no-op if the promise has already been fulfilled // rejecting a promise by throwing is safely a no-op if the promise has already been fulfilled
OWSProdInfo("call_service_error_timeout_while_connecting_outgoing", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorTimeoutWhileConnectingOutgoing(), file:#file, function:#function, line:#line)
throw CallError.timeout(description: "timed out waiting to receive call answer") throw CallError.timeout(description: "timed out waiting to receive call answer")
} }
@ -351,10 +351,10 @@ protocol CallServiceObserver: class {
Logger.error("\(self.TAG) placing call \(call.identifiersForLogs) failed with error: \(error)") Logger.error("\(self.TAG) placing call \(call.identifiersForLogs) failed with error: \(error)")
if let callError = error as? CallError { if let callError = error as? CallError {
OWSProdInfo("call_service_error_outgoing_connection_failed_internal", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorOutgoingConnectionFailedInternal(), file:#file, function:#function, line:#line)
self.handleFailedCall(failedCall: call, error: callError) self.handleFailedCall(failedCall: call, error: callError)
} else { } else {
OWSProdInfo("call_service_error_outgoing_connection_failed_external", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorOutgoingConnectionFailedExternal(), file:#file, function:#function, line:#line)
let externalError = CallError.externalError(underlyingError: error) let externalError = CallError.externalError(underlyingError: error)
self.handleFailedCall(failedCall: call, error: externalError) self.handleFailedCall(failedCall: call, error: externalError)
} }
@ -425,10 +425,10 @@ protocol CallServiceObserver: class {
Logger.debug("\(self.TAG) successfully set remote description") Logger.debug("\(self.TAG) successfully set remote description")
}.catch { error in }.catch { error in
if let callError = error as? CallError { if let callError = error as? CallError {
OWSProdInfo("call_service_error_handle_received_error_internal", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorHandleReceivedErrorInternal(), file:#file, function:#function, line:#line)
self.handleFailedCall(failedCall: call, error: callError) self.handleFailedCall(failedCall: call, error: callError)
} else { } else {
OWSProdInfo("call_service_error_handle_received_error_external", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorHandleReceivedErrorExternal(), file:#file, function:#function, line:#line)
let externalError = CallError.externalError(underlyingError: error) let externalError = CallError.externalError(underlyingError: error)
self.handleFailedCall(failedCall: call, error: externalError) self.handleFailedCall(failedCall: call, error: externalError)
} }
@ -635,7 +635,7 @@ protocol CallServiceObserver: class {
let timeout: Promise<Void> = after(interval: TimeInterval(connectingTimeoutSeconds)).then { () -> Void in let timeout: Promise<Void> = after(interval: TimeInterval(connectingTimeoutSeconds)).then { () -> Void in
// rejecting a promise by throwing is safely a no-op if the promise has already been fulfilled // rejecting a promise by throwing is safely a no-op if the promise has already been fulfilled
OWSProdInfo("call_service_error_timeout_while_connecting_incoming", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorTimeoutWhileConnectingIncoming(), file:#file, function:#function, line:#line)
throw CallError.timeout(description: "timed out waiting for call to connect") throw CallError.timeout(description: "timed out waiting for call to connect")
} }
@ -654,10 +654,10 @@ protocol CallServiceObserver: class {
return return
} }
if let callError = error as? CallError { if let callError = error as? CallError {
OWSProdInfo("call_service_error_incoming_connection_failed_internal", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorIncomingConnectionFailedInternal(), file:#file, function:#function, line:#line)
self.handleFailedCall(failedCall: newCall, error: callError) self.handleFailedCall(failedCall: newCall, error: callError)
} else { } else {
OWSProdInfo("call_service_error_incoming_connection_failed_external", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorIncomingConnectionFailedExternal(), file:#file, function:#function, line:#line)
let externalError = CallError.externalError(underlyingError: error) let externalError = CallError.externalError(underlyingError: error)
self.handleFailedCall(failedCall: newCall, error: externalError) self.handleFailedCall(failedCall: newCall, error: externalError)
} }
@ -697,7 +697,7 @@ protocol CallServiceObserver: class {
peerConnectionClient.addRemoteIceCandidate(RTCIceCandidate(sdp: sdp, sdpMLineIndex: lineIndex, sdpMid: mid)) peerConnectionClient.addRemoteIceCandidate(RTCIceCandidate(sdp: sdp, sdpMLineIndex: lineIndex, sdpMid: mid))
}.catch { error in }.catch { error in
OWSProdInfo("call_service_error_handle_remote_added_ice_candidate", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorHandleRemoteAddedIceCandidate(), file:#file, function:#function, line:#line)
Logger.error("\(self.TAG) in \(#function) waitForPeerConnectionClient failed with error: \(error)") Logger.error("\(self.TAG) in \(#function) waitForPeerConnectionClient failed with error: \(error)")
}.retainUntilComplete() }.retainUntilComplete()
} }
@ -747,7 +747,7 @@ protocol CallServiceObserver: class {
return return
} }
}.catch { error in }.catch { error in
OWSProdInfo("call_service_error_handle_local_added_ice_candidate", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorHandleLocalAddedIceCandidate(), file:#file, function:#function, line:#line)
Logger.error("\(self.TAG) in \(#function) waitUntilReadyToSendIceUpdates failed with error: \(error)") Logger.error("\(self.TAG) in \(#function) waitUntilReadyToSendIceUpdates failed with error: \(error)")
}.retainUntilComplete() }.retainUntilComplete()
} }
@ -1012,7 +1012,7 @@ protocol CallServiceObserver: class {
let sendPromise = self.messageSender.sendCallMessage(callMessage).then { let sendPromise = self.messageSender.sendCallMessage(callMessage).then {
Logger.debug("\(self.TAG) successfully sent hangup call message to \(call.thread.contactIdentifier())") Logger.debug("\(self.TAG) successfully sent hangup call message to \(call.thread.contactIdentifier())")
}.catch { error in }.catch { error in
OWSProdInfo("call_service_error_handle_local_hungup_call", file:#file, function:#function, line:#line) OWSProdInfo(OWSAnalyticsEvents.callServiceErrorHandleLocalHungupCall(), file:#file, function:#function, line:#line)
Logger.error("\(self.TAG) failed to send hangup call message to \(call.thread.contactIdentifier()) with error: \(error)") Logger.error("\(self.TAG) failed to send hangup call message to \(call.thread.contactIdentifier()) with error: \(error)")
} }
sendPromise.retainUntilComplete() sendPromise.retainUntilComplete()

@ -40,6 +40,28 @@ NS_ASSUME_NONNULL_BEGIN
+ (NSString *)callServiceCouldNotCreateReadyToSendIceUpdatesPromise; + (NSString *)callServiceCouldNotCreateReadyToSendIceUpdatesPromise;
+ (NSString *)callServiceErrorHandleLocalAddedIceCandidate;
+ (NSString *)callServiceErrorHandleLocalHungupCall;
+ (NSString *)callServiceErrorHandleReceivedErrorExternal;
+ (NSString *)callServiceErrorHandleReceivedErrorInternal;
+ (NSString *)callServiceErrorHandleRemoteAddedIceCandidate;
+ (NSString *)callServiceErrorIncomingConnectionFailedExternal;
+ (NSString *)callServiceErrorIncomingConnectionFailedInternal;
+ (NSString *)callServiceErrorOutgoingConnectionFailedExternal;
+ (NSString *)callServiceErrorOutgoingConnectionFailedInternal;
+ (NSString *)callServiceErrorTimeoutWhileConnectingIncoming;
+ (NSString *)callServiceErrorTimeoutWhileConnectingOutgoing;
+ (NSString *)callServiceMissingFulfillReadyToSendIceUpdatesPromise; + (NSString *)callServiceMissingFulfillReadyToSendIceUpdatesPromise;
+ (NSString *)callServicePeerConnectionAlreadySet; + (NSString *)callServicePeerConnectionAlreadySet;

@ -82,6 +82,61 @@ NS_ASSUME_NONNULL_BEGIN
return @"call_service_could_not_create_ready_to_send_ice_updates_promise"; return @"call_service_could_not_create_ready_to_send_ice_updates_promise";
} }
+ (NSString *)callServiceErrorHandleLocalAddedIceCandidate
{
return @"call_service_error_handle_local_added_ice_candidate";
}
+ (NSString *)callServiceErrorHandleLocalHungupCall
{
return @"call_service_error_handle_local_hungup_call";
}
+ (NSString *)callServiceErrorHandleReceivedErrorExternal
{
return @"call_service_error_handle_received_error_external";
}
+ (NSString *)callServiceErrorHandleReceivedErrorInternal
{
return @"call_service_error_handle_received_error_internal";
}
+ (NSString *)callServiceErrorHandleRemoteAddedIceCandidate
{
return @"call_service_error_handle_remote_added_ice_candidate";
}
+ (NSString *)callServiceErrorIncomingConnectionFailedExternal
{
return @"call_service_error_incoming_connection_failed_external";
}
+ (NSString *)callServiceErrorIncomingConnectionFailedInternal
{
return @"call_service_error_incoming_connection_failed_internal";
}
+ (NSString *)callServiceErrorOutgoingConnectionFailedExternal
{
return @"call_service_error_outgoing_connection_failed_external";
}
+ (NSString *)callServiceErrorOutgoingConnectionFailedInternal
{
return @"call_service_error_outgoing_connection_failed_internal";
}
+ (NSString *)callServiceErrorTimeoutWhileConnectingIncoming
{
return @"call_service_error_timeout_while_connecting_incoming";
}
+ (NSString *)callServiceErrorTimeoutWhileConnectingOutgoing
{
return @"call_service_error_timeout_while_connecting_outgoing";
}
+ (NSString *)callServiceMissingFulfillReadyToSendIceUpdatesPromise + (NSString *)callServiceMissingFulfillReadyToSendIceUpdatesPromise
{ {
return @"call_service_missing_fulfill_ready_to_send_ice_updates_promise"; return @"call_service_missing_fulfill_ready_to_send_ice_updates_promise";

Loading…
Cancel
Save