-
-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix: Trace Root transaction name (#612)
<!-- Tick these boxes if they're applicable to your PR. - Changesets are only required for PRs to Spotlight library packages (e.g. @spotlightjs/overlay). Not for the website/docs or demo app contributions. - Typo correction or small bugfix PRs don't require an issue. If you're making a bigger change, please open an issue first. --> Before opening this PR: - [x] I added a [Changeset Entry](https://spotlightjs.com/contribute/changesets/) with `pnpm changeset:add` - [x] I referenced issues that this PR addresses #607 ![image](https://github.com/user-attachments/assets/926e7b60-61b8-491c-8666-e0cbbae3186b)
- Loading branch information
1 parent
7ea060b
commit 76bc486
Showing
5 changed files
with
52 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'@spotlightjs/overlay': patch | ||
--- | ||
|
||
Added Trace root transaction name in Trace detail header |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
13 changes: 13 additions & 0 deletions
13
...ntegrations/sentry/components/explore/traces/TraceDetails/components/TraceRootTxnName.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import type { Trace } from '~/integrations/sentry/types'; | ||
import Tag from '~/ui/Tag'; | ||
|
||
export function TraceRootTxnName({ trace, flowing = false }: { trace: Trace; flowing?: boolean }) { | ||
const method = String( | ||
trace.rootTransaction?.contexts?.trace.data?.method || trace.rootTransaction?.request?.method || '', | ||
); | ||
const name = | ||
method && trace.rootTransactionName.startsWith(method) | ||
? trace.rootTransactionName.slice(method.length + 1) | ||
: trace.rootTransactionName; | ||
return <Tag tagKey={method} value={name} flowing={flowing} />; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,30 @@ | ||
export type TagProps = { tagKey: string; value: string }; | ||
import classNames from '~/lib/classNames'; | ||
|
||
export default function Tag({ tagKey, value }: TagProps) { | ||
return value ? ( | ||
<div className="border-primary-300 bg-primary-900 divide-x-primary-300 inline-flex divide-x overflow-hidden whitespace-nowrap rounded-full border font-mono text-sm"> | ||
{tagKey ? <div className="px-2 py-1 font-semibold">{tagKey}</div> : null} | ||
<div className="bg-primary-800 rounded-full px-2 py-1">{value}</div> | ||
export type TagProps = { | ||
tagKey?: string; | ||
value: string; | ||
flowing?: boolean; | ||
maxWidth?: string; | ||
}; | ||
|
||
export default function Tag({ tagKey, value, flowing = false, maxWidth = '400px' }: TagProps) { | ||
if (!value) return null; | ||
|
||
return ( | ||
<div | ||
className={classNames( | ||
'border-primary-300 bg-primary-900 divide-x-primary-300 inline-flex divide-x overflow-hidden whitespace-nowrap rounded-full border font-mono text-sm', | ||
flowing && 'max-w-full', | ||
)} | ||
> | ||
{tagKey && <div className="px-2 py-1 font-semibold">{tagKey}</div>} | ||
<div | ||
title={value} | ||
className={classNames('bg-primary-800 truncate px-2 py-1', flowing ? 'max-w-full' : 'max-w-none')} | ||
style={{ maxWidth: flowing ? '100%' : maxWidth }} | ||
> | ||
{value} | ||
</div> | ||
</div> | ||
) : null; | ||
); | ||
} |