@@ -31,6 +31,8 @@ import {
3131} from '@tabler/icons-react' ;
3232
3333import { RowWhereResult , WithClause } from '@/hooks/useRowWhere' ;
34+ import type { SessionIdKey } from '@/utils/sessionId' ;
35+ import { buildSessionEventFilters } from '@/utils/sessions' ;
3436
3537import SearchWhereInput from './components/SearchInput/SearchWhereInput' ;
3638import useFieldExpressionGenerator from './hooks/useFieldExpressionGenerator' ;
@@ -47,6 +49,7 @@ const MemoPlaybar = memo(Playbar);
4749function useSessionChartConfigs ( {
4850 traceSource,
4951 rumSessionId,
52+ sessionIdKey,
5053 where,
5154 whereLanguage,
5255 start,
@@ -55,6 +58,7 @@ function useSessionChartConfigs({
5558} : {
5659 traceSource : TTraceSource ;
5760 rumSessionId : string ;
61+ sessionIdKey ?: SessionIdKey ;
5862 where : string ;
5963 whereLanguage ?: SearchConditionLanguage ;
6064 start : Date ;
@@ -96,6 +100,15 @@ function useSessionChartConfigs({
96100 valueExpression : `${ getTraceSourceFieldExpression ( traceSource . eventAttributesExpression ?? 'SpanAttributes' , 'http.url' ) } ` ,
97101 alias : 'http.url' ,
98102 } ,
103+ ...[ 'url.full' , 'http.request.method' , 'http.response.status_code' ] . map (
104+ key => ( {
105+ valueExpression : getTraceSourceFieldExpression (
106+ traceSource . eventAttributesExpression ?? 'SpanAttributes' ,
107+ key ,
108+ ) ,
109+ alias : key ,
110+ } ) ,
111+ ) ,
99112 {
100113 // Using toString here because Javascript does not have the precision to accurately represent this
101114 valueExpression : `toString(cityHash64(${ traceSource . traceIdExpression } , ${ traceSource . parentSpanIdExpression } , ${ traceSource . spanIdExpression } ))` ,
@@ -140,43 +153,18 @@ function useSessionChartConfigs({
140153 ] ;
141154 } , [ traceSource , getTraceSourceFieldExpression ] ) ;
142155
143- // Events shown in the highlighted tab
144- const highlightedEventsFilter = useMemo (
145- ( ) => ( {
146- type : 'lucene' as const ,
147- condition : `${ traceSource . resourceAttributesExpression } .rum.sessionId:"${ rumSessionId } "
148- AND (
149- ${ traceSource . eventAttributesExpression } .http.status_code:>299
150- OR ${ traceSource . eventAttributesExpression } .component:"error"
151- OR ${ traceSource . spanNameExpression } :"routeChange"
152- OR ${ traceSource . spanNameExpression } :"documentLoad"
153- OR ${ traceSource . spanNameExpression } :"intercom.onShow"
154- OR ScopeName:"custom-action"
155- )` ,
156- } ) ,
157- [ traceSource , rumSessionId ] ,
156+ const eventFilters = useMemo (
157+ ( ) =>
158+ buildSessionEventFilters ( {
159+ traceSource,
160+ sessionId : rumSessionId ,
161+ sessionIdKey,
162+ } ) ,
163+ [ traceSource , rumSessionId , sessionIdKey ] ,
158164 ) ;
159165
160- const allEventsFilter = useMemo ( ( ) => {
161- if ( ! getTraceSourceFieldExpression ) return undefined ;
162- return {
163- type : 'lucene' as const ,
164- condition : `${ traceSource . resourceAttributesExpression } .rum.sessionId:"${ rumSessionId } "
165- AND (
166- ${ traceSource . eventAttributesExpression } .http.status_code:*
167- OR ${ traceSource . eventAttributesExpression } .component:"console"
168- OR ${ traceSource . eventAttributesExpression } .component:"error"
169- OR ${ traceSource . spanNameExpression } :"routeChange"
170- OR ${ traceSource . spanNameExpression } :"documentLoad"
171- OR ${ traceSource . spanNameExpression } :"intercom.onShow"
172- OR ScopeName:"custom-action"
173- )` ,
174- } ;
175- } , [ traceSource , rumSessionId , getTraceSourceFieldExpression ] ) ;
176-
177166 const eventsConfig = useMemo < ChartConfigWithOptDateRange | undefined > ( ( ) => {
178- if ( ! getTraceSourceFieldExpression || ! select || ! allEventsFilter )
179- return undefined ;
167+ if ( ! getTraceSourceFieldExpression || ! select ) return undefined ;
180168 return {
181169 select : select ,
182170 from : traceSource . from ,
@@ -193,9 +181,7 @@ function useSessionChartConfigs({
193181 limit : 4000 ,
194182 offset : 0 ,
195183 } ,
196- filters : [
197- tab === 'highlighted' ? highlightedEventsFilter : allEventsFilter ,
198- ] ,
184+ filters : eventFilters [ tab === 'highlighted' ? 'highlighted' : 'all' ] ,
199185 } ;
200186 } , [
201187 select ,
@@ -205,8 +191,7 @@ function useSessionChartConfigs({
205191 where ,
206192 whereLanguage ,
207193 tab ,
208- highlightedEventsFilter ,
209- allEventsFilter ,
194+ eventFilters ,
210195 getTraceSourceFieldExpression ,
211196 ] ) ;
212197
@@ -242,7 +227,7 @@ export default function SessionSubpanel({
242227} : {
243228 traceSource : TTraceSource ;
244229 sessionSource : TSessionSource ;
245- session : { serviceName : string } ;
230+ session : { serviceName : string ; sessionIdKey ?: SessionIdKey } ;
246231 rumSessionId : string ;
247232 start : Date ;
248233 end : Date ;
@@ -373,6 +358,7 @@ export default function SessionSubpanel({
373358 const { eventsConfig, aliasMap } = useSessionChartConfigs ( {
374359 traceSource,
375360 rumSessionId,
361+ sessionIdKey : session . sessionIdKey ,
376362 where : searchedQuery ,
377363 whereLanguage,
378364 start,
@@ -519,6 +505,7 @@ export default function SessionSubpanel({
519505 serviceName : session . serviceName ,
520506 sourceId : sessionSource . id ,
521507 sessionId : rumSessionId ,
508+ sessionIdKey : session . sessionIdKey ,
522509 dateRange : [ start , end ] ,
523510 } }
524511 playerSpeed = { playerSpeed }
0 commit comments