---
title: MetricManager
framework: metrickit
role: symbol
role_heading: Class
path: metrickit/metricmanager
---

# MetricManager

An object that delivers metric and diagnostic reports to your app.

## Declaration

```swift
final class MetricManager
```

## Mentioned in

Monitoring app performance with MetricKit

## Discussion

Discussion MetricManager is an instantiable class rather than a shared singleton. Create an instance and hold it for as long as you need reports. Metric reports arrive through metricReports, and diagnostic reports through diagnosticReports. Both are typed AsyncSequence properties that never throw, so you iterate them with for await in long-lived tasks: let manager = MetricManager()

Task {     for await report in manager.metricReports {         process(report)     } } Task {     for await report in manager.diagnosticReports {         process(report)     } } To receive metrics segmented by app state, pass a set of StateReportingDomain values to init(enabledStateReportingDomains:). When state reporting is enabled, stateEntries carries metrics grouped by each recorded state in addition to the standard intervalEntries. This type replaces MXMetricManager.

## Topics

### Initialization

- [init()](metrickit/metricmanager/init().md)
- [init(enabledStateReportingDomains:)](metrickit/metricmanager/init(enabledstatereportingdomains:).md)
- [enabledStateReportingDomains](metrickit/metricmanager/enabledstatereportingdomains.md)

### Reports

- [metricReports](metrickit/metricmanager/metricreports.md)
- [diagnosticReports](metrickit/metricmanager/diagnosticreports.md)

### Custom metric logs

- [logHandle(category:)](metrickit/metricmanager/loghandle(category:).md)

### Extended launch

- [trackLaunchTask(id:onTrackingError:_:)](metrickit/metricmanager/tracklaunchtask(id:ontrackingerror:_:)-48k2s.md)
- [trackLaunchTask(id:onTrackingError:_:)](metrickit/metricmanager/tracklaunchtask(id:ontrackingerror:_:)-jnu1.md)
- [MetricManager.LaunchTaskError](metrickit/metricmanager/launchtaskerror.md)
- [LaunchTaskID](metrickit/launchtaskid.md)

### State-contextualized metrics

- [MetricManager.ReportedState](metrickit/metricmanager/reportedstate.md)

## Relationships

### Conforms To

- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Metric and diagnostic reports

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