signoz/frontend/public/Icons/empty-funnel-icon.svg
Shaheer Kochai 6334e09a60
feat: Funnel Details Page Base Structure (#7364)
* feat: funnels list page basic UI

* feat: get funnels list data from mock API, and handle data, loading and empty states

* feat: implement funnel rename

* chore: move useFunnels to hooks/TracesFunnels

* feat: create traces funnels details basic page + funnel -> details redirection

* fix: properly display created at in funnels list item + preventDefault

* chore: add tab bar to trace funnel details page

* chore: traces funnel details page overall skeleton

* chore: traces funnel details results skeleton

* fix: hide step count for add button only

* feat: funnel details page steps and configuration (#7424)

* chore: add a new tab for traces funnels

* feat: funnels list page basic UI

* feat: get funnels list data from mock API, and handle data, loading and empty states

* feat: implement funnel rename

* refactor: overall improvements

* feat: implement sorting in traces funnels list page

* feat: add sort column key and order to url params

* chore: move useFunnels to hooks/TracesFunnels

* feat: implement traces funnels search and refactor search and sort by extracting to custom hooks

* chore: overall improvements to rename trace funnel modal

* chore: make the rename input auto-focusable

* feat: handle create funnel modal

* feat: delete funnel modal and functionality

* fix: fix the layout shift in funnel item caused by getContainer={false}

* chore: overall improvements and use live api in traces funnels

* feat: create traces funnels details basic page + funnel -> details redirection

* fix: funnels traces light mode UI

* fix: properly display created at in funnels list item + preventDefault

* refactor: extract FunnelItemPopover into a separate component

* chore: hide funnel tab from traces explorer

* chore: add check to display trace funnels tab only in dev environment

* chore: improve funnels modals light mode

* chore: overall improvements

* fix: properly pass funnel details link

* chore: address PR review changes

* chore: add tab bar to trace funnel details page

* feat: funnel step UI with service, span, and where filters

* feat: build radio button component

* refactor: use the SignozRadioButton in funnel results -> step transitions radio buttons

* feat: inter step config (i.e. latency type) UI

* chore: improve steps header styles by removing divider width

* feat: funnel steps title, description, popover UI + pass data from API

* chore: update FilterSelect component to conditionally add url params and accept on change

* fix: fix funnel step where clause and update the state variables for filters

* chore: add support for isMultiple and fix the type in FilterSelect

* feat: centralize the steps state management in StepsContent

* fix: move steps state up + pass steps count from state

* feat: implement auto save for updating the steps whenever any step changes

* feat: implement auto save for validating steps if service name or span names change

* feat: impelement funnel step removal

* feat: implement add details modal for funnel steps

* fix: fix the overflowing time range picker

* feat: funnel details empty state

* feat: add support for saving funnel description

* chore: overall improvements

* fix: fix the light mode styles

* fix: fix the failing build + broken search UI

* refactor: remove the reference of useLocation from traceFunnel item in TraceModulePage constant

* fix: fix the issue of update steps getting triggered on initial render if we have filters

* fix: fix the edge case of stale state causing filters to be re-added after removing

* feat: funnel details page results (#7451)

* feat: funnel metrics table component

* feat: funnel metrics and steps transition metrics components UI

* feat: funnel table component

* feat: slowest traces and traces with error components

* fix: overall light theme fixes

* fix: fix the warning

* chore: add empty and loading states to FunnelMetricsTable

* feat: get overall funnel metrics from the API

* fix: fix the empty state of funnel metrics table

* feat: get data for slowest traces and traces with errors

* fix: link trace id to trace details page

* fix: get data for funnel step transition metrics and refactor the existing data fetching logic

* refactor: add funnel context + overall refactoring and optimizations

* refactor: move steps states to funnel context + handle empty and run funnel disabled states

* feat: handle run funnel

* fix: improve empty state

* chore: rename isValidateStepsMutationLoading -> isValidateStepsLoading

* chore: improve query key

* fix: display loading state if funnel results are fetching

* refactor: move steps validation fetching and states to the context API

* fix: display loading state in funnel results while steps validation is fetching

* fix: call validate steps API only on changing the service name or span name of any step

* refactor: move validateStepsQuery key out of useEffect and update the dependencies

* chore: centralize hasIncompleteSteps and run validate only if steps have service and spans

* fix: handle all empty fields state + overall improvements

* fix: handle long where query tags

* feat: build the funnel result graph component

* feat: build the funnel result graph component

* feat: handle loading, error, empty states in funnel graph

* fix: don't display change percentage if % is 0

* refactor: overall improvements

* feat: get funnel steps graph data from API + move logic to custom hook

* fix: improve empty and error states

* fix: handle funnel graph legends width using css

* fix: redirect to trace funnels list page on clicking delete from funnel details

* fix: update the query cache while updating steps

* fix: implement debounced search for funnel list search

* fix: refetch steps graph data query on clicking run funnel / sync button

* fix: improve the step footer spacing

* chore: add gap between divider to inter-step-config

* fix: handle loading state while fetching

* feat: add span to funnel flow (from trace details page) (#7477)

* chore: display add to funnel icon on hovering any span in trace details page

* chore: add className to funnel item actions popover

* feat: add funnels tab to trace details v2 tab bar

* feat: add span to funnel flow

* chore: hide actions popover button from funnel item in span -> funnel flows

* chore: improve the funnel details UI in add span to funnel modal

* fix: display empty state + don't redirect to funnels list on delete success + overall improvements

* chore: add null check

* fix: display add to funnel button based on feature flag

* fix: display funnels tab in trace details based on feature flag

* fix: remove maxTagCount

* feat: change ms to ns

* chore: address review comments

* chore: remove feature flag and display trace funnels only in dev envirnoment

* fix: handle restoring steps if updating funnel steps fail

* refactor: update the get and delete funnel endpoints to adjust to the BE changes (#7697)

* refactor: address review comments

* fix: handle nested funnel response structure to fix missing funnel_id… (#7740)

* fix: handle nested funnel response structure to fix missing funnel_id in updates

Signed-off-by: Shivanshu Raj Shrivastava <shivanshu1333@gmail.com>

* chore: remove console.og

Signed-off-by: Shivanshu Raj Shrivastava <shivanshu1333@gmail.com>

* chore: revert explicitly passing funnelId to updateFunnelSteps

---------

Signed-off-by: Shivanshu Raj Shrivastava <shivanshu1333@gmail.com>
Co-authored-by: ahmadshaheer <ashaheerki@gmail.com>

* chore: fix api endpoint

Signed-off-by: Shivanshu Raj Shrivastava <shivanshu1333@gmail.com>

* refactor: incorporate the recent funnel details API changes (#7760)

* chore: trace funnels feedback changes (#7772)

* chore: change the copy from x traces to valid traces found / not found

* chore: add open funnel button in add span to funnel modal

* feat: display buttons for adding step details and funnel description + copy to clipboard

* feat: highlight funnel graph column based on selected (total / error span) from the legend items

* chore: trace funnel changes (#7780)

* refactor: handle funnels list search on frontend

* refactor: use funnel steps update API for adding / updating step title and description

* feat: allow selecting user's typed option in trace funnel service and span name dropdowns

* chore: properly render the -> between steps in funnel results

* fix: sync funnel step name with add details modal text fields

---------

Signed-off-by: Shivanshu Raj Shrivastava <shivanshu1333@gmail.com>
Co-authored-by: Yunus M <myounis.ar@live.com>
Co-authored-by: Shivanshu Raj Shrivastava <shivanshu1333@gmail.com>
2025-05-12 10:16:26 +05:30

3 lines
5.9 KiB
XML

<svg width="28" height="18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.895.112 5.105.085C1.756.085.665 1.443.665 4.277v9.424c0 2.318.72 4.191 4.44 4.191l17.792.027c3.34 0 4.44-1.431 4.44-4.192V4.304C27.336 1.19 26.154.112 22.895.112Z" fill="#504F4F"/><path d="M23.35 15.798h-1.928c-.86 0-1.3-.676-1.3-1.533 0-.86.44-1.534 1.3-1.534h1.928c.86 0 1.3.676 1.3 1.534-.004.797-.444 1.533-1.3 1.533Z" fill="#000"/><path d="M23.243 14.78H21.51c-.453 0-.442-.226-.442-.515 0-.29-.011-.516.442-.516h1.733c.454 0 .463.227.463.516-.003.266-.012.515-.463.515Z" fill="#8BC34A"/><path d="M6.58 15.798H4.65c-.86 0-1.3-.676-1.3-1.533 0-.86.44-1.534 1.3-1.534h1.93c.86 0 1.3.676 1.3 1.534 0 .797-.443 1.533-1.3 1.533Z" fill="#000"/><path d="M5.615 15.19a.924.924 0 1 0 0-1.85.924.924 0 0 0 0 1.85Z" fill="#F44336"/><path d="M17.758 15.798h-1.929c-.86 0-1.3-.676-1.3-1.533 0-.86.44-1.534 1.3-1.534h1.929c.86 0 1.3.676 1.3 1.534.002.797-.44 1.533-1.3 1.533Z" fill="#000"/><path d="m16.343 13.34 1.53.925-1.53.924V13.34Z" fill="#EEE"/><path d="M10.242 15.798h1.929c.86 0 1.3-.676 1.3-1.533 0-.86-.44-1.534-1.3-1.534h-1.93c-.86 0-1.3.676-1.3 1.534-.001.797.44 1.533 1.3 1.533Z" fill="#000"/><path d="m11.657 13.34-1.531.925 1.531.924V13.34Z" fill="#EEE"/><path d="M24.123 9.58a.837.837 0 0 1-.845.845H4.714a.837.837 0 0 1-.845-.844V4.094c0-.47.371-.844.845-.844h18.564c.471 0 .845.371.845.844v5.487Z" fill="#8DCC47"/><path opacity=".5" d="m9.03 6.237-.363.362a.144.144 0 0 1-.202 0l-.362-.362a.141.141 0 0 1-.042-.103V5.125a.15.15 0 0 1 .042-.102l.362-.362a.144.144 0 0 1 .202 0l.362.362a.141.141 0 0 1 .043.102v1.01c0 .04-.016.075-.043.102ZM9.03 8.65l-.363.363a.143.143 0 0 1-.202 0l-.362-.363a.141.141 0 0 1-.042-.102V7.54a.15.15 0 0 1 .042-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .043.102v1.01c0 .04-.016.075-.043.101ZM10.887 6.237l-.362.362a.143.143 0 0 1-.202 0l-.362-.362a.141.141 0 0 1-.043-.103V5.125a.15.15 0 0 1 .043-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .043.102v1.01c0 .04-.016.075-.043.102ZM13.532 6.237l-.362.362a.143.143 0 0 1-.202 0l-.362-.362a.141.141 0 0 1-.043-.103V5.125a.15.15 0 0 1 .043-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .043.102v1.01c0 .04-.016.075-.043.102ZM13.532 8.65l-.362.363a.143.143 0 0 1-.202 0l-.362-.363a.141.141 0 0 1-.043-.102V7.54a.15.15 0 0 1 .043-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .043.102v1.01c0 .04-.016.075-.043.101ZM11.14 4.888l-.362-.363a.143.143 0 0 1 0-.202l.363-.362a.141.141 0 0 1 .102-.042h1.011a.15.15 0 0 1 .102.042l.362.362a.144.144 0 0 1 0 .202l-.362.363a.141.141 0 0 1-.102.042h-1.011a.142.142 0 0 1-.102-.042ZM11.14 7.301l-.362-.362a.143.143 0 0 1 0-.202l.363-.362a.141.141 0 0 1 .102-.042h1.011a.15.15 0 0 1 .102.042l.362.362a.144.144 0 0 1 0 .202l-.362.362a.141.141 0 0 1-.102.043h-1.011a.143.143 0 0 1-.102-.043ZM11.14 9.715l-.362-.362a.143.143 0 0 1 0-.202l.363-.362a.141.141 0 0 1 .102-.043h1.011a.15.15 0 0 1 .102.043l.362.362a.144.144 0 0 1 0 .202l-.362.362a.141.141 0 0 1-.102.042h-1.011a.143.143 0 0 1-.102-.042ZM15.39 6.237l-.363.362a.143.143 0 0 1-.202 0l-.362-.362a.141.141 0 0 1-.042-.103V5.125a.15.15 0 0 1 .042-.102l.362-.362a.143.143 0 0 1 .203 0l.362.362a.141.141 0 0 1 .042.102v1.01c0 .04-.016.075-.042.102ZM18.037 6.237l-.362.362a.143.143 0 0 1-.202 0l-.362-.362a.141.141 0 0 1-.043-.103V5.125a.15.15 0 0 1 .043-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .042.102v1.01a.164.164 0 0 1-.042.102ZM18.037 8.65l-.362.363a.143.143 0 0 1-.202 0l-.362-.363a.141.141 0 0 1-.043-.102V7.54a.15.15 0 0 1 .043-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .042.102v1.01a.164.164 0 0 1-.042.101ZM15.644 4.888l-.363-.363a.144.144 0 0 1 0-.202l.363-.362a.141.141 0 0 1 .102-.042h1.01a.15.15 0 0 1 .103.042l.362.362a.143.143 0 0 1 0 .202l-.362.363a.141.141 0 0 1-.102.042h-1.011a.143.143 0 0 1-.102-.042ZM15.644 7.301l-.363-.362a.144.144 0 0 1 0-.202l.363-.362a.141.141 0 0 1 .102-.042h1.01a.15.15 0 0 1 .103.042l.362.362a.143.143 0 0 1 0 .202l-.362.362a.141.141 0 0 1-.102.043h-1.011a.143.143 0 0 1-.102-.043ZM15.644 9.715l-.363-.362a.144.144 0 0 1 0-.202l.363-.362a.141.141 0 0 1 .102-.043h1.01a.15.15 0 0 1 .103.043l.362.362a.143.143 0 0 1 0 .202l-.362.362a.141.141 0 0 1-.102.042h-1.011a.143.143 0 0 1-.102-.042ZM19.895 6.237l-.362.362a.143.143 0 0 1-.202 0l-.363-.362a.141.141 0 0 1-.042-.103V5.125a.15.15 0 0 1 .043-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .042.102v1.01a.164.164 0 0 1-.042.102ZM22.537 6.237l-.362.362a.143.143 0 0 1-.202 0l-.362-.362a.141.141 0 0 1-.043-.103V5.125a.15.15 0 0 1 .043-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .042.102v1.01a.127.127 0 0 1-.042.102ZM19.895 8.65l-.362.363a.143.143 0 0 1-.202 0l-.363-.363a.141.141 0 0 1-.042-.102V7.54a.15.15 0 0 1 .043-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .042.102v1.01a.164.164 0 0 1-.042.101ZM22.537 8.65l-.362.363a.143.143 0 0 1-.202 0l-.362-.363a.141.141 0 0 1-.043-.102V7.54a.15.15 0 0 1 .043-.102l.362-.362a.143.143 0 0 1 .202 0l.362.362a.141.141 0 0 1 .042.102v1.01a.127.127 0 0 1-.042.101ZM20.148 4.888l-.362-.363a.143.143 0 0 1 0-.202l.362-.362a.141.141 0 0 1 .103-.042h1.01a.15.15 0 0 1 .103.042l.362.362a.144.144 0 0 1 0 .202l-.362.363a.141.141 0 0 1-.102.042H20.25a.139.139 0 0 1-.103-.042ZM20.148 7.301l-.362-.362a.143.143 0 0 1 0-.202l.362-.362a.141.141 0 0 1 .103-.042h1.01a.15.15 0 0 1 .103.042l.362.362a.144.144 0 0 1 0 .202l-.362.362a.141.141 0 0 1-.102.043H20.25a.139.139 0 0 1-.103-.043ZM20.148 9.715l-.362-.362a.143.143 0 0 1 0-.202l.362-.362a.141.141 0 0 1 .103-.043h1.01a.15.15 0 0 1 .103.043l.362.362a.144.144 0 0 1 0 .202l-.362.362a.141.141 0 0 1-.102.042H20.25a.139.139 0 0 1-.103-.042Z" fill="#000"/><path d="M23.28 3.25c.471 0 .845.371.845.845V9.58a.837.837 0 0 1-.845.844H4.713a.837.837 0 0 1-.844-.844V4.095c0-.472.371-.845.844-.845H23.28Zm0-1.151H4.713a2 2 0 0 0-1.998 1.998v5.485a2 2 0 0 0 1.998 1.998h18.565a2 2 0 0 0 1.998-1.998V4.095c0-1.1-.896-1.996-1.996-1.996Z" fill="#000"/></svg>