NTP-48917 | Crash & ANR vertical attribution and nap_metric inclusion (#15456)
This commit is contained in:
@@ -1406,5 +1406,6 @@ class NaviAnalytics private constructor() {
|
||||
const val ENGAGEMENT_SIGNALS_NOT_SUPPORTED = "engagement_signals_not_supported"
|
||||
const val CHROME_TAB_SERVICE_DISCONNECTION_EXCEPTION =
|
||||
"chrome_tab_service_disconnection_exception"
|
||||
const val NAP_METRIC = "nap_metric"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import com.naviapp.analytics.utils.NaviAnalytics.Companion.GLOBAL_ANR
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.GLOBAL_ANR_THIRD_PARTY
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.LINE_NUMBER
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.METHOD_NAME
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.NAP_METRIC
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.NETWORK_CONNECTIVITY_INTERCEPTOR_ENABLED
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.SCREEN_NAME
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.STACK_TRACE
|
||||
@@ -130,7 +131,12 @@ class AnrErrorHandlerInitializer @Inject constructor() : ComponentInitializer {
|
||||
private fun trackEvent(className: String, anrEventProperties: MutableMap<String, String>) {
|
||||
val eventName =
|
||||
if (className.contains(Constants.ANR_NAVI_REGEX)) GLOBAL_ANR else GLOBAL_ANR_THIRD_PARTY
|
||||
CheckMateManager.logAppCrashOrAnrEvent(eventName, anrEventProperties)
|
||||
CheckMateManager.logVerticalWiseAppCrashOrAnrEvent(
|
||||
eventName = NAP_METRIC,
|
||||
eventValues = anrEventProperties,
|
||||
isAppCrash = false,
|
||||
isAppAnr = true,
|
||||
)
|
||||
}
|
||||
|
||||
private fun handleAnrEventIfNeeded(anrEventProperties: MutableMap<String, String>) {
|
||||
|
||||
@@ -19,9 +19,9 @@ import com.naviapp.analytics.utils.NaviAnalytics.Companion.APP_IN_FOREGROUND
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.CUSTOM_DNS_ENABLED
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.FOREGROUND_SCREEN
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.FOREGROUND_VERTICAL
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.GLOBAL_APP_CRASH
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.LINE_NUMBER
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.METHOD_NAME
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.NAP_METRIC
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.NETWORK_CONNECTIVITY_INTERCEPTOR_ENABLED
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.SCREEN_NAME
|
||||
import com.naviapp.analytics.utils.NaviAnalytics.Companion.STACK_TRACE
|
||||
@@ -57,7 +57,12 @@ class CrashHandlerInitializer @Inject constructor() : ComponentInitializer {
|
||||
if (!application.isDifferentPackage()) {
|
||||
AlfredManager.handleCrashEvent(crashEventProperties)
|
||||
}
|
||||
CheckMateManager.logAppCrashOrAnrEvent(GLOBAL_APP_CRASH, crashEventProperties)
|
||||
CheckMateManager.logVerticalWiseAppCrashOrAnrEvent(
|
||||
eventName = NAP_METRIC,
|
||||
eventValues = crashEventProperties,
|
||||
isAppCrash = true,
|
||||
isAppAnr = false,
|
||||
)
|
||||
} finally {
|
||||
defaultHandler?.uncaughtException(thread, exception)
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ class ReactActivity : BaseActivity(), DefaultHardwareBackBtnHandler, RequestToCa
|
||||
get() = NaviAnalytics.REACT_NATIVE_SCREEN
|
||||
|
||||
override val moduleName: ModuleNameV2
|
||||
get() = ModuleNameV2.COMMON
|
||||
get() = ModuleNameV2.Insurance
|
||||
|
||||
@SuppressLint("VisibleForTests")
|
||||
override fun onCallbackRaised() {
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.navi.alfred.AlfredManager
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import com.navi.base.AppServiceManager
|
||||
import com.navi.base.bandwidthbuddy.BandwidthAccessor
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.base.utils.orZero
|
||||
import com.navi.common.checkmate.model.EventType
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
@@ -178,6 +179,28 @@ object CheckMateManager {
|
||||
NaviTrackEvent.trackEventOnClickStream(eventName = eventName, eventValues = eventValues)
|
||||
}
|
||||
|
||||
/** This method will only be used for vertical wise app crash and anr event logging. */
|
||||
fun logVerticalWiseAppCrashOrAnrEvent(
|
||||
eventName: String,
|
||||
eventValues: Map<String, String>,
|
||||
isAppCrash: Boolean? = null,
|
||||
isAppAnr: Boolean? = null,
|
||||
) {
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
eventName =
|
||||
getEventNameWithVerticalPrefix(
|
||||
eventName = eventName,
|
||||
vertical = eventValues["vertical"].orEmpty(),
|
||||
),
|
||||
eventValues =
|
||||
eventValues +
|
||||
mapOf(
|
||||
"isAppCrash" to isAppCrash.orFalse().toString(),
|
||||
"isAppAnr" to isAppAnr.orFalse().toString(),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
/** This method is only used for api response error tracking. */
|
||||
fun <T> recordNetworkEvent(
|
||||
apiResponse: Response<GenericResponse<T>>,
|
||||
|
||||
@@ -579,7 +579,7 @@ class LEPaymentHandlerActivity :
|
||||
get() = CommonNaviAnalytics.PAYMENT_HANDLER_ACTIVITY
|
||||
|
||||
override val moduleName: ModuleNameV2
|
||||
get() = ModuleNameV2.COMMON
|
||||
get() = ModuleNameV2.PL
|
||||
|
||||
companion object {
|
||||
const val LOAN_ACCOUNT_NUMBER = "loanAccountNumber"
|
||||
|
||||
Reference in New Issue
Block a user