Sentry's SDKs support sending performance metrics data to Sentry. These are numeric values attached to transactions that are aggregated and displayed in Sentry.
- First Paint:
- First Contentful Paint:
- Largest Contentful Paint:
- First Input Delay:
- Cumulative Layout Shift:
- Time to First Byte:
- Time to First Byte Request Time:
Although you can set custom metrics in the SDK, the ability to see the data generated by these metrics is only available to organizations on our latest plans which include Dynamic Sampling. Customers on legacy plans must move to one of these plans in order to access custom metrics. For general questions about how you can move to plan that includes Dynamic Sampling and custom metrics, please contact firstname.lastname@example.org. For information on volume pricing, please contact email@example.com.
In addition to automatic performance metrics, the SDK supports setting custom performance metrics on transactions. This allows you to define metrics that are important to your application and send them to Sentry.
To set a performance metric, you need to supply the following:
- name (
- value (any numeric type -
- unit (
string, Defaults to the string
Sentry supports adding arbitrary custom units, but we recommend using one of the supported units listed below.
7.0.0 and above.
const transaction = Sentry.getCurrentHub().getScope().getTransaction(); // Record amount of memory used transaction.setMeasurement('memoryUsed', 123, 'byte'); // Record time when Footer component renders on page transaction.setMeasurement('ui.footerComponent.render', 1.3, 'second'); // Record amount of times localStorage was read transaction.setMeasurement('localStorageRead', 4);
Currently, unit conversion is only supported once the data has already been stored. This means that, for example,
('myMetric', 60, 'second') and
('myMetric', 3, 'minute') would not be aggregated, but rather stored as two separate metrics. To avoid this, make sure to use a consistent unit when recording a custom metric.
Units augment metric values by giving meaning to what otherwise might be abstract numbers. Adding units also allows Sentry to offer controls — unit conversions, filters, and so on — based on those units. For values that are unitless, you can supply an empty string or
If you want to explore further, you can find details about supported units in our event ingestion documentation.