123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import type {Location} from 'history';
- import {normalizeDateTimeParams} from 'sentry/components/organizations/pageFilters/parse';
- import {ALL_ACCESS_PROJECTS} from 'sentry/constants/pageFilters';
- import type {EventTransaction} from 'sentry/types/event';
- import type {Organization} from 'sentry/types/organization';
- import {MutableSearch} from 'sentry/utils/tokenizeSearch';
- import normalizeUrl from 'sentry/utils/url/normalizeUrl';
- export function getProfileMeta(event: EventTransaction | null) {
- const profileId = event?.contexts?.profile?.profile_id;
- if (profileId) {
- return profileId;
- }
- const profilerId = event?.contexts?.profile?.profiler_id;
- if (profilerId) {
- const start = new Date(event.startTimestamp * 1000);
- const end = new Date(event.endTimestamp * 1000);
- return {
- profiler_id: profilerId,
- start: start.toISOString(),
- end: end.toISOString(),
- };
- }
- return null;
- }
- export enum TraceDrawerActionValueKind {
- TAG = 'tag',
- MEASUREMENT = 'measurement',
- ADDITIONAL_DATA = 'additional_data',
- SENTRY_TAG = 'sentry_tag',
- }
- export enum TraceDrawerActionKind {
- INCLUDE = 'include',
- EXCLUDE = 'exclude',
- GREATER_THAN = 'greater_than',
- LESS_THAN = 'less_than',
- }
- export function getSearchInExploreTarget(
- organization: Organization,
- location: Location,
- key: string,
- value: string,
- kind: TraceDrawerActionKind
- ) {
- const {start, end, statsPeriod} = normalizeDateTimeParams(location.query);
- const search = new MutableSearch('');
- if (kind === TraceDrawerActionKind.INCLUDE) {
- search.setFilterValues(key, [value]);
- } else if (kind === TraceDrawerActionKind.EXCLUDE) {
- search.setFilterValues(`!${key}`, [`${value}`]);
- } else if (kind === TraceDrawerActionKind.GREATER_THAN) {
- search.setFilterValues(key, [`>${value}`]);
- } else {
- search.setFilterValues(key, [`<${value}`]);
- }
- return {
- pathname: normalizeUrl(`/organizations/${organization.slug}/traces/`),
- query: {
- start,
- end,
- statsPeriod,
- query: search.formatString(),
- project: ALL_ACCESS_PROJECTS,
- },
- };
- }
|