Files
sentinel/static/app/utils/metrics/useIncrementQueryMetric.tsx
2024-02-15 17:01:50 +00:00

33 lines
1.0 KiB
TypeScript

import * as Sentry from '@sentry/react';
import type {MRI} from 'sentry/types';
import {getDefaultMetricDisplayType} from 'sentry/utils/metrics';
import {getReadableMetricType} from 'sentry/utils/metrics/formatters';
import {parseMRI} from 'sentry/utils/metrics/mri';
import type {MetricDisplayType} from 'sentry/utils/metrics/types';
interface Options {
displayType: MetricDisplayType;
mri: MRI;
groupBy?: string[];
op?: string;
query?: string;
}
export const useIncrementQueryMetric = (options: Options) => {
return (metricName: string, values: Partial<Options>) => {
const mergedValues = {...options, ...values};
Sentry.metrics.increment(metricName, 1, {
tags: {
display:
mergedValues.displayType ??
getDefaultMetricDisplayType(mergedValues.mri, mergedValues.op),
type: getReadableMetricType(parseMRI(mergedValues.mri)?.type),
operation: mergedValues.op,
isGrouped: !!mergedValues.groupBy?.length,
isFiltered: !!mergedValues.query,
},
});
};
};