* feat: json Body Keys
* feat: telemetry types
* feat: change ExtractBodyPaths
* chore: minor comment change
* chore: func rename, file rename
* chore: change table names
* chore: reflect changes from the overhaul
* test: fixing test 1
* fix: test TestQueryToKeys
* fix: test TestPrepareLogsQuery
* chore: remove db
* chore: go mod
* chore: changes based on review
* chore: changes based on review
* fix: in LIKE operation
* chore: addressed few changes
* revert: test file
* fix: comparison fix
* test: add TestBuildListLogsJSONIndexesQuery
* fix: in test TestBuildListLogsJSONIndexesQuery
* fix: pull promoted paths in single db call
* fix: reducing db calls
* test: fix TestBuildListLogsJSONIndexesQuery
* fix: test TestConditionForJSONBodySearch
* fix: lint try 1
* chore: review changes based on cursor
* fix: use enums only
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
* feat: expand related search keywords and add React Native option to onboarding configurations
* feat: enhance onboarding data source configurations
With nested questions for migration and log collection, and add new related logos.
* chore: update React Native doc links to absolute URLs and remove 404
* feat: revert datasource changes
* feat: implement copy functionality for individual JSON tree nodes in log details
* chore: add tests for individual json tree nodes in log details
* test: enhance copy button tests for BodyTitleRenderer
* feat: add support for copying any node in json tree in log details
* test: update BodyTitleRenderer tests to verify copy functionality for JSON tree nodes
* fix: hide isRoot and isEntryPoint options from columns options
* test: add tests to ensure isRoot and isEntryPoint are hidden in column options
* refactor: improve the columns exclusion logic + update test
This pull request refines how deprecated and new trace fields are mapped and handled within the query service, ensuring more accurate field translation and data type usage. It also updates related test cases and constant definitions to reflect these changes, improving consistency and correctness when working with trace attributes like `kind` and `kind_string`.
This pull request refactors error variable naming throughout the codebase for improved clarity and consistency. The main change is replacing the generic variable name err with apiErr when handling errors of type *model.ApiError. Additionally, some related function signatures and comments were updated to match this change. No business logic or behaviour is affected; this is a code quality and maintainability improvement.
* feat: synchronise panel type state
* feat: refactor explorer queries
* feat: use explorer util queries
* feat: minor refactor
* feat: update test cases
* feat: remove code
* feat: minor refactor
* feat: minor refactor
* feat: update tests
* feat: replace callout with warning icon for trace operators
* feat: update list query logic to only support first staged query
* feat: fix export query and saved views change
* feat: test fix
* feat: add list and trace query util
* feat: integrate list and trace query
* feat: remove util
* feat: trace explorer container cleanup
* feat: remove order by from trace view
* fix: fix cancel btn in traces explorer view
* feat: remove offset in logs list query
* feat: show trace op caution only in list view
* feat: send correct export query
* feat: remove try catch
---------
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
* fix: fix typeerror in getYAxisFormattedValue function
* fix: added test cases
* fix: added format equals none handling in try-catch
* fix: test cleanup
* style: fix the UI issues in endpoint metadata pills
* style: fix the UI issues in endpoint and QB filters
* fix: fix the light mode colors for domain drawer
* fix: fix datatype and type-tag pills breaking for smaller width QB search
* style: enhance text overflow handling in QueryBuilder search options
* fix: remove visible 'View Traces' buttons on drag selection in UPlot chart options
* fix: add border-bottom to table cells when pagination is not present
---------
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
* feat: update logEvent, rename `tenant_url` to `deployment_url`
* feat: Update telemetry attributes, add logs format options tooltip, enable login form submission with Enter
* test: update test
* feat: add queriesCount prop to QueryV2 and conditionally render delete option
* fix: make the trace operator label match the case and color of QB addons
* fix: fix the inconsistency in the styles of trace operator and other query addons
* fix: make the QB footer buttons styles consistent with other buttons
* fix: fix similar colors for different queries in timeseries view
* fix: enhance the UI of formula label to match the other add-ons
* fix: update styles for metrics operators and select components for consistency
* fix: format styles for query footer buttons for improved readability
* fix: update #888 to var(--bg-vanilla-400)
* fix: add hover bg for attributes on hover
* fix: sort service execution times in descending order for better visibility
* fix: make the % exec time colors consistent with colors in other components
* fix: fix the light mode colors for signoz radio group component hover and disabled states
* fix: add lightmode styles for attribute hover style
* fix: prevent displaying double tooltips in span attributes
* fix: remove the temporary style change
* fix: don't display span attribute if it doesn't have value
* fix: remove background color from action button in attributes styles
* fix: fix the background of border handle in light mode
* fix: update action button visibility based on open state
* fix: fix the divider color between tabs in light mode
* refactor: implement related signals buttons using button group
* revert: fix: fix the light mode colors for signoz radio group component hover and disabled states
* chore: remove link to old trace details page and remove the component and files
* fix: don't display span attribute if it has value "-"
* feat: add constant to prevent consumers breaking
* fix: update role from radio to button for metrics tab in SpanDetailsDrawer tests
* fix: update role from radio to button for logs tab in SpanDetailsDrawer tests
* fix: add null checks to service execution time calculations
* fix(authz): sqlmigration for postgres
* fix(authz): only launch transaction for pg
* fix(authz): fix the sql migration number
* fix(authz): add integration tests for public_dashboard
* fix(authz): added changes for tuples in integration tests
* fix(authz): added changes for tuples in integration tests
* fix(authz): reduce cyclomatic complexity
* chore: role change integration tests added
* fix: use protected endpoints and role elevate from viewer to admin
---------
Co-authored-by: Vikrant Gupta <vikrant@signoz.io>
* chore: hide span selector in exceptions page
* refactor: remove unnecessary order by functionality and related components from TracesView
* chore: remove unnecessary icon from QB in trace funnels step
* chore: improve result table styles in trace funnels
* chore: fix formatting
* Revert "refactor: remove unnecessary order by functionality and related components from TracesView"
This reverts commit 724e9f67af.
* fix: fix the issue of aggregation incorrectly falling back to count
* refactor: add support for v5 queries in endPointDetailsDataQueries of EndPointDetails
* chore: add common utility functions
* chore: add convertFiltersWithUrlHandling helper
* fix: remove the aggregateOperator fallback logic changes
* refactor: migrate external APIs -> endpoint metrics query range request to v5 (#9494)
* refactor: migrate endpoint metrics api to v5
* fix: overall improvements
* fix: add url checks
* chore: remove unnecessary tests
* chore: remove old test
* chore: aggregateAttribute to aggregations
* refactor: migrate status bar charts to v5 (#9548)
* refactor: migrate status bar charts to v5
* chore: add tests
* chore: remove unnecessary tests
* chore: aggregateAttribute to aggregations
* fix: fix the failing test
* refactor: migrate external APIs -> domain metrics query range request to v5 (#9484)
* refactor: migrate domain metrics query_range to v5
* fix: overall bugfixes
* chore: fix the failing tests
* refactor: migrate dependent services to query range v5 (#9549)
* refactor: migrate dependent services to query_range v5
* chore: remove unnecessary tests
* chore: aggregateAttribute to aggregations
* refactor: migrate rate over time and latency charts query to v5 (#9544)
* fix: fix the issue of aggregation incorrectly falling back to count
* refactor: migrate rate over time and latency charts query to v5
* chore: write tests for rate over time and latency over time charts
* chore: overall improvements to the test
* fix: add url checks
* chore: remove the unnecessary tests
* chore: aggregateAttribute to aggregations
* fix: fix the failing tests
* chore: remove unnecessary test
* refactor: migrate "all endpoints" query range request to v5 (#9557)
* feat: add support for hiding columns in GridTableComponent
* refactor: migrate all endpoints section query payload to v5
* chore: aggregateAttribute to aggregations
* test: add V5 migration tests for all endpoints tab
* fix: add http.url exists or url.full exists to ensure we don't get null data
* fix: fallback to url.full while displaying endpoint value
* fix: update renderColumnCell type to accept variable arguments
* fix: remove type casting for renderColumnCell in getAllEndpointsWidgetData
* refactor: migrate external APIs -> domain dropdown query range request to v5 (#9495)
* refactor: migrate domain dropdown request to query_range v5
* fix: add utility to add http.url or url.full to the filter expression
* chore: aggregateAttribute to aggregations
* fix: add http.url exists or url.full exists to ensure we don't get null data
* fix: fallback to url.full if http.url doesn't exist
* fix: fix the failing test
* test: add V5 migration tests for endpoint dropdown query
* fix: fix the failing ts check
* fix: fix the failing tests
* fix: fix the failing tests
* feat(authz): add stats reporting for public dashboards
* feat(authz): add stats reporting for public dashboards
* feat(authz): add stats reporting for public dashboards
* feat(authz): base setup for public shareable dashboards
* feat(authz): add support for public masking
* feat(authz): added public path for gettable public dashboard
* feat(authz): checkpoint-1 for widget query to query range conversion
* feat(authz): checkpoint-2 for widget query to query range conversion
* feat(authz): fix widget index issue
* feat(authz): better handling for dashboard json and query
* feat(authz): use the default time range if timerange is disabled
* feat(authz): use the default time range if timerange is disabled
* feat(authz): add authz changes
* feat(authz): integrate role with dashboard anonymous access
* feat(authz): integrate the new middleware
* feat(authz): integrate the new middleware
* feat(authz): add back licensing
* feat(authz): renaming selector callback
* feat(authz): self review
* feat(authz): self review
* feat(authz): change to promql
Move away from unbounded cache for `lastObservedAt` stat, which was powered by BigCache (unbounded), to Ristretto, a bounded in-memory cache (https://github.com/dgraph-io/ristretto).
This PR is first step towards moving away from unbounded caches in the system, more PRs to follow.
* refactor: PostableRule struct
- made validation part of `UnmarshalJSON`
- removed validation from `processRuleDefaults` and updated signature to remove error from return type
* refactor: updated error message for missing composite query
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
* feat(authz): openfga sql migration
* feat(authz): formatting and naming
* feat(authz): formatting and naming
* feat(authz): extract function for store and model id
* feat(authz): reorder the provider
* fix: fix the issue of aggregation incorrectly falling back to count
* refactor: add support for v5 queries in endPointDetailsDataQueries of EndPointDetails
* chore: add common utility functions
* refactor: migrate status code table to v5
* fix: status code table formatting
* chore: add tests for status code table v5 migration
* chore: add convertFiltersWithUrlHandling helper
* chore: remove unnecessary tests
* chore: aggregateAttribute to aggregations
* fix: remove the aggregateOperator fallback logic changes
* fix: fix the failing test
* fix: add response_status_code exists to the status code table query
* feat: synchronise panel type state
* feat: refactor explorer queries
* feat: use explorer util queries
* feat: minor refactor
* feat: update test cases
* feat: remove code
* feat: minor refactor
* feat: minor refactor
* feat: update tests
* feat: update list query logic to only support first staged query
* feat: fix export query and saved views change
* feat: test fix
* feat: export link fix
---------
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
The issue was with how Mergo Treats Zero values, Mergo only fills **zero-value** fields in the destination.
Since `false` is the zero value for `bool`, it always gets **replaced** by `true` from the source. Using pointers doesn’t help—`Merge` dereferences them and still treats `false` as zero.
* perf: optimize tooltip plugin with caching, memoization, and improved DOM operations
* perf(uplot): optimize tooltip with focused sorting and O(n²) to O(n) reduction
* perf(uplot): optimize threshold rendering with batched canvas operations
* chore: pr review changes
* chore: removed last index check for tooltip generation
* chore: shifted to rendering only one points when hovered
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
* feat: migrate top 10 errors query_range request to v5
* chore: remove unnecessary tests
* chore: improve the top error tests
* fix: send status_message EXISTS only if the toggle is on
* fix: get the count value and simplify the null check
* fix: send has_error = true
* chore: fall back to url.full if url.path doesn't exist
* refactor: address the PR review requested changes
* chore: add test to check if we're sending the correct filters
---------
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
* fix: removing duplicate creation of user if user does not exist already
* test: adding api test case
* fix: updated test cases
* fix: remove unnecessary logging and clean up connection params API
* feat: add gateway fixture and integrate with signoz for connection parameters
* feat: add cloudintegrations to the test job matrix in integrationci.yaml
* fix: remove outdated comments from make_http_mocks fixture
* fix: remove deprecated ZeusURL from build configurations
* feat: enable users to query meter specific data in alerts
* feat: enable metrics / meter selection in alerts and dashboards
* feat: enable setting alerts for ingestion limits
* feat: set where clause when setting alert for ingestion key
* feat(meter): handle the where clause changes
* feat: remove add alert for infinite values
* feat: add unit test cases for set alert flow
* feat: handle inital and onchange state for meter source
* feat: pass thresholds array from ingestion settings
* feat: derive source from value change rather than local state
---------
Co-authored-by: Vikrant Gupta <vikrant@signoz.io>
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
* feat: show span percentile in span details
* feat: resource attribute selection for span percentile
* feat: wait for 2 secs for the first fetch of span percentile
* feat: add unit test cases for span percentiles
* feat: use style tokens
* feat: remove redundant test assertion
* chore: resolve conflicts
* feat: reset initial wait state on span change
* feat: update payload , endpoint as per new backend changes
* feat: address review comments
* feat: fetch span percentile without specific resource attributes - first time
* feat: add support for infra metrics in trace details v2
* fix: adjust the empty state if the data source is traces
* refactor: logLineTimestamp prop to timestamp
* chore: write tests for span infra metrics
* chore: return search from useLocation mock
* chore: address review changes to move inline options to useMemo
* refactor: simplify infrastructure metadata extraction logic in SpanRelatedSignals
* refactor: extract infrastructure metadata logic into utility function
* test(infraMetrics): club the similar tests
* fix: improve logs and infra tabs switching assertions
* feat: update Infra option icon to Metrics in SpanDetailsDrawer
* chore: change infra to metrics in span details drawer
* fix: fix the failing tests
---------
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
* chore: remove the applied filters in related signals drawer
* chore: make the span logs highlight color more prominent
* fix: add label to open trace logs in logs explorer button
* feat: improve the span logs empty state i.e. add support for no logs for trace_id
* refactor: refactor the span logs content and make it readable
* test: add tests for span logs
* chore: improve tests
* refactor: simplify condition
* chore: remove redundant test
* fix: make trace_id logs request only if drawer is open
* chore: fix failing tests + overall improvements
* Update frontend/src/container/SpanDetailsDrawer/__tests__/SpanDetailsDrawer.test.tsx
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* chore: fix the failing test
* fix: fix the light mode styles for empty logs component
* chore: update the empty state copy
* chore: fix the failing tests by updating the assertions with correct empty state copy
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* feat: allowing switching between views when groupby is present
* feat: allowing switching between views when groupby is present
* chore: remove console log
* feat(s3-retention): enhance S3 logs retention handling
* chore: overall improvements
* test: add tests for GeneralSettings S3 logs retention functionality
* test: improve S3 logs retention dropdown interaction and validation
* refactor: change s3 and logs response / payload keys
* chore: update the teststo adjust based on the recent payload keys changes
* chore: update the test mock value
* chore: update tests
* chore: skip the flaky test
* fix: fix the condition that would cause infinite loop and the test would fail as a result
---------
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
This PR fulfills the requirements of #9069 by:
- Adding a golangci-lint directive (forbidigo) to disallow all fmt.Errorf usages.
- Replacing existing fmt.Errorf instances with structured errors from github.com/SigNoz/signoz/pkg/errors for consistent error classification and lint compliance.
- Verified lint and build integrity.
* feat(quick-filters): improve filter visibility and auto-open behavior
- Prioritize checked filter values to top of list
- Add visual separator and count indicator when collapsed
- Auto-open filters when they contain active query filters
* chore: remove the unnecessary parentheses
* chore: write tests
* chore: overall improvements
* chore: remove the applied filters count from quick filters
* chore: run prettier on Checkbox.styles.scss
* test(quick-filters): consolidate the tests
* chore: memoize isSomeFilterPresentForCurrentAttribute
* fix: make the trace details attributes search visible by default
* fix: make the attributes search focusable when the search button is toggled, not by default
* fix: don't display search in events tab of span details side drawer in empty state
* chore: write tests
* chore: mock signozhq/button
* chore: minor state rename
* fix: change the date format for span hover card
* fix: don't display search in events tab of span details side drawer in empty state
* fix: unify the handle span click, to set spanId on clicking span overview column as well
* Revert "fix: don't display search in events tab of span details side drawer in empty state"
This reverts commit c8f56aadd0.
* chore: add 0.5 seconds delay before showing span popover in trace details
* chore: write tests
* chore: update tests
* fix: fix the failing test
* chore: remove the mocks for utility functions
This pull request introduces support for setting TTL (Time-To-Live) on logs tables in ClickHouse, including both backend logic and integration tests. The main changes add back method for setting TTL on logs tables, update the TTL API to handle logs, and provide robust test coverage for legacy and new TTL flows.
## 📄 Summary
- Instead of relying on JWT for session management, we are adding another token system: opaque. This gives the benefits of expiration and revocation.
- We are now ensuring that emails are regex checked throughout the backend.
- Support has been added for OIDC protocol
This pull request refactors how TTL (Time-To-Live) settings are applied for logs, metrics, and traces in the ClickHouse reader service. The main change is the removal of the dedicated setTTLLogs method and the consolidation of TTL logic to only support metrics and traces. The code now routes TTL requests based on type, and logs TTL is no longer handled.
* fix: logs popover content logic extracted out
* fix: logs popover content in live view
* fix: destory popover on close
* feat: add logs format tests
* feat: minor refactor
* feat: test case refactor
* feat: remove menu refs in logs live view
* feat: globalise Preference context and remove async logic
* feat: change preference context state structure to support both logs and traces pref
* feat: test refactor
* feat(authz): address tenant isolation for authz
* feat(authz): handle role module self registry
* feat(authz): keep role / user / resource sync in naming
* feat(authz): rename orgId to orgID
* feat(authz): add the missing / for user
* feat(authz): remove embedding for pkgopenfgaauthz service
* fix: let clickhouse handle string to number conversion
* fix: ignore casting if it's a comparison operator for number key
* fix: add integration tests
* fix: update comments
* fix: convert only if it's actually not a integrer with comparison operator
* fix: force convert to float when number
* fix: integration tests
* fix: correct the comment
* fix: update comment
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
* fix: logs popover content logic extracted out
* fix: logs popover content in live view
* fix: destory popover on close
* feat: add logs format tests
* feat: minor refactor
* feat: test case refactor
* feat: remove menu refs in logs live view
* chore(authz): bump up openfga version
* chore(authz): bump up openfga version
* chore(authz): bump up openfga version
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
* feat: added cold storage in set ttl v2 method
* feat: standardised cold storage ttl to days
* feat: added coldstorage ttl in response structure of get api
* feat: standardise header to include share and feedback sections
* feat: add unit test cases
* feat: handle click outside to close open modals
* fix: handle click outside to close modals
* chore: update event name and placeholder
* fix: test cases
* feat: show success / failure message on feedback submit, fix test cases
* feat: add test cases to check if toast messages are shown on feedback submit
* feat: address review comments
* feat: update test cases
---------
Co-authored-by: makeavish <makeavish786@gmail.com>
* feat: revamp onboarding, send list to mixpanel, join logic to convert to single string
* chore: props changes
* fix: allow user to proceed even if api fails
* chore: remove console.log
* chore: remove commented code
* chore: minor colour tweaks
* chore: resolve comments
* fix: fixed scroll reset issue when interacting with legends
* fix: added test cases to ensure codes execution and req function are attached
* fix: added test cases
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
* feat: moved apis out and added proper types
* feat: intergrated new api in 3rd party monitoring
* feat: intergrated new API structure
* chore: fix for null pointer exception
* test: added test for formatDataForTable function
* chore: added placeholder prop in querysearch
* chore: added placeholder prop in querysearch
* feat: added hook for listoverview api
* fix: added fix for cursor jump in QB
* chore: minor cleanup
* feat: updating the query when the editor is getting out for focus or running the query
* test: added test for QuerySearch
* chore: updated variable name for QB interaction
* chore: updated PR review changes
* chore: removed non required comments
* fix: fixed edit and patch rule functionality
* fix: fixed edit and patch rule functionality
* fix: fixed edit and patch rule functionality
* fix: added patch rule test and rule mock store
* fix: removed schema version field
* fix: removed schema version field
* fix: added test cases for patch, create, edit
* fix: removed schema version field
* 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 62bee5f003.
* Revert "feat: added user-friendly format to dashboard variable url"
This reverts commit 6de8b1c2e8.
* 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
* fix: hide drilldown options in view mode for non-builder panels
* chore: add global uplot mock
* chore: query builder context update to all provider
* chore: add cursor rules init
* chore: useSafeNavigate mock added
* chore: more cleanups
* chore: remove react-router-v5 mock from setup
* chore: update cursorrules
* chore: add tests readme init
* chore: minor refactor
* fix: refetch quick filters on revisit to page
* fix: return expected response from queryFn and use as state
* fix: change getByRole to getByText for performant test
* chore: add sonner mock
* chore: mock revert
---------
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>
* fix: removed staleTime for dashboard API, to fetch fresh data while switching between dashboards
* fix: removed query client level staleTime and cacheTime
* fix: adding dashbaordID to the query key
* fix: removed unnecessary query key
* 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 62bee5f003.
* Revert "feat: added user-friendly format to dashboard variable url"
This reverts commit 6de8b1c2e8.
* 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
* fix: hide drilldown options in view mode for non-builder panels
* chore: add global uplot mock
* chore: query builder context update to all provider
* chore: add cursor rules init
* chore: useSafeNavigate mock added
* chore: more cleanups
* chore: remove react-router-v5 mock from setup
* chore: update cursorrules
* chore: add tests readme init
* chore: minor refactor
* fix: refetch quick filters on revisit to page
* fix: return expected response from queryFn and use as state
---------
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: 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 62bee5f003.
* Revert "feat: added user-friendly format to dashboard variable url"
This reverts commit 6de8b1c2e8.
* 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
* fix: hide drilldown options in view mode for non-builder panels
* chore: add global uplot mock
* chore: query builder context update to all provider
* chore: add cursor rules init
* chore: useSafeNavigate mock added
* chore: more cleanups
* chore: remove react-router-v5 mock from setup
* chore: update cursorrules
* chore: add tests readme init
* chore: minor refactor
---------
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>
* fix: make the trace details sidebar scrollable
* fix: fix the long value overflowing trace details attributes
* fix: fix the layout issues in trace details v2
* Revert "fix: make the trace details sidebar scrollable"
This reverts commit 469022ed6a.
* fix: make the trace details sidebar scrollable
* fix: make the attribute value take 100% width
---------
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
This pull request introduces a new, customizable logs export feature in the Logs Explorer view, replacing the previous hardcoded download functionality. Users can now select export format, row limit, and which columns to include via a dedicated options menu. The implementation includes a new API integration for downloading export data, UI components for export options, and associated styling.
This pull request refactors the LogsFormatOptionsMenu component to use the Ant Design Popover for displaying format options, replacing the previous custom dropdown implementation. It also updates the related styles and removes now-unnecessary state and logic from parent components. The changes improve code maintainability, UI consistency, and simplify event handling.
* chore: automatically show query addon when the value is present even after refresh
* chore: minor cleanup
* test: added tests for queryAddon
* test: removed inputwithlabel mock
- Deprecate legacy alertmanager. Are the new alert improvements compatible with legacy? I don't think they are. More importantly, I don't think they should be. It will be a pain to manage it at both places.
- Improve msteamsv2 experience. I have taken alertmanager's upstream and merged it with our custom implementation. Note the use of `titleLink` field to propagate the url of the alert.
- Delete the private http server needed for alertmanager. It's cleanup as part of 1.
* fix: fixed severity color getting incorrectly assigned due to the response changed in v5 API
* fix: implement consistent severity variant colors across logs chart and indicator component
* chore: fix the failing tests
* chore: fix the failing check
---------
Co-authored-by: ahmadshaheer <ashaheerki@gmail.com>
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
This introduces a new Raw Data Export module to the codebase, enabling users to export raw log data via a dedicated API endpoint. The changes include the implementation of the module and handler, integration with existing infrastructure, configuration updates, and adjustments to tests and module wiring.
* 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 62bee5f003.
* Revert "feat: added user-friendly format to dashboard variable url"
This reverts commit 6de8b1c2e8.
* 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
* fix: hide drilldown options in view mode for non-builder panels
---------
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: 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 62bee5f003.
* Revert "feat: added user-friendly format to dashboard variable url"
This reverts commit 6de8b1c2e8.
* 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 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: resolved comments and refactoring
* feat: added dynamic variable suggestion in where clause (#8875)
* 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 (#8876)
* 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
* feat: fixed failing test cases due to recent logic change
* feat: added doc links in the dynamic variable feat
* feat: resolved comments and refactoring
* feat: resolved comments and refactoring
* feat: fixed test cases
* feat: fixed test cases
* feat: added new component to existing variables
* feat: added multiselect component and solved dropdown closing on every selection
* feat: fixed incorrect all label
* feat: allow custom value
* feat: better styles
* feat: added maxtagcount placeholder
* feat: added onclear function
* feat: updated regex and handlings
* feat: updated regex and handlings
* feat: added enableall prop control
* feat: fix the rebase conflict
* feat: fixed comments
* feat: fix test case
* feat: added test cases for customMultiselect, customSelect and variableItem integration
* feat: added test cases for behaviour around values added and selections showed
* feat: refactored test cases
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
## 📄 Summary
implement strong controls for password. Now the password requirement is :
password must be at least 12 characters long, should contain at least one uppercase letter [A-Z], one lowercase letter [a-z], one number [0-9], and one symbol
* refactor: adjust the attribute pinning changes based on trace actionables latest changes
* feat: persist pinned attributes on the BE, fallback to local storage
* chore: overall improvement
* chore: fix the failing tests
* fix: make the changes w.r.t. pinned attributes preferences in in preference.go
* feat(authz): implement the current usecases in openfga
* feat(authz): implement the current usecases in openfga
* feat(authz): extract out the schema and DI the same
* feat(authz): extract out the schema and DI the same
* feat: handle active log flow
* feat: show live logs in logs explorer view
* feat: enable live logs in logs explorer
* feat: show live time option only in logs list view
* chore: pass showLiveLogs as false in test cases
* fix: handle live logs data format to open in log details
* fix: use current query state for frequency chart in live logs view
* fix: encode filter expression, show live option only in list view
* feat(access-control): embed openfga in signoz
* feat(authz): rename access control to authz
* feat(authz): fix codeowners and go mod tidy
* feat(authz): fix lint
* feat(authz): update go version and move convertor to instrumentation
* feat(authz): some more lint issues
* feat(authz): some more lint issues
* feat(authz): some more lint issues
* feat(authz): fix more lint issues
* feat(authz): make logger converter interface
* fix: don't skip resource filter in main table for OR queries
* fix: dont skip resource table
* fix: make check case insensitive
* fix: iterate over token stream
* feat: adding support for 1.26 semconv
* feat: adding support for 1.26 semconv
* feat: adding support for 1.26 semconv
* feat: adding support for 1.26 semconv
* feat: added native support for 1.26
* feat: added native support for 1.26
* feat: adding support for 1.26 semconv
* feat: adding support for 1.26 semconv
* feat: adding support for 1.26 semconv
* feat: resolved conflicts
* feat: resolved conflicts
* feat: resolved conflicts
* feat: resolved conflicts
* feat: resolved conflicts
* feat: replace infinity list view component with data table component
* feat: remove duplicate hook calls
* chore: add @signozhq/table to transformIgnorePatterns
* feat: update test cases for frequency chart in logs explorer
* feat: address review comments , add sonner for notifications
* feat: address review comments
* feat: enable global actions
* feat: separate actions for collapse and open sidebar
* fix: remove spaces from shortcuts
* chore: remove console log
* chore: yarn install to update yarn.lock
* feat: display http status badge in trace details v2 spans
* chore: change the fallback background for status code badge
* fix: align the status badge to the end of span details column
* chore: fix the failing tests
* feat: date picker v2
* feat: custom date time range history
* feat: light mode updates and interaction fixes
* fix: improve usability
* chore: add calendar, input and popover to transformIgnorePatterns
* chore: add date-fns to transformIgnorePatterns
* chore: add @signozhq/button to transformIgnorePatterns
* feat: update css variables
* fix: fix the issue of group by queries not switching to timeseries view in logs explorer
* fix: fix the issue of group by queries not switching to timeseries view in traces explorer
* chore: overall improvements
* feat: fixed panel coorelation not spreading the filter expression in explorer pages
* feat: fixed multiagregation not getting sent in create alert
* fix: fixed failing test cases
* Update frontend/src/api/v5/queryRange/prepareQueryRangePayloadV5.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix: fix lint error
* fix: stepInterval not updating in panel qb
* fix: added test cases for mapQueryDataFromApi and prepareQueryRangePayloadV5
* fix: added convertV5Response test cases - timeseries, pie and table
* fix: refactored handleRunQuery
* fix: code refactor
* fix: refactored the mapQueryDataFromApi function according to new sub_var api
* fix: updated test cases
* fix: removed isJSON and isColumn from everywhere
* fix: fixed code and test cases
* fix: fixed bar chart custom - step interval for qb v5 (#8806)
* fix: added querytype boolean check for v5 changes
* fix: fixed typechecks
* fix: fixed typechecks
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix: added fix for query builder filters
* fix: added fix for multivalue operator without brackets
* 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
* chore: added changes for jest to use es6
* test: fixed tests for querycontextutils + querybuilderv2 utils
* test: fixed failing tests
* chore(meter): add warnings and make meter live in sidenav
* chore(meter): add warnings and make meter live in sidenav
* chore(meter): add warnings and make meter live in sidenav
* chore(meter): add warnings and make meter live in sidenav
* chore(meter): add warnings and make meter live in sidenav
* chore(meter): add warnings and make meter live in sidenav
* fix: use lower and convert re2 to string in fulltext
* fix: minor error change
* fix: address comments
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
* fix: added sanity logic for explorer old urls
* fix: added test for useSanitizeOrderBy
* fix: added sentry events for orderby validation
* fix: cleanup unused logic and renamed boolean state
* fix: added fix for supporting older queries
* fix: added fix for exist operator
* chore: minor fix for quick filters
* chore: added tests for convertfilterstoexpression
* chore: added fix for regex to regexp conversion
* test: added test for regex to regexp
* fix: added fix for functions conversion and tests
* fix: added fix for negated non_value_operators
* feat(meter): add pre-defined panels for meter breakdown
* feat(meter): update the routes for future scope
* feat(meter): added graphs for total calculation
* feat(meter): added graphs for total calculation
* feat(devenv): add otel-collector support for local development
- Add .devenv/docker/otel-collector/ with compose.yaml and config
- Add devenv-otel-collector and devenv-up targets to Makefile
- Update development.md with otel-collector setup instructions
- Add README.md with usage documentation for otel-collector setup
This enables developers to run the complete SigNoz stack locally,
including the OpenTelemetry Collector for receiving telemetry data
on ports 4317 (gRPC) and 4318 (HTTP).
* docs: improve collector setup wordings
* chore: fixed comment and service name
* chore: docker service name updated otel-collector -> signoz-otel-collector
* feat: meter explorer
* feat: meter explorer
* fix: remove meter as data source
* fix: change meter-explorer to meter - quick filter
* chore: delete test file
* fix: failing test cases
* feat(telemetry/meter): added base setup for telemetry meter signal
* feat(telemetry/meter): added metadata setup for meter
* feat(telemetry/meter): fix stmnt builder tests
* feat(telemetry/meter): test query range API fixes
* feat(telemetry/meter): improve error messages
* feat(telemetrymeter): step interval improvements
* feat(telemetrymeter): metadata changes and aggregate attribute changes
* feat(telemetrymeter): metadata changes and aggregate attribute changes
* feat(telemetrymeter): deprecate the signal and use aggregation instead
* feat(telemetrymeter): deprecate the signal and use aggregation instead
* feat(telemetrymeter): deprecate the signal and use aggregation instead
* feat(telemetrymeter): cleanup the types
* feat(telemetrymeter): introduce source for query
* feat(telemetrymeter): better naming for source in metadata
* feat(telemetrymeter): added quick filters for meter explorer
* feat(telemetrymeter): incorporate the new changes to stmnt builder
* feat(telemetrymeter): add the statement builder for the ranged cache queries
* feat(telemetrymeter): use meter aggregate keys
* feat(telemetrymeter): use meter aggregate keys
* feat(telemetrymeter): remove meter from complete bools
* feat(telemetrymeter): remove meter from complete bools
* feat(telemetrymeter): update the quick filters to use meter
## 📄 Summary
To reliably migrate the alerts and dashboards, we need access to the telemetrystore to fetch some metadata and while doing migration, I need to log some stuff to fix stuff later.
Key changes:
- Modified the migration to include telemetrystore and a logging provider (open to using a standard logger instead)
- To avoid the previous issues with imported dashboards failing during migration, I've ensured that imported JSON files are automatically transformed when migration is active
- Implemented detailed logic to handle dashboard migration cleanly and prevent unnecessary errors
- Separated the core migration logic from SQL migration code, as users from the dot metrics migration requested shareable code snippets for local migrations. This modular approach allows others to easily reuse the migration functionality.
Known: I didn't register the migration yet in this PR, and will not merge this yet, so please review with that in mid.
* fix: removed unused code for querycontext (#8674)
* Update frontend/src/utils/queryValidationUtils.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* feat: added tooltips in metric aggregations
* feat: enabled legend enhancement for explorer pages and alert page
* feat: updated the error state in explorer pages with new APIError
* fix: cloned panel query shows previous query (#8681)
* fix: cloned panel query shows previous query
* chore: removed comments
* chore: added null check
* fix: added fix for auto run query in dashboard panel + trace view issue
---------
Co-authored-by: Abhi Kumar <abhikumar@Mac.lan>
* feat: added new SubstituteVars api and enable v5 for creating new alerts (#8683)
* feat: added new SubstituteVars api and enable v5 for creating new alerts
* feat: add warning notification for query response
* feat: fixed failing test case
* fix: metric histogram UI config state in edit mode
* fix: fixed table columns getting duplicate data (#8685)
* fix: added fix for conversion of QB function to filter expression. (#8684)
* fix: added fix for QB filters for functions
* chore: minor fix
---------
Co-authored-by: SagarRajput-7 <162284829+SagarRajput-7@users.noreply.github.com>
* feat: query builder fixes and enhancement (#8692)
* feat: legend format fixes around single and multiple aggregation
* feat: fixed table unit and metric units
* feat: add fallbacks to columnWidth and columnUnits for old-dashboards
* feat: fixed metric edit issue and having filter suggestion duplications
* feat: fix and cleanup functions across product for v5
* chore: add tooltips with links to documentation (#8676)
* fix: added fix for query validation and empty query error (#8694)
* fix: added fix for selected columns being empty in logs explorer (#8709)
* feat: added columnUnit changes for old dashboard migrations (#8706)
* fix: fixed keyfetching logic (#8712)
* chore: lint fix
* fix: fixed logs explorer test
* feat: fix type checks
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: SagarRajput-7 <sagar@signoz.io>
Co-authored-by: Abhi Kumar <abhikumar@Mac.lan>
Co-authored-by: SagarRajput-7 <162284829+SagarRajput-7@users.noreply.github.com>
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
For the requestType: Trace, we don't care about the timestamp in the rawRow.
- Handling Zero timestamp values in the rawData response
- simplify RawRow `map[string]*any` to `map[string]any` and eliminate unnecessary pointer indirection.
The change adds missing flags required during execution of `make go-run-community`. Currently, running the command cause the error "unknown flag: --config", mentioned in the issue #8623
* feat: enable creating more than 3 steps in trace funnels
- Remove 3-step limitation from FunnelContext.tsx addNewStep function
- Remove UI restriction in StepsContent.tsx to always show "Add Funnel Step" button
- Allow unlimited funnel steps while maintaining proper step_order indexing
- Step indexing continues to work correctly for API calls (1-based indexing)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: enable latency pointer configuration with smart defaults (#8629)
- Enable latency pointer dropdown UI in funnel step configuration
- Set step 1 default to 'Start of span' and all other steps to 'End of span'
- Add permission-based controls for latency pointer selection
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Ankit Nayan <ankitnayan@Ankits-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>
---------
Co-authored-by: Ankit Nayan <ankitnayan@Ankits-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>
* fix: prevent creation of funnels with duplicate names
- Fixed Update method to validate duplicate names before updating
- Added proper duplicate name validation that excludes the current funnel being updated
- Fixed incorrect error wrapping in Update method that was marking all errors as "already exists"
- Fixed typo in error message ("funnelr" -> "funnel")
- Added comprehensive tests for duplicate name validation in both Create and Update operations
- Used internal errors package for consistent error handling
The funnel API now properly prevents creating or updating funnels with duplicate names
within the same organization, resolving issues where duplicate funnels could be created
but would fail during retrieval.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: returning error instance
* fix: implement database transactions for funnel creation and updates
- Wrap check-and-create operations in Bun transactions to prevent race conditions
- Apply transaction pattern to both Create() and Update() methods
- Ensures atomic operations when checking for duplicate funnel names
- Prevents concurrent requests from creating duplicate funnels
- Follows existing transaction patterns from user store implementation
Addresses PR feedback for race condition prevention
---------
Co-authored-by: Ankit Nayan <ankitnayan@Ankits-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Shaheer Kochai <ashaheerki@gmail.com>
* feat: refactor tracefunnel to support dynamic multi-step funnels
Replace hardcoded 2-step and 3-step funnel functions with dynamic
implementations that support unlimited steps. Add comprehensive tests
for multi-step funnel functionality while maintaining backward
compatibility.
Key changes:
- Add dynamic query builders for n-step funnels
- Update all query functions to use new builders
- Remove old hardcoded functions
- Add tests for 1-6 step funnels
- Maintain temporal ordering logic
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: add duration calculation for latency_pointer='end' in funnel qu… (#8632)
* feat: add duration calculation for latency_pointer='end' in funnel queries
- Updated BuildFunnelOverviewQuery and BuildFunnelStepOverviewQuery to calculate end time
when latency_pointer is 'end'
- Modified BuildFunnelTopSlowTracesQuery and BuildFunnelTopSlowErrorTracesQuery to support
latency pointer parameters
- Added comprehensive tests for latency pointer functionality in
clickhouse_queries_latency_test.go
- When latency_pointer is 'end', the query now adds span duration to timestamp for
accurate latency calculations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* do matching after lowercase conversion
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
---------
Co-authored-by: Ankit Nayan <ankitnayan@Ankits-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix: apply remaining changes from PR #8615 for ClickHouse 25.5 compatibility
- Updated BuildTracesFilter to BuildTracesFilterQuery with false parameter in query.go
- Updated test files to expect resource_string_service$$name instead of serviceName
- Fixed function reference in query_test.go
These changes complete the ClickHouse 25.5 compatibility updates while maintaining
the dynamic multi-step funnel functionality.
* fix: replace durationNano with duration_nano for ClickHouse compatibility
- Updated all SQL queries in clickhouse_queries.go to use duration_nano column name
- Updated test expectations in clickhouse_queries_latency_test.go
- Ensures consistency with ClickHouse snake_case column naming convention
* refactor: code formatting and add TODO comment
- Remove trailing whitespace in query.go
- Add TODO comment for GetErroredTraces function regarding product improvement
- Add newline at end of file for proper formatting
---------
Co-authored-by: Ankit Nayan <ankitnayan@Ankits-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* feat: enhance logs explorer chart to display full selected time window
* fix: don't show tooltip in logs chart on empty hover areas + lint fix
---------
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
## 📄 Summary
- Fix the order by for the time series result
- Add the statement builder for trace query (was supposed to be replaced with new development but that never happened, so we continue the old table)
- Removed `pkg/types/telemetrytypes/virtualfield.go`, not used currently anywhere but causing circular import. Will re-introduce later.
* fix: add safeguard for large log body entries
* feat: added test cases for getSanitizedLogBody
* feat: minor refactor
* feat: revert try catch
* feat: minor refactor
* feat: minor refactor
---------
Co-authored-by: Aditya Singh <adityasingh@Adityas-MacBook-Pro.local>
* chore(dot-metrics): added log line to check for those queries who are still using normalized metrics
* chore(dot-metrics): added log line to check for those queries who are still using normalized metrics
* chore(dot-metrics): added log line to check for those queries who are still using normalized metrics
* chore(dot-metrics): added log line to check for those queries who are still using normalized metrics
* chore(dot-metrics): added log line to check for those queries who are still using normalized metrics
* chore(dot-metrics): added array metrics search
* chore(dot-metrics): removed regex query and added a simpler metrics in query
* chore(dot-metrics): removed regex query and added a simpler metrics in query
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
* fix(prom-dup-labels): added fingerprint in prom labels
* fix(prom-dup-labels): removed fingerprint labels from result series
* fix(prom-dup-labels): removed fingerprint labels from result series
* fix(prom-dup-labels): removed fingerprint labels from result series
* fix(prom-dup-labels): removed fingerprint labels from result series
* fix(prom-dup-labels): added test cases
* Update pkg/prometheus/clickhouseprometheus/client_query_test.go
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix(prom-dup-labels): added test cases
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* feat: add support for entrypoint spans toggle in top operations table
* fix: write tests for entry point toggle
* chore: entry point -> entrypoint
* fix: add info icon and tooltip for entrypoint spans toggle
* fix: fix the copy and link for entrypoint toggle in top operations
* chore: update the tooltip text
* Update frontend/src/container/MetricsApplication/TopOperationsTable.tsx
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* chore: fix the failing build
* chore: update the entry point spans docs link
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix(dedup-prom): added check for duplicated samples data
* fix(dedup-prom): added test cases for duplicated samples data
* fix(dedup-prom): added test cases for duplicated samples data
* chore: removed redundant scorllbar when space available
* chore: sidenav version pill can be clicked when changelog is available
* fix: removed upgrade cta for cloud users
* chore: minor ui fix
* fix: show new error component when saving pipeline fails
* fix: minor refactor
---------
Co-authored-by: Aditya Singh <adityasingh@Adityas-MacBook-Pro.local>
* feat: add support for JSON flattening in pipeline processor create and edit
* chore: add fallback value for mapping state
* feat: improve the UI of json flattening form and show path_prefix if enable_path is true
* fix: improve the state management
* chore: get enablePaths state using useWatch
* chore: json flattening tests
* chore: improve the test descriptions
* fix: update snapshot and adjust the existing failing test
* chore: overall improvements
* fix: update the JSON flattening keys map
* fix: destroy the new processor modal on closing to fix the unintended persistent mapping state
* chore: log event on saving pipeline if json_parser processors get modified
* chore: fix the alignment of json flattening switch
* chore: overall improvement
* refactor: improve the mapping comparison by using lodash's isEqual
* chore: update the snapshot
* refactor: improve the pipeline json_parser processor filtering logic
---------
Co-authored-by: Aditya Singh <adityasinghssj1@gmail.com>
Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
* feat: added changes for fething current version changelog
* chore: added changes for showing changelog in sidebar
* test: update ChangelogModal tests to use ChangelogSchema and mock data
* chore: update changelog properties in app context mock
* chore: removed changes for current version
* chore: changed fetch key for fetching changelog by version
* chore: added changes related to fetching tanent specific changelog
* chore: fixed failing test for changelogRenderer
* chore: remove what's new no feature available
* chore: added changes for fetching changelog for specific tenant types
* test: fixed test for changelogRenderer
* Feat: changes for showing changelog to cloud users (#8512)
* feat: added backend changes for storing seen changelog verion
* feat: added changes for showing changelog to cloud users
* chore: added useeffect cleanup
* test: fixed test for changelogModal
* chore: minor changes in changelogmodal
* chore: minor PR review fixes
* fix: log details filters use data types from log data response as primary data type
* chore: added test cases
* test: add comprehensive unit tests for chooseAutocompleteFromCustomValue function
* fix: added datatypes to util and test cases
* fix: added new tests
* fix: performance optimizations in log details view json field rendering
* fix: fixed import failing tests
* fix: added default html rendering field in body field in log details
* fix: fixed eslint errors
* chore: moved hook to a new file and renamed a state
* fix: added logs datasource for formatting and column options in the useoptionsmenu consumption
* fix: changed data source to logs in context log renderer from metrics
* feat: display custom empty message if no logs on navigating from trace to logs
* chore: write tests for logs explorer normal and custom empty state
* feat: build the custom empty logs UI based on the updated designs
* feat: clear the filters and run stage query on clicking clear filters in logs custom empty state
* fix: update the failing test to match the logs custom empty state
* chore: remove the unnecessary onClick for documentation links
* refactor: overall improvements
* refactor: move the empty logs list config to util
* chore: update the documentation links + remove the explicit height from resources card
* refactor: reuse the EmptyLogsListConfig type in EmptyLogsSearch
* test: update LogsExplorerList tests to reflect changes in documentation links
---------
Co-authored-by: Vishal Sharma <makeavish786@gmail.com>
* fix: override the stagedQuery orderBy and send order by timestamp in traces view of traces explorer
* chore: write test for sending order by timestamp in the traces view of traces explorer
* refactor: refactor the query transformer to accept partial query object and override fields
* fix: fetch only required traces fields
* fix: remove only logs case in field name
* fix: add extra if condition for logs json field names
* fix: tests
* feat: add support for expandable popover for stack message and body in trace details page
* refactor: overall improvements + refactor ExpandableAttribute
* chore: update request dashboard and integrations text
* chore: hide tab/table when data is not available
* chore: add new template text
* fix: test case
* fix: recalculate start and end time only for relative time ranges
* fix: don't dsipatch UpdateTimeInterval on initial load
* fix: change list query to state instead of memo
* fix: fix the failing test
* chore: improvement to the test
---------
Co-authored-by: Aditya Singh <adityasingh@Adityas-MacBook-Pro.local>
* fix: log details filters use data types from log data response as primary data type
* chore: added test cases
* test: add comprehensive unit tests for chooseAutocompleteFromCustomValue function
* fix: added datatypes to util and test cases
* fix: added new tests
Deprecate all flags
- Use querier.config.fluxInterval in lieu of passing `--flux-interval` and `--flux-interval-for-trace-detail`
- Remove `--gateway-url`
- Use telemetrystore.clickhouse.cluster in lieu of passing `--cluster` or `--cluster-name`
- Add an `unparam` check in the linter. Updated some functions across the querier codebase to be compatible with this linter.
- Remove prometheus config from docker builds.
* fix: update app layout height based on banners visible
* fix: show banners only in logged in state
---------
Co-authored-by: Vishal Sharma <makeavish786@gmail.com>
* feat(changelog): add getChangelogByVersion API and related types
* feat(changelog): implement ChangelogModal and ChangelogRenderer components with styles
* test(dateUtils): add unit tests for formatDate utility
* chore(changelog): fixed pr review changes
* style(ChangelogRenderer): format SCSS for improved readability
* feat(SideNav): integrate ChangelogModal and manage its visibility state
* feat(changelog): refactor changelog handling and integrate into app state
* test(ChangelogModal): add unit tests for scroll functionality and data rendering
* test(ChangelogRenderer): add unit tests for rendering changelog details
* test(ChangelogModal, ChangelogRenderer): refactor tests
* fix(applayout): bot fetching changelog for cloud users
* fix(ChangelogModal): update footer to display feature count dynamically
* fix(ChangelogModal): update link for workspace migration to point to releases page
* feat(ChangelogModal): enhance footer layout and update link behavior
* test(ChangelogModal): update link for workspace migration to point to releases page
* refactor(AppContext): migrate changelog state management to context and update related components
* feat(test-utils): add changelog state and updateChangelog mock to app context
* test(changelogModal): fixed test by adding mock for useAppContext
* fix: added PR review fixes
* Fixed css variable name in ChangelogModal.styles.scss
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix(style): added light mode support for changelog modal
* Fixed heading color token
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix: remove debug log for isLatestVersion in AppLayout
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* fix(sidebar): added fix routes not highlighting, minor gitter fix
* chore(routes): tsc fix
* fix(private): added check in private route for routes with no role
* fix(private): minor fix in condition
* chore: added roles in empty routes
* feat: while the funnel steps are invalid, handle auto save in local storage
* chore: handle lightmode style in 'add span to funnel' modal
* fix: don't save incomplete steps state in local storage if last saved configuration has valid steps
* chore: close the 'Add span to funnel' modal on clicking save or discard
* chore: deprecate the run funnel flow for unexecuted funnel
* feat: change the funnel configuration save logic, and deprecate auto save
* refactor: send all steps in the payload of analytics/overview
* refactor: send all steps in the payload of analytics/steps (graph API)
* chore: send all steps in the payload of analytics/steps/overview API
* chore: send funnel steps with slow and error traces + deprecate the refetch on latency type change
* chore: overall improvements
* chore: change the save funnel icon + increase the width of funnel steps
* fix: make the changes w.r.t. the updated funnel steps validation API + bugfixes
* fix: remove funnelId from funnel results APIs
* fix: handle edge case i.e. refetch funnel results on deleting a funnel step
* chore: remove funnel steps configuration cache on removing funnel
* chore: don't refetch the results on changing the latency type
* fix: fix the edge cases of save funnel button being enabled even after saving the funnel steps
* chore: remove the span count column from top traces tables
* fix: fix the failing CI check by removing unnecessary props / fixing the types
* feat: added support for trace_operators in query range v5
* feat: added support for trace_operators in query range v5
* feat: added support for trace_operators in query range v5
* feat: added support for trace_operators in query range v5\n
* feat: added support for trace_operators in query range v5\n
* feat: added support for trace_operators in query range v5
* feat: added support for trace_operators in query range v5
* feat: added support for trace_operators in query range v5
* feat: added support for trace_operators in query range v5
---------
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
* feat: sidebar revamp - initial commit
* feat: move billinga and other isolated routes to settings
* feat: handle channel related routes
* feat: update account settings page
* feat: show dropdown for secondary items
* feat: handle reordering of pinned nav items
* feat: improve font load performance
* feat: update font reference
* feat: update page content styles
* feat: handle external links in sidebar
* feat: handle secondary nav item clicks
* feat: handle pinned nav items reordering
* feat: handle sidenav pinned state using preference, handle light mode
* feat: show sidenav items conditionally
* feat: show version diff indicator only to self hosted users
* feat: show billing to admins only and integrations to cloud and enterprise users
* feat: update fallback link
* feat: handle settings menu items
* fix: settings page reload on nav chnage
* feat: intercom to pylon
* feat: show invite user to admin only
* feat: handle review comments
* chore: remove react query dev tools
* feat: minor ui updates
* feat: update changes based on preference store changes
* feat: handle sidenav shortcut state
* feat: handle scroll for more
* feat: maintain shortcuts order
* feat: manage license ui updates
* feat: manage settings options based on license and roles
* feat: update types
* chore: add logEvents
* feat: update types
* chore: fix type errors
* chore: remove unused variable
* feat: update my settings page test cases
---------
Co-authored-by: makeavish <makeavish786@gmail.com>
* feat: add span scope filter to trace details page
* chore: add tests for the span scope selector flows when onchange and query are provided
* refactor: remove the unnecessary queryName prop and infer it from query
* fix: fix the failing span scope selector tests
* fix: handle potential undefined values in groupBy calculation in TracesExplorer
* fix: add optional chaining for aggregateAttribute key check in Query component
* fix: add optional chaining for filters in SpanScopeSelector to handle potential undefined values
* fix: fix the warning in logs chart by adding the missing date-time format option
* fix: improve trace graph allDataPoints null check
* chore: remove the keys.length from null check
git diff --compact-summary --exit-code || (echo; echo "Unexpected difference in openapi spec. Run go run cmd/enterprise/*.go generate openapi locally and commit."; exit 1)
Our community is filled with passionate developers who love SigNoz and have been helping spread the word about observability across the world. The SigNoz Community Advocate Program is our way of recognizing these incredible community members and creating deeper collaboration opportunities.
## What is the SigNoz Community Advocate Program?
The SigNoz Community Advocate Program celebrates and supports community members who are already passionate about observability and helping fellow developers. If you're someone who loves discussing SigNoz, helping others with their implementations, or sharing knowledge about observability practices, this program is designed with you in mind.
Our advocates are the heart of the SigNoz community, helping other developers succeed with observability and providing valuable insights that help us build better products.
## What Do Advocates Do?
1.**Community Support**
- Help fellow developers in our Slack community and GitHub Discussions
- Answer questions and share solutions
- Guide newcomers through SigNoz self-host implementations
2.**Knowledge Sharing**
- Spread awareness about observability best practices on developer forums
- Create content like blog posts, social media posts, and videos
- Host local meetups and events in their regions
3.**Product Collaboration**
- Provide insights on features, changes, and improvements the community needs
- Beta test new features and provide early feedback
- Help us understand real-world use cases and pain points
## What's In It For You?
**Recognition & Swag**
- Official recognition as a SigNoz advocate
- Welcome hamper upon joining
- Exclusive swag box within your first 3 months
- Feature on our website (with your permission)
**Early Access**
- First look at new features and updates
- Direct line to the SigNoz team for feedback and suggestions
- Opportunity to influence product roadmap
**Community Impact**
- Help shape the observability landscape
- Build your reputation in the developer community
- Connect with like-minded developers globally
## How Does It Work?
Currently, the SigNoz Community Advocate Program is **invite-only**. We're starting with a small group of passionate community members who have already been making a difference.
We'll be working closely with our first advocates to shape the program details, benefits, and structure based on what works best for everyone involved.
If you're interested in learning more about the program or want to get more involved in the SigNoz community, join our [Slack community](https://signoz-community.slack.com/) and let us know!
---
*The SigNoz Community Advocate Program recognizes and celebrates the amazing community members who are already passionate about helping fellow developers succeed with observability.*
@@ -78,3 +78,5 @@ Need assistance? Join our Slack community:
- Set up your [development environment](docs/contributing/development.md)
- Deploy and observe [SigNoz in action with OpenTelemetry Demo Application](docs/otel-demo-docs.md)
- Explore the [SigNoz Community Advocate Program](ADVOCATE.md), which recognises contributors who support the community, share their expertise, and help shape SigNoz's future.
@@ -2,7 +2,7 @@ Copyright (c) 2020-present SigNoz Inc.
Portions of this software are licensed as follows:
* All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE".
* All content that resides under the "ee/" and the "cmd/enterprise/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE".
* All third party components incorporated into the SigNoz Software are licensed under the original license provided by the owner of the applicable component.
* Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below.
<palign="center">All your logs, metrics, and traces in one place. Monitor your application, spot issues before they occur and troubleshoot downtime quickly with rich context. SigNoz is a cost-effective open-source alternative to Datadog and New Relic. Visit <ahref="https://signoz.io"target="_blank">signoz.io</a> for the full documentation, tutorials, and guide.</p>
SigNoz uses integration tests to verify that different components work together correctly in a real environment. These tests run against actual services (ClickHouse, PostgreSQL, etc.) to ensure end-to-end functionality.
## How to set up the integration test environment?
### Prerequisites
Before running integration tests, ensure you have the following installed:
- Python 3.13+
- Poetry (for dependency management)
- Docker (for containerized services)
### Initial Setup
1. Navigate to the integration tests directory:
```bash
cd tests/integration
```
2. Install dependencies using Poetry:
```bash
poetry install --no-root
```
### Starting the Test Environment
To spin up all the containers necessary for writing integration tests and keep them running:
```bash
poetry run pytest --basetemp=./tmp/ -vv --reuse src/bootstrap/setup.py::test_setup
```
This command will:
- Start all required services (ClickHouse, PostgreSQL, Zookeeper, etc.)
- Keep containers running due to the `--reuse` flag
- Verify that the setup is working correctly
### Stopping the Test Environment
When you're done writing integration tests, clean up the environment:
```bash
poetry run pytest --basetemp=./tmp/ -vv --teardown -s src/bootstrap/setup.py::test_teardown
```
This will destroy the running integration test setup and clean up resources.
## Understanding the Integration Test Framework
Python and pytest form the foundation of the integration testing framework. Testcontainers are used to spin up disposable integration environments. Wiremock is used to spin up **test doubles** of other services.
- **Why Python/pytest?** It's expressive, low-boilerplate, and has powerful fixture capabilities that make integration testing straightforward. Extensive libraries for HTTP requests, JSON handling, and data analysis (numpy) make it easier to test APIs and verify data
- **Why testcontainers?** They let us spin up isolated dependencies that match our production environment without complex setup.
- **Why wiremock?** Well maintained, documented and extensible.
```
.
├── conftest.py
├── fixtures
│ ├── __init__.py
│ ├── auth.py
│ ├── clickhouse.py
│ ├── fs.py
│ ├── http.py
│ ├── migrator.py
│ ├── network.py
│ ├── postgres.py
│ ├── signoz.py
│ ├── sql.py
│ ├── sqlite.py
│ ├── types.py
│ └── zookeeper.py
├── poetry.lock
├── pyproject.toml
└── src
└── bootstrap
├── __init__.py
├── a_database.py
├── b_register.py
└── c_license.py
```
Each test suite follows some important principles:
1.**Organization**: Test suites live under `src/` in self-contained packages. Fixtures (a pytest concept) live inside `fixtures/`.
2.**Execution Order**: Files are prefixed with `a_`, `b_`, `c_` to ensure sequential execution.
3.**Time Constraints**: Each suite should complete in under 10 minutes (setup takes ~4 mins).
### Test Suite Design
Test suites should target functional domains or subsystems within SigNoz. When designing a test suite, consider these principles:
- **Functional Cohesion**: Group tests around a specific capability or service boundary
- **Data Flow**: Follow the path of data through related components
- **Change Patterns**: Components frequently modified together should be tested together
The exact boundaries for modules are intentionally flexible, allowing teams to define logical groupings based on their specific context and knowledge of the system.
Eg: The **bootstrap** integration test suite validates core system functionality:
- Database initialization
- Version check
Other test suites can be **pipelines, auth, querier.**
## How to write an integration test?
Now start writing an integration test. Create a new file `src/bootstrap/e_version.py` and paste the following:
We have written a simple test which calls the `version` endpoint of the container in step 1. In **order to just run this function, run the following command:**
```bash
poetry run pytest --basetemp=./tmp/ -vv --reuse src/bootstrap/e_version.py::test_version
```
> Note: The `--reuse` flag is used to reuse the environment if it is already running. Always use this flag when writing and running integration tests. If you don't use this flag, the environment will be destroyed and recreated every time you run the test.
Here's another example of how to write a more comprehensive integration test:
- [Install Helm Repo and Charts](#install-helm-repo-and-charts)
- [Start the OpenTelemetry Demo App](#start-the-opentelemetry-demo-app-1)
- [Moniitor with SigNoz (Kubernetes)](#monitor-with-signoz-kubernetes)
- [Monitor with SigNoz (Kubernetes)](#monitor-with-signoz-kubernetes)
- [What's next](#whats-next)
@@ -103,9 +103,19 @@ Remember to replace the region and ingestion key with proper values as obtained
Both SigNoz and OTel demo app [frontend-proxy service, to be accurate] share common port allocation at 8080. To prevent port allocation conflicts, modify the OTel demo application config to use port 8081 as the `ENVOY_PORT` value as shown below, and run docker compose command.
Also, both SigNoz and OTel Demo App have the same `PROMETHEUS_PORT` configured, by default both of them try to start at `9090`, which may cause either of them to fail depending upon which one acquires it first. To prevent this, we need to mofify the value of `PROMETHEUS_PORT` too.
```sh
ENVOY_PORT=8081 docker compose up -d
ENVOY_PORT=8081PROMETHEUS_PORT=9091 docker compose up -d
```
Alternatively, we can modify these values using the `.env` file too, which reduces the command as just:
```sh
docker compose up -d
```
This spins up multiple microservices, with OpenTelemetry instrumentation enabled. you can verify this by,
returnnil,errors.New(errors.TypeLicenseUnavailable,errors.CodeLicenseUnavailable,"a valid license is not available").WithAdditional("this feature requires a valid license").WithAdditional(err.Error())
returnnil,errors.Newf(errors.TypeForbidden,errors.CodeForbidden,"oidc: failed to get token").WithAdditional(retrieveError.ErrorDescription).WithAdditional(string(retrieveError.Body))
}
returnnil,errors.Newf(errors.TypeInternal,errors.CodeInternal,"oidc: failed to get token").WithAdditional(err.Error())
returnnil,errors.New(errors.TypeLicenseUnavailable,errors.CodeLicenseUnavailable,"a valid license is not available").WithAdditional("this feature requires a valid license").WithAdditional(err.Error())
returnnil,errors.New(errors.TypeInvalidInput,errors.CodeInvalidInput,"saml: invalid email").WithAdditional("The nameID assertion is used to retrieve the email address, please check your IDP configuration and try again.")
zap.L().Error("[receiveSAML] sso requested but feature unavailable in org domain")
http.Redirect(w,r,fmt.Sprintf("%s?ssoerror=%s",redirectUri,"feature unavailable, please upgrade your billing plan to access this feature"),http.StatusMovedPermanently)
return
}
sp,err:=domain.PrepareSamlRequest(parsedState)
iferr!=nil{
zap.L().Error("[receiveSAML] failed to prepare saml request for domain",zap.String("domain",domain.String()),zap.Error(err))
flag.BoolVar(&preferSpanMetrics,"prefer-span-metrics",false,"(prefer span metrics for service level metrics)")
// Deprecated
flag.IntVar(&maxIdleConns,"max-idle-conns",50,"(number of connections to maintain in the pool.)")
// Deprecated
flag.IntVar(&maxOpenConns,"max-open-conns",100,"(max connections for use at any time.)")
// Deprecated
flag.DurationVar(&dialTimeout,"dial-timeout",5*time.Second,"(the maximum time to establish a connection.)")
// Deprecated
flag.StringVar(&ruleRepoURL,"rules.repo-url",baseconst.AlertHelpPage,"(host address used to build rule link in alert messages)")
// Deprecated
flag.StringVar(&cacheConfigPath,"experimental.cache-config","","(cache config to use)")
flag.StringVar(&fluxInterval,"flux-interval","5m","(the interval to exclude data from being cached to avoid incorrect cache for data in motion)")
flag.StringVar(&fluxIntervalForTraceDetail,"flux-interval-trace-detail","2m","(the interval to exclude data from being cached to avoid incorrect cache for trace data in motion)")
flag.StringVar(&cluster,"cluster","cluster","(cluster name - defaults to 'cluster')")
flag.StringVar(&gatewayUrl,"gateway-url","","(url to the gateway)")
// Deprecated
flag.BoolVar(&useLicensesV3,"use-licenses-v3",false,"use licenses_v3 schema for licenses")
r.logger.InfoContext(ctx,"prepare query range request v5","ts",ts.UnixMilli(),"eval_window",r.EvalWindow().Milliseconds(),"eval_delay",r.EvalDelay().Milliseconds())
r.logger.InfoContext(ctx,"not enough data points to evaluate series, skipping","ruleid",r.ID(),"numPoints",len(series.Points),"requiredPoints",r.Condition().RequiredNumPoints)
r.logger.InfoContext(ctx,"not enough data points to evaluate series, skipping","ruleid",r.ID(),"numPoints",len(series.Points),"requiredPoints",r.Condition().RequiredNumPoints)
zap.L().Debug("Alert template data for rule",zap.String("name",r.Name()),zap.String("formatter",valueFormatter.Name()),zap.String("value",value),zap.String("threshold",threshold))
parsedRule.Annotations[labels.AlertSummaryLabel]=fmt.Sprintf("The rule threshold is set to %.4f, and the observed metric value is {{$value}}.",*parsedRule.RuleCondition.Target)
You are an expert developer with deep knowledge of Jest, React Testing Library, MSW, and TypeScript, tasked with creating unit tests for this repository.
# Auto-detect TypeScript Usage
Check for TypeScript in the project through tsconfig.json or package.json dependencies.
Adjust syntax based on this detection.
# TypeScript Type Safety for Jest Tests
**CRITICAL**: All Jest tests MUST be fully type-safe with proper TypeScript types.
**Type Safety Requirements:**
- Use proper TypeScript interfaces for all mock data
- Type all Jest mock functions with `jest.MockedFunction<T>`
- Use generic types for React components and hooks
- Define proper return types for mock functions
- Use `as const` for literal types when needed
- Avoid `any` type – use proper typing instead
# Unit Testing Focus
Focus on critical functionality (business logic, utility functions, component behavior)
Mock dependencies (API calls, external modules) before imports
Test multiple data scenarios (valid inputs, invalid inputs, edge cases)
Write maintainable tests with descriptive names grouped in describe blocks
Keep large responses in `mocks-server/__mockdata_`.
## Interactions
- Prefer `userEvent` for real user interactions (click, type, select, tab).
- Use `fireEvent` only for low-level/programmatic events not covered by `userEvent` (e.g., scroll, resize, setting `element.scrollTop` for virtualization). Wrap in `act(...)` if needed.
- Always await interactions:
```ts
const user = userEvent.setup({ pointerEventsCheck: 0 });
This directory contains the structured test plan for the SigNoz application. Each subfolder corresponds to a main module or feature area, and contains scenario files for all user journeys, edge cases, and cross-module flows. These documents serve as the basis for generating Playwright MCP-driven E2E tests.
## Structure
- Each main module (e.g., logs, traces, dashboards, alerts, settings, etc.) has its own folder or markdown file.
- Each file contains detailed scenario templates, including preconditions, step-by-step actions, and expected outcomes.
- Use these documents to write, review, and update test cases as the application evolves.
## Folders & Files
-`logs/` — Logs module scenarios
-`traces/` — Traces module scenarios
-`metrics/` — Metrics module scenarios
-`dashboards/` — Dashboards module scenarios
-`alerts/` — Alerts module scenarios
-`services/` — Services module scenarios
-`settings/` — Settings and all sub-settings scenarios
-`onboarding/` — Onboarding and signup flows
-`navigation/` — Navigation, sidebar, and cross-module flows
-`exceptions/` — Exception and error handling scenarios
-`external-apis/` — External API monitoring scenarios
2. In the 'Customize your team’s URL' dialog, enter the preferred subdomain
3. Click 'Apply Changes'
- **Expected:** Domain is set/updated for the team (UI feedback/confirmation should be checked)
## 2. Verify Domain Ownership
- **Note:** No explicit 'Verify' button or flow is present in the current UI. If verification is required, it may be handled automatically or via support.
## 3. Remove a Custom Domain
- **Note:** No explicit 'Remove' button or flow is present in the current UI. The only available action is to update the subdomain.
2. In the 'New Notification Channel' form, fill in required fields (Name, Type, Webhook URL, etc.)
3. (Optional) Toggle 'Send resolved alerts'
4. (Optional) Click 'Test' to send a test notification
5. Click 'Save' to add the channel
- **Expected:** Channel is added and listed in the table
## 2. Test Notification Channel
- **Precondition:** Channel is being created or edited
- **Steps:**
1. In the 'New Notification Channel' or 'Edit Notification Channel' form, click 'Test'
- **Expected:** Test notification is sent (UI feedback/confirmation should be checked)
## 3. Remove a Notification Channel
- **Precondition:** Channel is added
- **Steps:**
1. In the table, locate the channel row
2. Click 'Delete' in the Action column
3. Confirm removal if prompted
- **Expected:** Channel is removed from the table
## 4. Update Notification Channel Settings
- **Precondition:** Channel is added
- **Steps:**
1. In the table, locate the channel row
2. Click 'Edit' in the Action column
3. In the 'Edit Notification Channel' form, update fields as needed
4. (Optional) Click 'Test' to send a test notification
5. Click 'Save' to update the channel
- **Expected:** Settings are updated
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.