func recordResumeTime()

in Sources/apm-agent-ios/Instrumentation/AppMetrics/AppMetrics.swift [95:125]


  func recordResumeTime(metric: MXMetricPayload) {
    if let resumeTimeEnumerator = metric.applicationLaunchMetrics?.histogrammedApplicationResumeTime.bucketEnumerator {
      let rawHistogram = meter.createRawDoubleHistogram(name: ElasticMetrics.appLaunchTime.rawValue)

      var bounds = [Double]()
      var counts = [Int]()
      var sum = 0.0
      var count = 0

      // swiftlint:disable:next force_cast
      for bucket in resumeTimeEnumerator.allObjects as! [MXHistogramBucket] {
        bounds.append(bucket.bucketStart.value)
        bounds.append(bucket.bucketEnd.value)
        counts.append(0)
        counts.append(bucket.bucketCount)
        let avg = (bucket.bucketStart.value + bucket.bucketEnd.value) / 2
        sum += avg * Double(bucket.bucketCount)
        count += bucket.bucketCount
      }
      counts.append(0)

      //            SummaryData
      rawHistogram.record(explicitBoundaries: bounds,
                          counts: counts,
                          startDate: metric.timeStampBegin,
                          endDate: metric.timeStampEnd,
                          count: count,
                          sum: sum,
                          labels: [LaunchTimeValues.key.rawValue: LaunchTimeValues.resume.rawValue])
    }
  }