func recordAppExitsBackground()

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])
      }

    }
  }