<!--
{
  "availability" : [
    "iOS: 13.0.0 - 27.0.0",
    "iPadOS: 13.0.0 - 27.0.0",
    "macCatalyst: 13.1.0 - 27.0.0",
    "macOS: 10.15.0 - 27.0.0",
    "visionOS: 1.0.0 - 27.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "MetricKit",
  "identifier" : "/documentation/MetricKit/MXSignpostMetric",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "MetricKit"
    ],
    "preciseIdentifier" : "c:objc(cs)MXSignpostMetric"
  },
  "title" : "MXSignpostMetric"
}
-->

# MXSignpostMetric

An object representing a custom metric.

```
class MXSignpostMetric
```

## Overview

A custom metric is an event type with a developer-defined name and category. You can add custom metrics to daily reports to capture information specific to your app.

Custom metrics are a type of signpost saved to custom OS logs created using [`makeLogHandle(category:)`](/documentation/MetricKit/MXMetricManager/makeLogHandle(category:)). The daily report contains information about the number and duration of custom events, as well as the power and performance impact of those events. Only custom metric events logged using MetricKit utility functions capture additional power and performance data.

> Note:
> The system limits the number of custom signpost metrics saved to the log in order to reduce on-device memory overhead. Limit use of custom metrics to critical sections of code.

## Topics

### Logging custom metrics

[`mxSignpost(_:dso:log:name:signpostID:_:_:)`](/documentation/MetricKit/mxSignpost(_:dso:log:name:signpostID:_:_:))

Posts a single custom metric, the start time of a custom metric, or the end time of a custom metric to the log system.

[`mxSignpostAnimationIntervalBegin(dso:log:name:signpostID:_:_:)`](/documentation/MetricKit/mxSignpostAnimationIntervalBegin(dso:log:name:signpostID:_:_:))

Posts the start time of an animation interval to the log system.

[`MXSignpostEventEmit`](/documentation/MetricKit/MXSignpostEventEmit)

Post a custom metric event to a metric kit log.

[`MXSignpostIntervalBegin`](/documentation/MetricKit/MXSignpostIntervalBegin)

Post the start time of a custom metric event to a metric kit log.

[`MXSignpostIntervalEnd`](/documentation/MetricKit/MXSignpostIntervalEnd)

Post the end time of a custom metric event to a metric kit log.

### Reading custom metric data

[`signpostIntervalData`](/documentation/MetricKit/MXSignpostMetric/signpostIntervalData)

The data captured for a custom metric.

[`MXSignpostIntervalData`](/documentation/MetricKit/MXSignpostIntervalData)

A data object representing the captured data for a custom metric.

### Reading data about the custom metric

[`signpostName`](/documentation/MetricKit/MXSignpostMetric/signpostName)

The developer-specified name of the custom metric represented by the object.

[`signpostCategory`](/documentation/MetricKit/MXSignpostMetric/signpostCategory)

The developer-specified category of the custom metric represented by the object.

[`totalCount`](/documentation/MetricKit/MXSignpostMetric/totalCount)

The total number of occurrences of the captured custom metric.

## See Also

  <doc://com.apple.documentation/documentation/os/logging>



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)