Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
The JavaScript Browser SDKs automatically collect the following performance metrics:

- First Paint: `fp`
- First Contentful Paint: `fcp`
- Largest Contentful Paint: `lcp`
- First Input Delay: `fid`
- Cumulative Layout Shift: `cls`
- Time to First Byte: `ttfb`
- Time to First Byte Request Time: `ttfb.requesttime`
14 changes: 14 additions & 0 deletions src/includes/performance/custom-performance-metrics/javascript.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Supported in Sentry's JavaScript SDK version `7.0.0` and above.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't make this change without the back ticks for the code snippet interfering with the back ticks of the suggestion, but I would put the sentence above (on line 1) in a note after that code snippet.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ugh, I wish they would fix that. Just for convenience, can we do that in a separate PR?


```javascript
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);
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
title: Performance Metrics
sidebar_order: 20
supported:
- javascript
notSupported:
- javascript.cordova
- javascript.electron
- react-native
- dotnet
- python
- go
- java
- android
- ruby
- java.spring-boot
- apple
- unity
- dart
- flutter
- rust
- native
- php
- native.breakpad
- native.crashpad
- native.minidumps
- unreal
- native.wasm
description: "Learn how to attach performance metrics to your transactions."
---

Sentry's SDKs support sending performance metrics data to Sentry. These are numeric values attached to transactions that are aggregated and displayed in Sentry.

<PlatformContent includePath="performance/automatic-performance-metrics" />

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, supply a name (string), value (numeric - float, integer, etc.), and unit (string). Sentry supports adding arbitrary custom units, but we recommend using one of the [supported units listed below](./#supported-performance-metric-units).

<PlatformContent includePath="performance/custom-performance-metrics" />

## Supported Performance Metric Units

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, etc. - based on those units. For values that are unitless, you can supply an empty string or `none`.

### Duration Units

A time duration.

- `nanosecond`
- `microsecond`
- `millisecond`
- `second`
- `minute`
- `hour`
- `day`
- `week`

### Information Units

Size of information derived from bytes.

- `bit`
- `byte`
- `kilobyte`
- `kibibyte`
- `megabyte`
- `mebibyte`
- `gigabyte`
- `gibibyte`
- `terabyte`
- `tebibyte`
- `petabyte`
- `petabyte`
- `pebibyte`
- `exabyte`
- `exbibyte`

## Fraction Units

- `ratio`
- `percent`

If you want to explore further, you can find details about supported units in our [event ingestion documentation](https://getsentry.github.io/relay/relay_metrics/enum.MetricUnit.html).