metrickit

Collects MetricKit performance metrics and diagnostic payloads from iOS devices.

Updated May 6, 2026
One-click install
npx skills add https://github.com/Roy-wonji/claude-config --skill metrickit-roy-wonji
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: metrickit
Source: https://github.com/Roy-wonji/claude-config/tree/main/skills/swift-ios-skills/skills/metrickit
Command: npx skills add https://github.com/Roy-wonji/claude-config --skill metrickit-roy-wonji

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you collect on-device performance and crash diagnostics using MetricKit so you can diagnose regressions and stability issues with aggregated metrics and symbolicated call stacks.

Core Features & Use Cases

  • Capture daily performance metrics: Launch time, memory, CPU, responsiveness (hang/animation hitches), and network transfer totals.
  • Ingest immediate diagnostic events: Crashes, hangs, disk-write exceptions, CPU exceptions, and slow app-launch diagnostics with call stack trees.
  • Add custom signpost metrics: Emit critical interval measurements that show up inside MetricKit payloads for deeper performance attribution.
  • Operationalize analysis: Persist raw JSON safely, export/upload payloads to your backend, and optionally review trends in Xcode Organizer.

Quick Start

Implement an MXMetricManagerSubscriber, subscribe at app startup (e.g., App init), and save each payload’s jsonRepresentation() to disk before processing or uploading.

Frequently Asked Questions about metrickit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I collect and process MXMetricPayload and MXDiagnosticPayload data from iOS production devices?

To collect MXMetricPayload and MXDiagnosticPayload data, implement the MXMetricManagerSubscriber protocol and register with MXMetricManager at app startup to receive daily aggregated performance metrics and immediate diagnostic events from production devices.

What is the correct way to handle pastPayloads and pastDiagnosticPayloads in MetricKit to avoid missing data?

When subscribing to MetricKit, you must correctly handle pastPayloads and pastDiagnosticPayloads upon initial registration to process any aggregated metrics and diagnostic payloads that were missed before your subscriber was active.

How do I symbolicate and analyze MXCallStackTree data from iOS crash diagnostics?

You analyze MXCallStackTree data by receiving it through MXDiagnosticPayload callbacks, safely persisting the jsonRepresentation() to disk before processing, and extracting the call stack trees for crash, hang, and CPU exception diagnostics.

Can I emit custom signpost metrics and have them appear inside MetricKit payloads?

Yes, you can emit mxSignpost custom interval measurements in your app, and these custom signpost metrics will appear inside MetricKit payloads for deeper performance attribution alongside standard system metrics.

What are the limitations and safe handling practices for MetricKit payload processing?

MetricKit requires early subscriber registration at app launch and safe persistence of jsonRepresentation() before processing, because you must handle heavier work asynchronously to avoid blocking and ensure past payloads are not lost.

Does MetricKit work with Xcode Organizer for analyzing iOS performance metrics and regressions?

Yes, MetricKit works alongside Xcode Organizer, allowing you to collect on-device metrics locally and optionally review performance trends and regressions within the Xcode Organizer environment.