Measure Events
In some cases, you may want to measure event occurrences in your app, but not necessarily the duration or success/failure.
To do this, you can use the usePolaris()
hook's logMeasurement
function.
Let's look at some examples.
Measure User Interactions
In this example, we'll measure the number of times a user clicks on a grid component.
Grid.tsx
export function Grid() {
const { logMeasurement } = usePolaris();
const handleClick = useCallback(() => {
logMeasurement('grid-click');
}, []);
return (<></>);
}
Measure Key Performance Indicators
In this example, we'll send an event to Polaris when a user completes a booking.
Booking.tsx
export function Booking() {
const { logMeasurement } = usePolaris();
const handleBooking = useCallback(() => {
logMeasurement('booking-complete');
}, []);
return (<></>);
}
logMeasurement()
Function
The Let's look at the signature of the logMeasurement
function.
logMeasurement( eventName: string, result: MeasurementResult, duration: number, url: string | null, measurementMetadata: object = {}, resultMetadata: object = {}) => void
Let's review each argument:
eventName
- The name of the event you want to measure. This is the only required argument.result
- The result of the event. This can be one of the following values:MeasurementResult.Success
- The event was successful.MeasurementResult.Failure
- The event failed.MeasurementResult.Aborted
- The event was aborted.
duration
- The duration of the event in milliseconds.url
- The URL of the event. This is useful for tracking events that occur on different pages.measurementMetadata
- Any additional metadata you want to include about the event.resultMetadata
- Any additional metadata you want to include about the result.