* feat: add drilldown options in uplot
* feat: add time range to timeseries, bar charts
* feat: remove unwanted code
* feat: minor refactor
* feat: drilldown prop drilldowned
* feat: refactor code
* feat: update click plugin in uplot
* feat: lint fix
* feat: add search to breakout and other refactor
* feat: context menu - increase width and add overlay
* feat: add context links
* feat: context links init
* feat: context links init
* feat: context links init
* feat: update context link modal form init
* feat: add double way sync on urls and param
* feat: minor refactor
* feat: minor refactor
* feat: change contextlinks data structure
* feat: context menu changes init
* feat: context menu hook refactor
* feat: context links processors
* feat: context variables hook added
* feat: add support for field variables
* feat: minor refactor
* feat: minor refactor
* feat: minor refactor
* feat: handle on save
* feat: minor refactor
* feat: snapshot update
* feat: revert qbv5
* feat: aggregation header val
* feat: fix header color
* feat: minor refactor
* feat: minor refactor
* feat: fix breaking changes from qb v5
* feat: change api for breakout opitons
* feat: minor refactor
* feat: minor refactor
* fix: added fix for extractquerypararms when value is string in multivalue operator
* feat: minor refactor
* feat: add back in breakout
* feat: minor refactor
* feat: add substitute var api call to decode vars
* feat: minor fix
* feat: optimize query value comparison in QueryBuilderV2
* feat: minor fix
* feat: minor fix
* feat: test fix
* feat: added dynamic variables creation flow (#7541)
* feat: added dynamic variables creation flow
* feat: added keys and value apis and hooks
* feat: added api and select component changes
* feat: added keys fetching and preview values
* feat: added dynamic variable to variable items
* feat: handled value persistence and tab switches
* feat: added default value and formed a schema for dyn-variables
* feat: added client and server side searches
* feat: corrected the initial load getfieldKey api
* feat: removed fetch on mount restriction
* feat: added dynamic variable to the dashboard details (#7755)
* feat: added dynamic variable to the dashboard details
* feat: added new component to existing variables
* feat: added enhancement to multiselect and select for dyn-variables
* feat: added refetch method between all dynamic-variables
* feat: correct error handling
* feat: correct error handling
* feat: enforced non-empty selectedvalues and default value
* feat: added client and server side searches
* feat: retry on error
* feat: correct error handling
* feat: handle defautl value in existing variables
* feat: lowercase the source for payload
* feat: fixed the incorrect assignment of active indices
* feat: improved handling of all option
* feat: improved the ALL option visuals
* feat: handled default value enforcement in existing variables
* feat: added unix time to values call
* feat: added incomplete data message and info to search
* feat: changed dashboard panel call handling with existing variables
* feat: adjusted the response type and data with the new API schema for values
* feat: code refactor
* feat: made dyn-variable option as the default
* feat: added test cases for dyn variable creation and completion
* feat: updated test cases
* feat: added variable in url and made dashboard sync around that and sharable (#7944)
* feat: added dynamic variable to the dashboard details
* feat: added new component to existing variables
* feat: added enhancement to multiselect and select for dyn-variables
* feat: added refetch method between all dynamic-variables
* feat: correct error handling
* feat: correct error handling
* feat: enforced non-empty selectedvalues and default value
* feat: added client and server side searches
* feat: retry on error
* feat: correct error handling
* feat: handle defautl value in existing variables
* feat: lowercase the source for payload
* feat: fixed the incorrect assignment of active indices
* feat: improved handling of all option
* feat: improved the ALL option visuals
* feat: handled default value enforcement in existing variables
* feat: added unix time to values call
* feat: added incomplete data message and info to search
* feat: changed dashboard panel call handling with existing variables
* feat: adjusted the response type and data with the new API schema for values
* feat: code refactor
* feat: made dyn-variable option as the default
* feat: added test cases for dyn variable creation and completion
* feat: updated test cases
* feat: added variable in url and made dashboard sync around that and sharable
* feat: added test cases
* feat: added safety check
* feat: enabled url setting on first load itself
* feat: code refactor
* feat: cleared options query param when on dashboard list page
* feat: resolved conflicts
* feat: added dynamic variable suggestion in where clause
* feat: added test cases for hooks and api call functions
* feat: added test case for querybuildersearchv2 suggestion changes
* feat: code refactor
* feat: updated test case
* feat: corrected the regex matcher for resolved titles
* feat: added ability to add/remove variable filter to one or more existing panels
* feat: added widgetselector on variable creation
* feat: show labels in widget selector
* feat: added apply to all and variable removal logical
* feat: refectch only related and affected panels in case of dynamic variables
* feat: added button loader for apply-all
* feat: light-mode styles
* feat: minor refactor
* feat: added test cases
* feat: refactor
* feat: remove consoles
* feat: pass panel types to substitutevars
* feat: cross filtering init
* fix: added fix for query builder filters
* feat: cross filtering add set/unset/create functionality
* feat: test update
* fix: added migration to filter expression for crud operations of variable
* feat: format legend name according to existing format
* feat: breakout test init
* feat: breakout test match query
* feat: context links tests
* feat: minor refactor
* feat: show edit only if user has access
* feat: added dynamic variables creation flow (#7541)
* feat: added dynamic variables creation flow
* feat: added keys and value apis and hooks
* feat: added api and select component changes
* feat: added keys fetching and preview values
* feat: added dynamic variable to variable items
* feat: handled value persistence and tab switches
* feat: added default value and formed a schema for dyn-variables
* feat: added client and server side searches
* feat: corrected the initial load getfieldKey api
* feat: removed fetch on mount restriction
* feat: added dynamic variable to the dashboard details (#7755)
* feat: added dynamic variable to the dashboard details
* feat: added new component to existing variables
* feat: added enhancement to multiselect and select for dyn-variables
* feat: added refetch method between all dynamic-variables
* feat: correct error handling
* feat: correct error handling
* feat: enforced non-empty selectedvalues and default value
* feat: added client and server side searches
* feat: retry on error
* feat: correct error handling
* feat: handle defautl value in existing variables
* feat: lowercase the source for payload
* feat: fixed the incorrect assignment of active indices
* feat: improved handling of all option
* feat: improved the ALL option visuals
* feat: handled default value enforcement in existing variables
* feat: added unix time to values call
* feat: added incomplete data message and info to search
* feat: changed dashboard panel call handling with existing variables
* feat: adjusted the response type and data with the new API schema for values
* feat: code refactor
* feat: made dyn-variable option as the default
* feat: added test cases for dyn variable creation and completion
* feat: updated test cases
* feat: added dynamic variable suggestion in where clause
* feat: added test cases for hooks and api call functions
* feat: added test case for querybuildersearchv2 suggestion changes
* feat: code refactor
* feat: updated test case
* feat: corrected the regex matcher for resolved titles
* feat: added ability to add/remove variable filter to one or more existing panels
* feat: added widgetselector on variable creation
* feat: show labels in widget selector
* feat: added apply to all and variable removal logical
* feat: refectch only related and affected panels in case of dynamic variables
* feat: added button loader for apply-all
* feat: light-mode styles
* fix: added migration to filter expression for crud operations of variable
* feat: reverted dynamic variable url config changes (#8877)
* Revert "feat: changed query param name"
This reverts commit 62bee5f003bf74b0da1c5951f1b5d0f2c250905d.
* Revert "feat: added user-friendly format to dashboard variable url"
This reverts commit 6de8b1c2e8c6a838941014ea4929e9f5c908d975.
* feat: reverted url var changes
* feat: reverted url changed from usedashboardvarupdate hook
* feat: send empty array for widgetId
* feat: added type in the variables in query_range payload for dynamic
* feat: minor fixes
* fix: added fix for multivalue operator without brackets
* feat: minor fix
* feat: fix failing test
* feat: change revert
* test: added tests for querycontextUtils + querybuilderv2 utils
* fix: added fix for replacing filter with the new value
* fix: added fix for replacing filters + datetimepicker composite query
* test: fixed querybuilderv2 utils test
* feat: handle number dataType in filters
* feat: correct the variable addition to panel format for new qb expression
* feat: remove other queries in breakout
* feat: add metric to traces mapping
* feat: pass proper time range
* feat: update time range logic
* feat: value panel drilldown init
* feat: value panel drilldown init
* feat: enable context links in value panel
* feat: minor fix
* feat: update snapshot
* feat: hide breakout in value panel
* feat: add panel type to view mode
* feat: add support to change panel in breakouts
* feat: panel change for breakout logic added
* chore: fix style
* chore: show variables suggestion while creating context links
* chore: add timestamp to graphs
* chore: add timestamp to table panel
* chore: fix failing tests
* chore: fix infinite re-rendering due to queryRange
* chore: send appropriate time range when signal is metrics
* chore: show variables suggestion while creating context links
* chore: minor refactor
* chore: show trace details link if filter has trace_id
* chore: fix infinite render of table component
* chore: added tests for v2
* fix: context links set from dropdown
* chore: minor refactor
* chore: minor refactor
* chore: fix test
* chore: fix timerange for apm metrics
* fix: get correct timestamp for clicked data
* chore: comment out change to histogram on breakout by number
* chore: change panel type on panel type change in url
* chore: remove consoles
* feat: added dynamic variables creation flow (#7541)
* feat: added dynamic variables creation flow
* feat: added keys and value apis and hooks
* feat: added api and select component changes
* feat: added keys fetching and preview values
* feat: added dynamic variable to variable items
* feat: handled value persistence and tab switches
* feat: added default value and formed a schema for dyn-variables
* feat: added client and server side searches
* feat: corrected the initial load getfieldKey api
* feat: removed fetch on mount restriction
* feat: added dynamic variable to the dashboard details (#7755)
* feat: added dynamic variable to the dashboard details
* feat: added new component to existing variables
* feat: added enhancement to multiselect and select for dyn-variables
* feat: added refetch method between all dynamic-variables
* feat: correct error handling
* feat: correct error handling
* feat: enforced non-empty selectedvalues and default value
* feat: added client and server side searches
* feat: retry on error
* feat: correct error handling
* feat: handle defautl value in existing variables
* feat: lowercase the source for payload
* feat: fixed the incorrect assignment of active indices
* feat: improved handling of all option
* feat: improved the ALL option visuals
* feat: handled default value enforcement in existing variables
* feat: added unix time to values call
* feat: added incomplete data message and info to search
* feat: changed dashboard panel call handling with existing variables
* feat: adjusted the response type and data with the new API schema for values
* feat: code refactor
* feat: made dyn-variable option as the default
* feat: added test cases for dyn variable creation and completion
* feat: updated test cases
* feat: fix lint and test cases
* feat: fix typo
* feat: fixed test case
* feat: added dynamic variable suggestion in where clause
* feat: added test cases for hooks and api call functions
* feat: added test case for querybuildersearchv2 suggestion changes
* feat: code refactor
* feat: corrected the regex matcher for resolved titles
* feat: fixed test cases
* feat: added ability to add/remove variable filter to one or more existing panels
* feat: added widgetselector on variable creation
* feat: show labels in widget selector
* feat: added apply to all and variable removal logical
* feat: refectch only related and affected panels in case of dynamic variables
* feat: added button loader for apply-all
* feat: light-mode styles
* fix: added migration to filter expression for crud operations of variable
* feat: added type in the variables in query_range payload for dynamic
* feat: correct the variable addition to panel format for new qb expression
* feat: added test cases for dynamic variable and add/remove panel feat
* feat: implemented where clause suggestion in new qb v5
* feat: added retries for dyn variable and fixed on-enter selection issue
* feat: added relatedValues and existing query in param related changes
* feat: sanitized data storage and removed duplicates
* fix: fixed typechecks
* feat: updated panel wait and refetch logic and ALL option selection
* feat: fixed variable tabel reordering issue
* feat: added empty name validation in variable creation
* feat: change value to searchtext in values API
* feat: added option for regex in the component, disabled for now
* feat: added beta and not rec. tag in variable tabs
* feat: added check to prevent api and updates calls with same payload
* feat: optimized localstorage for all selection in dynamic variable and updated __all__ case
* feat: resolved variable tables infinite loop update error
* feat: aded variable name auto-update based on attribute name entered for dynamic variables
* feat: modified only/all click behaviour and set all selection always true for dynamic variable
* feat: fix dropdown closing doesn't reset us back to our all available values when we have a search
* feat: handled all state distinction and carry forward in existing variables
* feat: trucate + n more tooltip content to 10
* feat: fixed infinite loop because of dependency of frequently changing object ref in var table
* feat: fixed inconsist search implementations
* feat: reverted only - all updated area implementation
* feat: added more space for search in multiselect component
* feat: checked for variable id instead of variable key for refetch
* feat: improved performance around multiselect component and added confirm modal for apply to all
* feat: rewrite functionality around add and remove panels
* feat: changed color for apply to all modal
* feat: added changes under flag to handle variable specific removal for removeKeysFromExpression func
* feat: added validation in variable edit panel
* chore: fix dynamic variable update in context menu to latest logic
* chore: minor fix
* chore: type fix
* fix: remove unwanted code
* fix: remove unwanted code
* fix: resolved pr comments
* fix: minor fix
* fix: fix tests
* fix: style fix
---------
Co-authored-by: Aditya Singh <adityasingh@Adityas-MacBook-Pro.local>
Co-authored-by: Abhi Kumar <ahrefabhi@gmail.com>
Co-authored-by: SagarRajput-7 <162284829+SagarRajput-7@users.noreply.github.com>
Co-authored-by: SagarRajput-7 <sagar@signoz.io>
* feat: added celery task feature - with task garphs and details
* feat: added celery bar graph toggle states UI
* feat: added histogram charts and right panel
* feat: added task latency graph with different states
* feat: added right panel trace navigation
* feat: added dynamic stepinterval based on timerange
* feat: changed histogram occurences to bar
* feat: onclick right panels for celery state bar graphs
* feat: pagesetup and tabs with kafka setup
* feat: custom series for bar for color generation
* feat: fixed test cases
* feat: added new celery overview page
* feat: added table feat and column details
* feat: improved table style and column configs
* feat: added service name filter and common filter logic
* feat: code fix
* feat: code fix
* feat: added celery task feature - with task garphs and details
* feat: added celery bar graph toggle states UI
* feat: added histogram charts and right panel
* feat: added task latency graph with different states
* feat: added right panel trace navigation
* feat: added navigateToTrace logic
* feat: added value graph and global filter logic
* feat: added dynamic stepinterval based on timerange
* feat: changed histogram occurences to bar
* feat: onclick right panels for celery state bar graphs
* feat: pagesetup and tabs with kafka setup
* feat: custom series for bar for color generation
* feat: fixed test cases
* feat: update styles
* fix: added onboarding setup for producer/consumer for Messaging queues
* fix: polled onboarding status api
* feat: added onboarding status api with useQueury functions and updated endpoints
* feat: added onboarding status api util for attribute data
* feat: refactoring and url query changes
* feat: changed start and end time to nanosecond for api payload
* feat: added comment description
* fix: ch queries sending builder as query type in query range api for exceptions alerts
* fix: ch queries sending builder as query type in query range api for exceptions alerts
* fix: alerts routing from logs explorer and dashboards
* feat: update time range selection flows to handle relative and absolute times
* fix: lint error
* fix: lint error
* feat: update logic to handle custom relative times on load and standardize relative time formats
* fix: type issue
* fix: handle light mode and on custom time range select
* chore: update alert frequency corresponding times
* chore: update copy URL
* feat: update styles
* fix: [SIG-565]: design feedback for integrations
* feat: added dotted line in the test connection modal
* feat: handle the URL change for integration details page to support back navigation
* feat: added ghost loading states
* feat: added margin for details header
* feat: added margin for details header
* feat: increase the list sizes to 20
* fix: handle icons
* fix: remove unused classes
* refactor: search in dropdown
* refactor: name of the view to i18
* refactor: make the use of useForm from antd
* refactor: moved QuerySearchParamNames into save view module
* refactor: reset to query build when click on explorer link
* refactor: save view prd design changes
* refactor: reverted resetQuery in querybuilder
* refactor: queryParams to query.ts in querybuilder constants
* fix: redirect with saved view is updated
* refactor: removed useffect logic for updating query
---------
Co-authored-by: Palash Gupta <palashgdev@gmail.com>
* feat: add the export panel to the traces explorer
* feat: onExport dashboard widget is updated
* chore: made common hook useDashboard
---------
Co-authored-by: Palash Gupta <palashgdev@gmail.com>
* chore: eslint is updated
* chore: some eslint fixes are made
* chore: some more eslint fix are updated
* chore: some eslint fix is made
* chore: styled components type is added
* chore: some more eslint fix are made
* chore: some more eslint fix are updated
* chore: some more eslint fix are updated
* fix: eslint fixes
Co-authored-by: Pranshu Chittora <pranshu@signoz.io>
* chore: Router provider is removed
* update: localstorage set get is added
* update: AppLayout is updated
* fix: adapter type is fixed
* fix: Metric and metric application is now fixed
* fix: Metrics page application is updated
* fix: Tracepage is made fix
* fix: app layout is updated
* fix: global Time reducer is updated
* refactor: getService api is added
* update: metrics reducer is added
* update: service list is fixed
* fix: Metrics page is updated
* fix: api for the metrics application are done
* fix: metrics reducer is updated
* fix: metrics application is updated
* fix: content layout shift is removed
* fix: Metric application is updated
* fix: metrics application is updated
* fix: Metrics application is updated
* fix: Application tab is updated
* chore: graph is updated
* chore: Metrics application is updated
* fix: chart x-axis is label is now fixed
* fix: application tab is updated
* fix: Top end points is added and re-redering in stopped
* fix: fixed the edge case when user changes the global time then updated data is fetched
* fix: Settings page is updated
* chore: AppLayout is updated
* chore: AppLayout is updated
* chore: applayout is updated
* chore: changed default loading is true in the global time reducer
* chore: Global Time option is fixed
* chore: Signup and Applayout is updated
* chore: Button text is updated
* chore: Button in the metrics application is updated
* chore: dashboard menu item position in the side nav is updated
* fix: Logo is now redirecting to the Application page
* fix: Application page is updated
* fix: AppLayout is updated
* fix: starting and ending time is fixed
* fix: Metrics Application is updated to the previous chart data
* update: getDateArrayFromStartAndEnd function is added
* update: Empty graph data is added
* fix: External Call and DB Call Tabs graph are updated when there is no data a empty data is rendered
* fix: onboarding modal condition is fixed and new calling api every 50000 ms to fetch the data
* fix: onBoarding condition modal is updated
* fix: onBoarding condition modal is updated
* fix: onBoarding condition modal is updated
* fix: Application chart re rendering issue is fixed
* fix: Application page is changed when we change the global time
* chore: step size is increased from 30 to 60
* chore: build is now fixed
* chore: metrics application page is updated
* fix: empty graph is now fixed
* fix: application metrics graph is now fixed
* update: seperate api for trace page are made
* fix: /trace page is updated
* chore: Filter of the Trace page is updated
* chore: initial trace page is updated
* fix: changing the filters,fetches the updated values from the backend
* chore: Trace page is updated
* update: trace page is updated
* fix: trace page is updated
* Refresh Text is updated
* update: Trace page is updated
* update:header is updated
* update: Trace page is updated
* update: Trace page is updated
* update: Trace page is updated
* update: Trace page is updated
* update: why did you re render is added
* update: trace page is updated
* update: trace page is updated
* update: Loading is updated
* update: start and end time is updated
* fix: metrics and metrics page redudant calls is reduced
* fix: Metrics Application page reducer is reset on the unmount
* fix: Trace page reducer is reset when the page is unmounted
* fix: Custom Visualizations is now fetching only one api to get the details
* fix: Trace page is updated
* fix: composeEnhancers is updated
* fix: metrics application is updated
* chore: webpack eslint fixes are updated
* chore: some of the type definition is added
* fix(UI): Trace page bug is resolved
* chore(UI): if length of the selected tags is zero updated the value over the form
* chore(UI): check for the no spans filter is updated
* refactor: store is updated
* temp
* fix: eslint error is fixed
* fix:eslint linting error is updated
* chore: react-grid-layout is added
* chore: linting changes are updated
* chore: linting changes are updated
* chore: @types/node is moved to devDependecies and @types/react-grid-layout is added
* chore: tsconfig is updated
* chore: updateUrl function is updated
* feat: All Dashboard is updated
* feat: All Dashboard page is updated
* feat: New Dashboard is added
* feat: App Layout is updated
* feat: Add Tags is updated
* chore: uuid package is added
* chore: AppRoutes is updated
* chore: UI components are updated
* chore: baseUrl is added in the apiUrl and removed from other api request
* chore: commonApi Response is updated
* chore: ErrorResponse handler is updated
* chore: useFetch hook is made
* chore: axios instance is updated
* chore:some of the changes are updated
* chore: list of all dashboard types is updated
* chore: logic is updated to the global state
* chore: all dashboard data is fetched from the global state
* chore: unnessary prop is removed
* chore: changes are updated
* chore: getAll and create is updated
* chore: getDashboard is updated
* chore: isEditMode is moved to the global state
* chore: get,getAll is updated
* chore: update title,tags,description is now fixed
* chore: new widget is updated
* chore: graph is updated
* chore: input component accept input props
* chore: name of the dashboard is updated
* chore: Widgets page in WIP
* chore: types for the error api is updated
* chore: getQuery data is updated
* chore: widget types is updated
* default widget is updated
* chore: getQuery is updated
* chore: Add Query is updated
* fix: creating new widget bug is resolved
* chore: widget type is updated
* chore: Query error is updated
* chore: query error and success state is handled
* chore: label of graph in WIP
* chore: legend input placeholder is updated
* chore: changes are updated
* chore: no data component is updated and error component is rendered along with the data
* chore: data fetching over the initial render is fixed over the initial mount
* chore: convertDateToAndPm is updated
* chore: x-axis label is now fixed
* chore: label is updated
* chore: labels name is updated
* chore: labels name is updated
* chore: labels color is updated
* chore: values are parsed in float
* chore: tags is updated
* chore: datasets type is updated
* chore: graph is updated
* chore: more eslint rules are updated
* chore: some of the linting changes and data is updated
* chore: chart.js version is updated
* chore: gitignore is updated
* chore: graph component is updated
* chore: apply functionality is updated
* chore: dashboard is now saved
* chore: getChartData is updated
* feat: Dashboard graph is reflected
* chore: some of the bugs is resolved
* fix: aspect ratio is made false
* chore: some small css are fixed
* chore: widgetId and graphType is preAdded if present in the search params
* chore: user is now able to change the time via global time and reflect new graph values
* chore: query is updated
* chore: onBlurHandler is updated
* fix: usage explorer is now fixed
* chore: bar element is updated
* chore: chartjs adapter is added
* chore: old instance for the charts are removed via re-chart
* chore: re-chart is removed
* chore: get chart data is updated
* chore: added the counter in the useEffect
* chore: history is added
* chore: some of the features are updated
* chore: history package is updated
* chore: AppRoutes is updated
* fix: some are components breaking while moving from BrowserRouter to Router
* chore: Dashboard icon is updated
* chore: Full screen component is updated
* stepSize (optional) is added in the widgets type
* fix: fetching query result is fixed
* update: start and end time function is updated
* fix: Alert color is updated
* update: Query fetching is updated
* fix: start and end time is fixed
* fix: chartjs data is compatable for larger data set and no ajax call for empty query is fixed
* fix: last 1 week selection is fixed
* fix: legends is added
* update: antd version is updated
* feat: value graph is updated
* feat: Title is added for the value graph
* fix: Full Screen view is updated with refresh functionality and alignment is updated to flex-end
* fix: Graph component is updated
* fix: metric graph are fixed
* feature: Delete widget functionality is updated
* fix: empty value bug is resolved
* fix: delete widget position is fixed
* fix: resize functionality is fixed
* fix: sumation of the query is fixed
* update: default legend is removed
* update: resize handlers is removed and service metric component is updated
* fix: legends is updated
* update: querySuccess reducer is updated
* Modal component is updated
* fix: ant-d tab css is updated of the tabs
* update: stringToHTML is made
* update: graph component is updated
* fix: several component in the metric and traces are updated
* wip: build error is fixed
* fix: metric section is fixed
* update: console.log are commented
* fix: onClick graph re-render is stopped
* fix: trace graph is updated
* fix: updated the min,max time for the value type graph
* getQueryMaxMin Time is updated
* fix: trace chart is updated
* fix: re-render is fixed
* fix: localstorage persistance is there
* update: if label is not present legend is not displayed
* fix: graph is changed while updated the global time
* fix: default title is updated while creation of the dashboard
* update: external database call tabs are made of same size
* fix: query graph max-min time is updated in the full screen mode
* fix: Request per sec graph is fixed
* fix: ErrorChart is fixed
Co-authored-by: Palash gupta <palashgdev@gmail.com>
* Added span kind filter
* changed state to const
* Removed unnecessary console
* Fixed undefined issue, changed a bit in the spanKind type
* set default value for parameter passed in handleChangeSpanKind func