---
title: MetricKit
framework: MetricKit
role: collection
role_heading: Framework
platforms: [iOS 13.0+, iPadOS 13.0+, Mac Catalyst 13.0+, macOS 12.0+, visionOS 1.0+]
path: metrickit
---

# MetricKit

Measure your app’s performance using daily metric and diagnostic reports from real users.

## Overview

Overview MetricKit provides on-device app diagnostics and power and performance metrics the system captures. The system delivers metric reports about the previous 24 hours to your app at most once per day. Diagnostic reports arrive immediately in iOS 15 and later, and macOS 12 and later. For apps running in visionOS, the framework supports diagnostics for crashes, hangs, high energy use, and disk writes, but doesn’t report performance metrics. This applies to apps built for visionOS and compatible iPhone and iPad apps running in visionOS. Use this data to improve the performance of your iOS app, macOS app, or Mac Catalyst app. In iOS 27 and later and macOS 27 and later, MetricManager delivers MetricReport and DiagnosticReport values through asynchronous sequences. On visionOS 27 and later, MetricManager delivers diagnostic reports only. MetricKit also supports tracking state-based metrics using the StateReporting framework.

## Topics

### Essentials

- [Monitoring app performance with MetricKit](metrickit/monitoring-app-performance-with-metrickit.md)
- [Analyzing app performance with MetricKit](metrickit/analyzing-app-performance-with-metrickit.md)
- [Track performance by app state using MetricKit](metrickit/track-performance-by-app-state-using-metrickit.md)
- [MetricKit updates](updates/metrickit.md)

### Performance improvements

- [Improving your app’s performance](xcode/improving-your-app-s-performance.md)

### Metric and diagnostic reports

- [MetricManager](metrickit/metricmanager.md)
- [MetricReport](metrickit/metricreport.md)
- [DiagnosticReport](metrickit/diagnosticreport.md)

### Result types

- [MetricResult](metrickit/metricresult.md)
- [MetricGroup](metrickit/metricgroup.md)
- [DiagnosticResult](metrickit/diagnosticresult.md)

### Time-in-use metrics

- [TotalForegroundTimeMetric](metrickit/totalforegroundtimemetric.md)
- [TotalBackgroundTimeMetric](metrickit/totalbackgroundtimemetric.md)
- [TotalBackgroundAudioTimeMetric](metrickit/totalbackgroundaudiotimemetric.md)
- [TotalBackgroundLocationTimeMetric](metrickit/totalbackgroundlocationtimemetric.md)
- [LocationActivityTimeMetric](metrickit/locationactivitytimemetric.md)
- [CellularConditionTimeMetric](metrickit/cellularconditiontimemetric.md)

### Launch and responsiveness metrics

- [TimeToFirstDrawMetric](metrickit/timetofirstdrawmetric.md)
- [OptimizedTimeToFirstDrawMetric](metrickit/optimizedtimetofirstdrawmetric.md)
- [ApplicationResumeTimeMetric](metrickit/applicationresumetimemetric.md)
- [ExtendedLaunchMetric](metrickit/extendedlaunchmetric.md)
- [HangTimeMetric](metrickit/hangtimemetric.md)
- [HitchTimeMetric](metrickit/hitchtimemetric.md)

### CPU and memory metrics

- [CPUTimeMetric](metrickit/cputimemetric.md)
- [CPUInstructionsCountMetric](metrickit/cpuinstructionscountmetric.md)
- [CPUExceptionDiagnostic](metrickit/cpuexceptiondiagnostic.md)
- [PeakMemoryMetric](metrickit/peakmemorymetric.md)
- [SuspendedMemoryMetric](metrickit/suspendedmemorymetric.md)
- [MemoryExceptionDiagnostic](metrickit/memoryexceptiondiagnostic.md)

### GPU and display metrics

- [GPUTimeMetric](metrickit/gputimemetric.md)
- [MetalFrameRateMetric](metrickit/metalframeratemetric.md)
- [PixelLuminanceMetric](metrickit/pixelluminancemetric.md)
- [AveragePixelLuminance](metrickit/averagepixelluminance.md)

### Network metrics

- [TotalWiFiUploadMetric](metrickit/totalwifiuploadmetric.md)
- [TotalWiFiDownloadMetric](metrickit/totalwifidownloadmetric.md)
- [TotalCellularUploadMetric](metrickit/totalcellularuploadmetric.md)
- [TotalCellularDownloadMetric](metrickit/totalcellulardownloadmetric.md)

### Disk metrics

- [LogicalDiskWritesMetric](metrickit/logicaldiskwritesmetric.md)
- [DiskWriteExceptionDiagnostic](metrickit/diskwriteexceptiondiagnostic.md)
- [TotalDiskSpaceCapacityMetric](metrickit/totaldiskspacecapacitymetric.md)
- [TotalFileCountMetric](metrickit/totalfilecountmetric.md)
- [TotalFileSizeMetric](metrickit/totalfilesizemetric.md)

### Termination metrics

- [ForegroundTerminationMetric](metrickit/foregroundterminationmetric.md)
- [BackgroundTerminationMetric](metrickit/backgroundterminationmetric.md)

### Signpost and custom metrics

- [SignpostIntervalMetric](metrickit/signpostintervalmetric.md)
- [mxSignpost(_:dso:log:name:signpostID:_:_:)](metrickit/mxsignpost(_:dso:log:name:signpostid:_:_:).md)
- [mxSignpostAnimationIntervalBegin(dso:log:name:signpostID:_:_:)](metrickit/mxsignpostanimationintervalbegin(dso:log:name:signpostid:_:_:).md)

### Crash and hang diagnostics

- [CrashDiagnostic](metrickit/crashdiagnostic.md)
- [HangDiagnostic](metrickit/hangdiagnostic.md)
- [AppLaunchDiagnostic](metrickit/applaunchdiagnostic.md)

### App state reporting

- [StateReportingDomain](metrickit/statereportingdomain.md)
- [LaunchTaskID](metrickit/launchtaskid.md)

### Call stack data

- [CallStackTree](metrickit/callstacktree.md)
- [CallStackThread](metrickit/callstackthread.md)
- [CallStackFrame](metrickit/callstackframe.md)
- [SignpostRecord](metrickit/signpostrecord.md)

### Supporting types

- [Histogram](metrickit/histogram.md)
- [AverageStatistics](metrickit/averagestatistics.md)
- [SignalBars](metrickit/signalbars.md)
- [HitchTimeRatio](metrickit/hitchtimeratio.md)
- [OSVersion](metrickit/osversion.md)

### MXMetricManager API

- [MXMetricManager API](metrickit/mxmetricmanager-api.md)
