in Sources/apm-agent-ios/Instrumentation/AppMetrics/AppMetrics.swift [192:235]
func recordAppExitsBackground(metric: MXMetricPayload) {
if #available(iOS 14.0, *) {
let appExit = meter.createRawIntCounter(name: ElasticMetrics.appExits.rawValue)
if let backgroundApplicationExit = metric.applicationExitMetrics?.backgroundExitData {
appExit.record(sum: backgroundApplicationExit.cumulativeMemoryResourceLimitExitCount,
startDate: metric.timeStampBegin,
endDate: metric.timeStampEnd,
labels: [AppExitStates.key.rawValue: AppExitStates.background.rawValue,
AppExitValues.key.rawValue: AppExitValues.resourceLimit.rawValue])
appExit.record(sum: backgroundApplicationExit.cumulativeAppWatchdogExitCount,
startDate: metric.timeStampBegin,
endDate: metric.timeStampEnd,
labels: [AppExitStates.key.rawValue: AppExitStates.background.rawValue,
AppExitValues.key.rawValue: AppExitValues.watchdog.rawValue])
appExit.record(sum: backgroundApplicationExit.cumulativeBadAccessExitCount,
startDate: metric.timeStampBegin,
endDate: metric.timeStampEnd,
labels: [AppExitStates.key.rawValue: AppExitStates.background.rawValue,
AppExitValues.key.rawValue: AppExitValues.badAccess.rawValue])
appExit.record(sum: backgroundApplicationExit.cumulativeAbnormalExitCount,
startDate: metric.timeStampBegin,
endDate: metric.timeStampEnd,
labels: [AppExitStates.key.rawValue: AppExitStates.background.rawValue,
AppExitValues.key.rawValue: AppExitValues.abnormal.rawValue])
appExit.record(sum: backgroundApplicationExit.cumulativeIllegalInstructionExitCount,
startDate: metric.timeStampBegin,
endDate: metric.timeStampEnd,
labels: [AppExitStates.key.rawValue: AppExitStates.background.rawValue,
AppExitValues.key.rawValue: AppExitValues.illegalInstruction.rawValue])
appExit.record(sum: backgroundApplicationExit.cumulativeNormalAppExitCount,
startDate: metric.timeStampBegin,
endDate: metric.timeStampEnd,
labels: [AppExitStates.key.rawValue: AppExitStates.background.rawValue,
AppExitValues.key.rawValue: AppExitValues.normal.rawValue])
}
}
}