mirror of
https://github.com/SigNoz/signoz.git
synced 2026-07-01 20:30:37 +01:00
Compare commits
base: SigNoz:feat/multi-tenancy
SigNoz:main
SigNoz:feat/authz-devtools
SigNoz:refactor/authz-component-organization
SigNoz:infraM/kubernetes_container_monitoring
SigNoz:feat/llm-attr-mapping-mapper-drawer-4
SigNoz:feat/dashboards-v2-alert-variable-substitution
SigNoz:tvats-convert-not-found-to-warning
SigNoz:feat/llm-attr-mapping-group-drawer-3
SigNoz:feat/dashboards-v2-panel-view-mode
SigNoz:feat/panel-editor-v2-config-fixes
SigNoz:perf/ts-changes
SigNoz:feat/waterfall-vqa
SigNoz:feat/llm-attr-mapping-listing-2
SigNoz:infraM/pod_status_restart_counts
SigNoz:feat/llm-attr-mapping-foundation-1
SigNoz:fix/noz-context-propogation-empty-state
SigNoz:feat/noz-extra-thread
SigNoz:feat/quick-filters-use-field-api
SigNoz:feat/llm-pricing-ui-update-and-tests
SigNoz:nv/layout-validations
SigNoz:new-onboarding-datasources-29jun
SigNoz:fix/meter-explorer-use-stacked-chart
SigNoz:feat/traces-vqa
SigNoz:refactor/use-new-web-settings-flags
SigNoz:nv/v2-public-dashboard
SigNoz:fix/meter-explorer-use-stacked-chart-v1
SigNoz:issue-5388
SigNoz:feat/llm-pricing-unpriced-model1
SigNoz:nv/dashboard-create-aggregation
SigNoz:feat/llm-attr-mapping-tabbed-foundation
SigNoz:feat/infra-monitoring-api-v2
SigNoz:nv/dashboard-migration
SigNoz:feat/noz-error-handling
SigNoz:issue_5325
SigNoz:feat/code-ownner-update
SigNoz:refactor/fix-qb-serialization
SigNoz:feat/dashboards-v2-drilldown-context-links
SigNoz:feat/dashboards-v2-drilldown-breakout
SigNoz:feat/dashboards-v2-drilldown
SigNoz:tvats-bound-groupy-clause
SigNoz:feat/invite-members-v2
SigNoz:issue_5267
SigNoz:ns/ch-25-12
SigNoz:issue-5340
SigNoz:ns/scope
SigNoz:docs-sync/export-raw-data-offset-batch_20260624_120429
SigNoz:feat/revamp-roles-creation-v2
SigNoz:ns/json-trace-promoted
SigNoz:emdash/trace-json-ve9mb
SigNoz:feat/llm-attr-mapping-test
SigNoz:feat/llm-pricing-drawer-5
SigNoz:feat/panel-editor-v2-download-panel-image
SigNoz:dependabot/npm_and_yarn/frontend/dompurify-3.4.11
SigNoz:fix/update-stale-docs-links
SigNoz:dependabot/go_modules/github.com/openfga/openfga-1.18.0
SigNoz:feat/llm-attr-mapping-tests-5
SigNoz:feat/panel-editor-v2-clean
SigNoz:feat/test_endpoint_attributemapping
SigNoz:feat/llm-pricing-e2e-4
SigNoz:feat/llm-observability-model-pricing
SigNoz:emdash/trace-download-ijm6t
SigNoz:nv/functional-unique-index
SigNoz:feat/composite-query-url-serializer
SigNoz:dependabot/uv/tests/starlette-1.3.1
SigNoz:dependabot/uv/tests/cryptography-48.0.1
SigNoz:fix/ai-assistant-explorer-panel-type
SigNoz:reduce-motion-fix
SigNoz:feat/llm-olly-attribute-mapping
SigNoz:settings-e2e
SigNoz:feat/llm-observabilitiy-attribute-mapping
SigNoz:fts-logs
SigNoz:fix/query-context-operator-suggestion
SigNoz:e2e/alert_manager
SigNoz:feat/llm-observability
SigNoz:feat/llm-olly-model-pricing
SigNoz:chore/patch-audit-advisories-via-bump
SigNoz:downtime-ux
SigNoz:feat/forever-downtimes
SigNoz:feat/qb-dual-mode
SigNoz:dashboard-test/temp1
SigNoz:sentry-fixes
SigNoz:billing-page-layout-issue
SigNoz:nv/10890
SigNoz:issue_5326
SigNoz:issue_5324
SigNoz:revert-11609-ns/waterfall-v3-cleanup
SigNoz:feat/auth-config-openapi-spec
SigNoz:feature/dashboard-panel-v2
SigNoz:feat/traces-table-migration
SigNoz:refactor/alerts-modules-scss
SigNoz:feat/test-qb
SigNoz:pagination-migration
SigNoz:feat/dashboard-panel-editor-v2
SigNoz:issue_5123_2
SigNoz:squeeze-baby-squeeze
SigNoz:chore/add-adr
SigNoz:e2e/dashboard-create-flow
SigNoz:issue_5015
SigNoz:promooted-evolution
SigNoz:issue_5131_3
SigNoz:chore/update-deps
SigNoz:fix/frontend-changes-for-issue-4616
SigNoz:revert/input-migration-11401
SigNoz:fix/checkbox-issue
SigNoz:fts-3
SigNoz:fts-logs-2
SigNoz:refactor/cloud-integration-fe-changes
SigNoz:ns/flamegraph-memory-2-rebased
SigNoz:inline-logs
SigNoz:feat/add-ripple-effect
SigNoz:feat/react-search-query
SigNoz:feature/dashboard-details-temp-v2
SigNoz:chore/playwright-chromium-cache
SigNoz:e2e/table-list-value-panel
SigNoz:tushar-signoz-patch-1
SigNoz:refactor/cloudintegration-service-details-frontend
SigNoz:feat/overview-page
SigNoz:dependabot/npm_and_yarn/frontend/dompurify-3.4.3
SigNoz:tvats-improve-key-suggestions
SigNoz:mute-rules
SigNoz:feat/select-migration
SigNoz:ns/pie-chart
SigNoz:config-alt
SigNoz:ns/waterfall-v3-memory-4
SigNoz:feature/dashboard-details-temp
SigNoz:fix/ext-api-stepinterval
SigNoz:feature/dashboards-list-v2-total
SigNoz:chore/migrate-dropdown
SigNoz:fix/alert-management-rule-redirect
SigNoz:chore/migrate-inputNumber
SigNoz:ankitnayan-patch-1
SigNoz:chore/dashboard-menu-fixes
SigNoz:chore/button-migration
SigNoz:no-auth-mode-tests
SigNoz:chore/query-run-experience
SigNoz:traceop
SigNoz:tvats-dont-froce-multiif
SigNoz:e2e/histogram-pie-panel
SigNoz:e2e/timeseries-bar-panel
SigNoz:ns/fg-select-fields-optimize
SigNoz:ns/flamegraph-memory
SigNoz:role-sa-fga-followup
SigNoz:platform-pod/issues/706
SigNoz:dependabot/npm_and_yarn/frontend/uuid-14.0.0
SigNoz:ns/scope-unnormalised
SigNoz:chore/pin-all-dependencies
SigNoz:tvats-limit-filter-size
SigNoz:issue_4863
SigNoz:platform-pod/issues/1938
SigNoz:test/flaky-test-fight
SigNoz:nv/tags-for-dashboard-create
SigNoz:test/split-test-files
SigNoz:feat/add-signoz-icons
SigNoz:chore/replace-antd-icons-with-signoz-icons
SigNoz:dependabot/npm_and_yarn/frontend/follow-redirects-1.16.0
SigNoz:feat/service-map
SigNoz:ns/alert-disable
SigNoz:feat/dropdown-items
SigNoz:fix/multi-tooltip-pinning
SigNoz:test/golangci-action
SigNoz:fix/golang-cache
SigNoz:feat/billing
SigNoz:nv/delete-v2-dashboard
SigNoz:tvats-scalar-cache
SigNoz:tvats-fix-timeshift
SigNoz:fix/rule-v2alpha1-evaluation-symmetry
SigNoz:feat/overview-defaults
SigNoz:feat/vitest-migration-design
SigNoz:release/v0.121.2
SigNoz:test/body-json-field
SigNoz:issue_4361_final
SigNoz:feat/azure-integration-ui-2
SigNoz:feat/yarn-v4
SigNoz:ee-auditor/fileauditor
SigNoz:platform-pod/issues/1938-v2-users
SigNoz:platform-pod/issues/2036-authz-registry
SigNoz:fixes/drilldown-ui
SigNoz:chore/auto-update-lint
SigNoz:platform-pod/issues/2037-check
SigNoz:chore/refactor-coretypes
SigNoz:base-path-config-1
SigNoz:base-path-phase-4
SigNoz:tvats-validate-clickhouse-query
SigNoz:base-path-phase-3
SigNoz:base-path-phase-2
SigNoz:chore/user-dashboard-pref
SigNoz:ns/td-cache-remove
SigNoz:platform-pod/issues/2095-rule
SigNoz:refactor/migrate-logs-to-v5
SigNoz:ns/waterfall-v3-2-cache-removal
SigNoz:fix/metrics-run-query-16-cleanup-fetching-state
SigNoz:fix/metrics-run-query-15-auto-refresh-errors
SigNoz:fix/metrics-run-query-14-auto-refresh-dashboard
SigNoz:fix/metrics-run-query-13-auto-refresh-alerts
SigNoz:fix/metrics-run-query-12-auto-refresh-explorers
SigNoz:feat/filter-search
SigNoz:base-path-config
SigNoz:public-dir-cleanup
SigNoz:ns/td-cache
SigNoz:base-path-serving
SigNoz:dep/openfga
SigNoz:upgrade/collector@v0.144.3-rc.2
SigNoz:chore/am_e2e
SigNoz:feat/azure-integration-ui
SigNoz:feat/span-details
SigNoz:feat/test-trace-v3
SigNoz:issue_4501
SigNoz:asset-migration
SigNoz:feat/table-escape-char-support
SigNoz:feat/trace-v3-waterfall
SigNoz:feat/trace-v3-flamegraph
SigNoz:feat/trace-v3-api-layer
SigNoz:feat/trace-v3-shared-components
SigNoz:debug-wal
SigNoz:infraM/base_dependencies
SigNoz:fix/metrics-run-query
SigNoz:chore/notification_channel_migrations
SigNoz:nv/4310
SigNoz:nv/4310-2
SigNoz:tvats-4538
SigNoz:tvats-add-make-py-fmt-in-pre-commit-hook
SigNoz:tvats-alias-select-columns
SigNoz:fix/hosts-metrics
SigNoz:feat/migrate-nodes-to-single-component
SigNoz:dependabot/npm_and_yarn/frontend/lodash-es-4.18.1
SigNoz:members-nuqs-upgrade
SigNoz:user-roles-updates
SigNoz:ab/4172
SigNoz:dependabot/npm_and_yarn/frontend/handlebars-4.7.9
SigNoz:fix/hosts-list
SigNoz:cursor/kong-dashboard-issues-4f0e
SigNoz:fix/error-response-handler-null-4284-4286
SigNoz:fix/alert-filter
SigNoz:chore/refactor-eval
SigNoz:feat/v2-user-apis-tests
SigNoz:tvats-hide-trace-download-button
SigNoz:cursor/duplicate-react-keys-35b8
SigNoz:fix/select-label-tolowercase-4122
SigNoz:fix/promql-undefined-4285
SigNoz:fix/row-collapse-widgets-undefined-4283
SigNoz:fix/groupby-undefined-4282
SigNoz:fix/queryformulas-undefined-4280
SigNoz:fix/query-labels-not-iterable-4124
SigNoz:fix/logs-orderby-undefined-4123
SigNoz:bugfix/update-dashboard-time-on-made-public
SigNoz:feat/v2-user-apis
SigNoz:nv/6204
SigNoz:fix/query-builder-skip-when-nil
SigNoz:fix/issue-10674-query-expression-variables
SigNoz:refactor/cloud-integration-impl-store
SigNoz:feat/cloudintegration-module
SigNoz:fix/filter_suggestions
SigNoz:update-members-api
SigNoz:feat/trace-details-ux-1
SigNoz:poc-mock-telemetry-store
SigNoz:feat/trace-flamegraph-2
SigNoz:feat/fix-user-domain-models
SigNoz:feat/fix-user-types-structure
SigNoz:keep-message-contained-fix
SigNoz:feat/user-x-role
SigNoz:feat/trace-waterfall
SigNoz:chore/test-slack-notification-merge-queue-failure-2
SigNoz:fix/issue-4208/panel-type-change-plus-pie
SigNoz:debug_timepicker
SigNoz:json-qb-integration
SigNoz:chore/issue-3955-move-dashboard-provider
SigNoz:cursor/cloud-integration-nil-checks-b8be
SigNoz:platform-pod/issues/1830-claims
SigNoz:platform-pod/issues/1696-integrate
SigNoz:platform-pod/issues/1830
SigNoz:cursor/query-builder-condition-logic-6e00
SigNoz:cursor/span-label-text-colors-3035
SigNoz:feat/trace-flamegraph
SigNoz:feat/trace-details-v3
SigNoz:SIG_3554
SigNoz:cursor/query-builder-logic-and-tests-13c4
SigNoz:cursor/inconsistent-map-indentation-1a51
SigNoz:feat/infra_disk_usage
SigNoz:another-field
SigNoz:ns/poc-waterfall
SigNoz:cursor/timeline-and-flamegraph-issues-f686
SigNoz:SIG_8931_revert
SigNoz:issue/10108
SigNoz:like-op
SigNoz:SIG_3522
SigNoz:SIG_8931_fix
SigNoz:lp-filter-v5
SigNoz:feat/infraM_revamp_backend_p2
SigNoz:feat/authz-on-dashboards
SigNoz:feat/infraM_list_apis_request_time_check
SigNoz:light-mode-minor
SigNoz:testing-feature
SigNoz:ns/claude-setup
SigNoz:feat/infraM_revamp_backend_p1base
SigNoz:platform-pod/issues/1696-1
SigNoz:feat/disable_side_drawer_missing_identifiers
SigNoz:feat/improve_infra_monitoring_list_apis
SigNoz:feat/cloud-integrations-apis
SigNoz:nv/7069
SigNoz:chore/claude-service-setup
SigNoz:nitya/cloud-ref
SigNoz:feat/poc-flamegraph
SigNoz:ns/waterfall-zoom-on-wf
SigNoz:pipelinesv2
SigNoz:ns/waterfall-zoom
SigNoz:ns/unfurl-fe
SigNoz:fix/remove_decoding_url
SigNoz:claude/laughing-driscoll-large-trace
SigNoz:nv/10282
SigNoz:chore/build-optimizationss
SigNoz:fts-body
SigNoz:chore/cmd-click
SigNoz:platform-pod/issues/1725
SigNoz:remove-v4-support-rules
SigNoz:feat/azure-integration-ref
SigNoz:platform-pod/issues/528
SigNoz:fix/root-user-integration-tests
SigNoz:feat/cross-panel-sync
SigNoz:perses
SigNoz:remote-dot-metrics
SigNoz:test-generics
SigNoz:dependabot/npm_and_yarn/frontend/axios-1.13.5
SigNoz:dependabot/npm_and_yarn/frontend/lodash-es-4.17.23
SigNoz:dependabot/npm_and_yarn/frontend/webpack-5.104.1
SigNoz:feat/root-user
SigNoz:feat/sso-attributes-mapping-frontend
SigNoz:tavts-enable-seraching-events
SigNoz:show-ip-88664
SigNoz:fix/service-map-environment-filter-dot-metrics
SigNoz:multiple-tickets
SigNoz:chore/avoid_series_copy_on_threshold_eval
SigNoz:tvats-hot-fix-2
SigNoz:temp/local_clickhouse_setup
SigNoz:chore/issue-3778-variable-store-isolation
SigNoz:chore/add-shortcuts-container
SigNoz:merge-json-columns
SigNoz:feat/cmd-click
SigNoz:platform-pod/issues/1278
SigNoz:ns/ext-api-query
SigNoz:ns/devenv
SigNoz:temp/collector_version_upgrade_signoz_repo_changes
SigNoz:tvats-improve-alias-handling
SigNoz:issue-10008
SigNoz:fix/trace-details-span-popover
SigNoz:feat/services_use_span_metrics
SigNoz:feat/self-reset-password-frontend
SigNoz:dependabot/npm_and_yarn/frontend/node-forge-1.3.3
SigNoz:chore/postable_rule_more_validation
SigNoz:feat/rule_condition_validation
SigNoz:feat/gateway-apis-integration-2
SigNoz:SIG-3733
SigNoz:feat/gateway-apis-integration
SigNoz:chore/ignore-context-canceled-logs
SigNoz:chore/push-launch.json
SigNoz:refactor/composite_query_validation
SigNoz:fix/validate_alert_payload_before_saving
SigNoz:chore/issue-9924-2
SigNoz:chore/remove_eval_delay_from_safe_rules
SigNoz:feat/warnings_for_empty_data
SigNoz:fix/metadata_map_metric_check
SigNoz:SIG-3098
SigNoz:cache-tests-on-cumulative-counter
SigNoz:refactor/update-cloud-integration-version
SigNoz:fix/duplicate-column-options
SigNoz:fix/trace-funnels-escape-user-controlled-values
SigNoz:chore/sentry-event-qb
SigNoz:feat/log-detail-add-remove-columns
SigNoz:fix/no_common_type_error_metrics_filter
SigNoz:issue/8880
SigNoz:SIG-9860
SigNoz:fix/show-loading-while-trace-only-logs-request-is-in-progress
SigNoz:chore/remove_rule_source_and_id_from_channel_title
SigNoz:pr-9785
SigNoz:perf/log-view
SigNoz:SIG-9743
SigNoz:refactor/query-builder-delete-logic
SigNoz:platform-pod/issues/1401
SigNoz:perf/panel-rerender
SigNoz:dependabot/npm_and_yarn/frontend/express-4.22.1
SigNoz:dependabot/npm_and_yarn/frontend/js-yaml-3.14.2
SigNoz:feat/handle-duplicate-attributes
SigNoz:dependabot/npm_and_yarn/frontend/min-document-2.19.2
SigNoz:cursor/copy-local-storage-to-url-queries-gpt-5.1-codex-2624
SigNoz:platform-pod/issues/1386
SigNoz:SIG-9263
SigNoz:tvats-improve-error-msg
SigNoz:feat/export_and_pagination_for_query_table
SigNoz:enh/conver-query-rewrite
SigNoz:enh/dashboard-creation-flow
SigNoz:feat/queryfilterextractor_complex
SigNoz:tvats-handle-duplicate-columns
SigNoz:platform-pod/issues/1136/1
SigNoz:fix/pass_time_in_scope_builder_using_structs
SigNoz:SIG-5270
SigNoz:fix/metric_metadata_le_bucket
SigNoz:chore/filter-rules
SigNoz:snyk-fix-1089b0dc310672567c7b8654e5f0f797
SigNoz:fix/span-logs-trace-only-incorrect-empty-state
SigNoz:fix/external-apis-bugfixes-and-improvments
SigNoz:enhancement/cmd-click-stack
SigNoz:snyk-fix-36c4a2e58f5f8c5430abd8f06f9586fd
SigNoz:feat/deployment-markers
SigNoz:feat/add-actionables-to-span-fields
SigNoz:chore/vite-migration
SigNoz:feat/cmd-click-impl-updated-history
SigNoz:fix/traces-overall-improvements
SigNoz:release-0.97.1
SigNoz:feat/enable_exp_hist
SigNoz:tvats-custom-ttl-for-attributes
SigNoz:routing-policies-e2e
SigNoz:snyk-fix-0e66a6592422ccd0d016dfcad7c720df
SigNoz:snyk-fix-e189cf2c41ee3f2f0637cf05e9fabca1
SigNoz:playwright-setup
SigNoz:issue_3019
SigNoz:snyk-fix-9542d99ece647d414f60b012a4da2366
SigNoz:fix/fix-the-attributes-actionables-styles
SigNoz:chore/y-axis-dashboards-alerts
SigNoz:temp/check_@_symbol_as_parametervalue_start
SigNoz:issue-5676
SigNoz:chore/normal-index
SigNoz:thirdpartylistapifix
SigNoz:temp/study_queries
SigNoz:indirectDescOperatorImprovement
SigNoz:enhancement/cmd-click-across-routes
SigNoz:feat/span-list-tab-in-trace-details-v2
SigNoz:revert-9026-SIG-8115
SigNoz:dependabot/npm_and_yarn/frontend/axios-1.12.0
SigNoz:fix/traces-list-trace-view-next-prev-time-issue
SigNoz:SIG-2881
SigNoz:evaluation-window-popover
SigNoz:upgrade/clickhouse-go
SigNoz:snyk-fix-dfda954b712a03d550caa0f896c4b84d
SigNoz:SIG-2879
SigNoz:feat/cron-alert
SigNoz:feat/interactive-dashbaord-v2
SigNoz:feat/interactive-dashbaord-v3
SigNoz:feat/cross-filtering-2
SigNoz:demo/trace-operators
SigNoz:feat/cross-filtering-test
SigNoz:feat/cross-filtering
SigNoz:feat/static-sidebar-to-side-drawer-in-trace-details-v2
SigNoz:fix/clickhouse_version_upgrade_local
SigNoz:not-fix-expr
SigNoz:feat/session-recording
SigNoz:issue-8964
SigNoz:temporality-cache
SigNoz:improveTraceQuery
SigNoz:fix/alerts-qbv5
SigNoz:feat/custom-destinations
SigNoz:fix/non_zero_step_promql
SigNoz:demo-trace-operators
SigNoz:demo/trace_operators_backend
SigNoz:dyn-var-url-revert
SigNoz:SIG-5603-2
SigNoz:SIG-2023-var-1
SigNoz:var-url-format
SigNoz:variables-features
SigNoz:SIG-8704
SigNoz:imp/remove_nplus1_query_testing
SigNoz:imp/remove_nplus1_query
SigNoz:fix/extract-query-params
SigNoz:snyk-fix-05ae02136e944e496d83eedf877f6b45
SigNoz:chore/custom_dispatcher
SigNoz:fix/otel-collector-clickhouse-common-dev-network
SigNoz:feat/alert-multi-threshold
SigNoz:chore/requests-upgrade
SigNoz:limit-for-empty-key-search
SigNoz:feat/metering-ui
SigNoz:feat/drilldowns
SigNoz:feat/timestamp_aware_spans
SigNoz:feature/show-event-count-in-span-drawer
SigNoz:feat/drilldown-tables-v2
SigNoz:feat/ingestion-settings-e2e-tests
SigNoz:migration/react-router-dom
SigNoz:remove-stylus
SigNoz:dummy-test
SigNoz:chore/trace-funnels-tests
SigNoz:snyk-fix-d3e4693dcb50c2c0479fad12609c783a
SigNoz:snyk-fix-8f56167ea8ad689ec8351a1e4355b2ef
SigNoz:feat/drilldown-tables-v2-main
SigNoz:fix/quick-filters-query
SigNoz:snyk-fix-e37da51f00be42813460b6ea72743eca
SigNoz:snyk-fix-41273533b92c56f458ab759648a77cd0
SigNoz:fix/parenthesis-context
SigNoz:fix/query-context-with-spaces
SigNoz:fix/tracing-funnel-creation
SigNoz:feature/table-consumption-phase-1
SigNoz:chore/prometheus-v0.304.1
SigNoz:snyk-fix-030382efc240f2c1690bd90340fd81e9
SigNoz:SIG-5761
SigNoz:chore/tf/testing
SigNoz:fix/pagination-tests-fix
SigNoz:SIG-6421
SigNoz:feat/fixes-sprint5
SigNoz:fix/pat-role
SigNoz:variable-url-format
SigNoz:SIG-5603-1
SigNoz:SIG-2023-1
SigNoz:feat/qf-5
SigNoz:chore/timestamptz-non-null
SigNoz:feat/7294-services
SigNoz:tfbtest
SigNoz:tfbackend
SigNoz:fix/infra-monitoring/custom-time-range
SigNoz:feat/qf-2
SigNoz:fix-id-dashboards
SigNoz:react-router-update
SigNoz:dependabot/npm_and_yarn/frontend/http-proxy-middleware-3.0.5
SigNoz:remove-dead-code
SigNoz:feat/7274
SigNoz:feat/resource-filter-attr-v2
SigNoz:issue_7376
SigNoz:licensing
SigNoz:fix/prevent-the-layout-shift-in-query-builder
SigNoz:add-sapn-filter
SigNoz:kubecon-demo-2
SigNoz:kubecon-demo
SigNoz:feat/ha
SigNoz:signoz-tailwind-setup
SigNoz:snyk-fix-2c0716192269975cfac4296b058ca613
SigNoz:update-query
SigNoz:multiselect-component
SigNoz:feat/multi-tenancy
SigNoz:fix/opamp
SigNoz:onboarding-march-03
SigNoz:chore/ignore-license-error
SigNoz:release/0.76.0
SigNoz:fix-7233
SigNoz:alertmanager
SigNoz:snyk-fix-98a2b4eb555f6f78e7c1018ce58678b9
SigNoz:fix/handle-all-null-autocomplete-aggregateValues
SigNoz:SIG-6986
SigNoz:fix/install-no-sudo
SigNoz:fix/6175
SigNoz:6175
SigNoz:fix/range-picker-default-time
SigNoz:issue_406
SigNoz:chore/sentry-fixes
SigNoz:injection
SigNoz:config
SigNoz:pkg/config
SigNoz:feat/1196
SigNoz:snyk-fix-de6ff2437fe907956a0ab593cf6cb252
SigNoz:snyk-fix-563bd9c08e7da2ef4cdde74dd1ecc769
SigNoz:develop
SigNoz:release/v0.63.x
SigNoz:deprecate-v2-license
SigNoz:release/v0.62.x
SigNoz:snyk-fix-d189e25666bafbf4dbf075eb90f9ac07
SigNoz:release-sync/v0.61.x
SigNoz:release/v0.61.x
SigNoz:release/v0.60.x
SigNoz:release/v0.59.x
SigNoz:176/coalesce
SigNoz:release/v0.58.x
SigNoz:host-lists-improvement
SigNoz:anomaly-detection-target-default
SigNoz:sync/post-release-v0.57
SigNoz:issue_6307
SigNoz:snyk-fix-f9bd9b07e11673e8e8dbe74704f613fa
SigNoz:release/signoz-0.57.0
SigNoz:snyk-fix-475cb16aa1169412e86a28f40bb94889
SigNoz:release/v0.56.x
SigNoz:release/v0.55.x
SigNoz:release/v0.55.1
SigNoz:release/v0.54.x
SigNoz:release/v0.53.x
SigNoz:release/v0.52.x
SigNoz:release/v0.51.x
SigNoz:snyk-fix-1b34d8ba4ba6f717cec2c190535c57ce
SigNoz:snyk-fix-3c40ef7370e61bd5c87af93fc6b59d17
SigNoz:snyk-fix-e433c0c1dea4bb6bdec912a874dccac4
SigNoz:snyk-fix-811751f2b4e168eb58e10057181ba572
SigNoz:release/v0.50.x
SigNoz:release/v0.49.x
SigNoz:release/v0.48.x
SigNoz:release/v0.47.x
SigNoz:release/v0.46.x
SigNoz:release/v0.44
SigNoz:release/v0.43.x
SigNoz:release/v0.42.0
SigNoz:release/v0.41.1
SigNoz:release/v0.41.0
SigNoz:release/v0.40.0
SigNoz:release/v0.39.1
SigNoz:release/v0.39.0
SigNoz:release/v0.38.2
SigNoz:release/v0.38.0
SigNoz:fix/precheck-login
SigNoz:v0.132.0-rc.2
SigNoz:v0.132.0-rc.1
SigNoz:v0.131.0
SigNoz:v0.130.1
SigNoz:v0.130.0
SigNoz:v0.129.0
SigNoz:v0.128.0
SigNoz:v0.127.1
SigNoz:v0.127.0
SigNoz:v0.126.3-rc.1
SigNoz:v0.126.1
SigNoz:v0.126.0
SigNoz:v0.125.1
SigNoz:v0.125.0
SigNoz:v0.124.0
SigNoz:v0.123.0
SigNoz:v0.122.0
SigNoz:v0.121.1
SigNoz:v0.121.0
SigNoz:v0.120.0
SigNoz:v0.119.0
SigNoz:v0.118.0
SigNoz:v0.117.1
SigNoz:v0.117.0
SigNoz:v0.116.1
SigNoz:v0.116.0
SigNoz:v0.115.0
SigNoz:v0.114.1
SigNoz:v0.114.0
SigNoz:v0.113.0
SigNoz:v0.112.1
SigNoz:v0.113.0-rc.1
SigNoz:v0.112.0
SigNoz:v0.111.0
SigNoz:v0.110.2
SigNoz:v0.110.1
SigNoz:v0.110.0
SigNoz:v0.109.3
SigNoz:v0.109.2
SigNoz:v0.109.1
SigNoz:v0.109.0
SigNoz:v0.108.0
SigNoz:v0.108.0-rc.1
SigNoz:v0.107.0
SigNoz:v0.106.0
SigNoz:v0.105.1
SigNoz:v0.105.0
SigNoz:v0.104.0
SigNoz:v0.104.0-cloud.1
SigNoz:v0.103.1
SigNoz:v0.103.0
SigNoz:v0.102.1
SigNoz:v0.102.0
SigNoz:v0.101.0
SigNoz:v0.101.0-rc.1
SigNoz:v0.100.1
SigNoz:v0.100.0
SigNoz:v0.99.0
SigNoz:v0.98.0
SigNoz:v0.98.0-rc.1
SigNoz:v0.98.0-rc.0
SigNoz:v0.97.1
SigNoz:v0.97.0-515a1bda0
SigNoz:v0.97.0
SigNoz:v0.97.0-rc.3
SigNoz:v0.97.0-rc.2
SigNoz:v0.97.0-rc.1
SigNoz:v0.96.1
SigNoz:v0.96.0
SigNoz:v0.95.1-cloud.1
SigNoz:v0.95.1
SigNoz:v0.95.0
SigNoz:v0.94.1-cloud.1
SigNoz:v0.94.1
SigNoz:v0.94.0
SigNoz:v0.93.0-cloud.3
SigNoz:v0.93.0-cloud.2
SigNoz:v0.93.0-cloud.1
SigNoz:v0.93.0
SigNoz:v0.93.0-rc.3
SigNoz:v0.93.0-rc.2
SigNoz:v0.93.0-rc.1
SigNoz:v0.92.2
SigNoz:v0.92.1
SigNoz:v0.92.0
SigNoz:v0.91.1
SigNoz:v0.92.0-rc.5
SigNoz:v0.92.0-rc.4
SigNoz:v0.92.0-rc.3
SigNoz:v0.92.0-rc.2-gk1
SigNoz:v0.92.0-rc.2
SigNoz:v0.92.0-rc.1
SigNoz:v0.91.0-252658c
SigNoz:v0.91.0-dc4d515
SigNoz:v0.91.0-a8b6295
SigNoz:v0.92.0-cloud.1
SigNoz:v0.91.0-f1ab138
SigNoz:v0.91.0-f2c3a67
SigNoz:v0.91.0
SigNoz:v0.90.1-e0d6411
SigNoz:v0.90.1-e97c7d6
SigNoz:v0.90.1-3ef1e88
SigNoz:v0.90.1
SigNoz:v0.90.0
SigNoz:v0.89.0-9a406b8
SigNoz:v0.89.0
SigNoz:v0.88.1
SigNoz:v0.88.0
SigNoz:v0.88.0-rc.1
SigNoz:v0.89.0-cloud.1
SigNoz:v0.87.0-bb17b9d6c
SigNoz:v0.87.0-4ecc066
SigNoz:v0.87.0-54607d8
SigNoz:v0.87.0-41c3ceb10
SigNoz:v0.87.0-cffeff0
SigNoz:v0.87.0-af2534bbf
SigNoz:v0.88.0-cloud.3
SigNoz:v0.88.0-cloud.2
SigNoz:v0.87.0-e7f2408
SigNoz:v0.87.0-8d03e35d8
SigNoz:v0.88.0-cloud.1
SigNoz:v0.87.0-f267ed8ad
SigNoz:v0.87.0-b5a8309
SigNoz:v0.87.0-patch
SigNoz:v0.87.0-bda231637
SigNoz:v0.87.0
SigNoz:v0.87.0-rc.1
SigNoz:v0.86.2-6404e73
SigNoz:v0.86.2
SigNoz:v0.86.1
SigNoz:v0.86.0
SigNoz:v0.85.3
SigNoz:v0.85.2
SigNoz:v0.85.1
SigNoz:v0.85.0
SigNoz:v0.84.1
SigNoz:v0.84.0
SigNoz:v0.83.0
SigNoz:v0.83.0-cloud.1
SigNoz:v0.82.1
SigNoz:v0.82.0
SigNoz:v0.81.0-b9cd7ded
SigNoz:v0.81.0-cbedaa6e
SigNoz:v0.82.0-cloud.1
SigNoz:v0.81.0
SigNoz:v0.80.0-749532a0
SigNoz:v0.80.0-7b530d88
SigNoz:v0.80.0-4814a92
SigNoz:v0.80.0-523db11d
SigNoz:v0.80.0-53b98b0b
SigNoz:v0.80.0
SigNoz:v0.79.1
SigNoz:v0.80.0-cloud.1
SigNoz:v0.79.0
SigNoz:v0.78.2-json-parser-fix
SigNoz:v0.77.2-integrations-1
SigNoz:v0.77.2-integrations
SigNoz:v0.78.1
SigNoz:v0.79.0-431d46d0a
SigNoz:v0.79.0-963e35b55
SigNoz:v0.79.0-18b89242c
SigNoz:v0.79.0-32ece079f
SigNoz:v0.79.0-c396d2496
SigNoz:v0.78.0
SigNoz:v0.78.0-86f4f0d1d
SigNoz:v0.78.0-9759fceab
SigNoz:v0.78.0-c3d455b93
SigNoz:v0.78.0-3142b6cc6
SigNoz:v0.78.0-rc.9
SigNoz:v0.78.0-rc.8
SigNoz:v0.78.0-rc.7
SigNoz:v0.78.0-rc.6
SigNoz:v0.78.0-cloud.1
SigNoz:v0.78.0-4610afa99
SigNoz:v0.78.0-rc.5
SigNoz:v0.78.0-rc.4
SigNoz:v0.78.0-fe0f164e1
SigNoz:v0.78.0-rc.3
SigNoz:v0.76.2-e46c8bb1
SigNoz:v0.76.2-314d2560
SigNoz:v0.78.0-rc.2
SigNoz:v0.76.2-8049fa11
SigNoz:v0.78.0-rc.1
SigNoz:v0.77.0-5183d61c9
SigNoz:v0.77.0
SigNoz:v0.76.2-5cf417f4
SigNoz:v0.76.2-3c9e40a8
SigNoz:v0.77.0-6147f6e68
SigNoz:v0.76.2-b2b89885
SigNoz:v0.76.2-be44d660
SigNoz:v0.76.2-bf7a3181
SigNoz:v0.77.0-cloud.2
SigNoz:v0.76.2-ac7ecac2
SigNoz:v0.77.0-0fc12ddae
SigNoz:v0.77.0-740a290dc
SigNoz:v0.77.0-ecbe0b82d
SigNoz:v0.77.0-51ecd97b7
SigNoz:v0.76.2-24adfec5
SigNoz:v0.76.3-msk-integration-5
SigNoz:v0.76.3-msk-integration-4
SigNoz:v0.77.0-6a246332a
SigNoz:v0.77.0-cd0b9abd8
SigNoz:v0.77.0-e63d1b83b
SigNoz:v0.77.0-b2a7e7191
SigNoz:v0.77.0-7d89156af
SigNoz:v0.77.0-c86203e6b
SigNoz:v0.76.3-msk-integration-3
SigNoz:v0.77.0-820316d87
SigNoz:v0.76.3-msk-integration-2
SigNoz:v0.76.2
SigNoz:v0.76.3-msk-integration
SigNoz:v0.76.1
SigNoz:v0.76.0-f9b74b86
SigNoz:v0.76.0-cb04900a
SigNoz:tpapi-demo-internal-testing
SigNoz:v0.76.0-a13d1c89
SigNoz:0.76.0-a13d1c89
SigNoz:v0.77.0-5896e7c2d
SigNoz:v0.77.0-cloud.1
SigNoz:v0.76.0
SigNoz:v0.76.0-rc.5
SigNoz:v0.76.0-rc.3
SigNoz:v0.76.0-rc.1
SigNoz:v0.76.0-0e721dee1
SigNoz:feat/inproduct-homepage-v1
SigNoz:v0.76.0-8ca1f99d8
SigNoz:v0.76.0-cloud.4
SigNoz:v0.76.0-cloud.3
SigNoz:v0.76.0-cloud.2
SigNoz:v0.75.0-e1be10cd4
SigNoz:v0.75.0-47c4483f5
SigNoz:v0.75.0-2a4891fb8
SigNoz:v0.75.0-25657732b
SigNoz:v0.75.0-74edc942d
SigNoz:v0.75.0-6965f42f1
SigNoz:v0.75.0-35fe60dbb
SigNoz:v0.75.0-23b60b672
SigNoz:v0.76.0-cloud.1
SigNoz:v0.75.0-7d07d7a0b
SigNoz:v0.75.0-7082ea572
SigNoz:v0.75.0-730832cd4
SigNoz:v0.75.0-ed165f060
SigNoz:v0.75.0-42246eb89
SigNoz:v0.75.0-6ca7fa82b
SigNoz:v0.75.0-99ced1177
SigNoz:v0.75.0-9766ed21c
SigNoz:v0.75.0-763b4fffe
SigNoz:v0.75.0-c6e543416
SigNoz:v0.76.0-cache
SigNoz:v0.75.0-a64309701
SigNoz:v0.75.0-aws-integration-12eb23d4
SigNoz:v0.75.0-98eee6f7f
SigNoz:v0.75.0-bd3e0eeb6
SigNoz:v0.75.0-9d6e09d3f
SigNoz:v0.75.0-cccc25e2e
SigNoz:v0.75.0-9580da047
SigNoz:v0.75.0-8534b798c
SigNoz:v0.75.0-3bedd10ef
SigNoz:v0.75.0-b6f2ff052
SigNoz:v0.75.0-d02dc8687
SigNoz:v0.75.0-04835d14e
SigNoz:v0.75.0-aws-integration-107ba4a0
SigNoz:v0.75.0-aws-integration-c2cf1152
SigNoz:v0.75.0
SigNoz:v0.75.0-cloud.1
SigNoz:v0.75.0-pagination-be
SigNoz:v0.74.0
SigNoz:v0.74.0-aws-integration-4cc717d05
SigNoz:v0.74.0-cloud.1
SigNoz:v0.75.0-pagination
SigNoz:v0.74.0-2b4340a3e
SigNoz:v0.74.0-309ac976c
SigNoz:v0.73.0-407654e6
SigNoz:v0.73.0
SigNoz:v0.73.0-cloud.3
SigNoz:v0.73.0-cloud.2
SigNoz:v0.73.0-cloud.1
SigNoz:v0.72.0-aws-integration-a893b39
SigNoz:v0.72.0
SigNoz:v0.72.0-cloud.4
SigNoz:v0.72.0-onboarding-v3
SigNoz:v0.72.0-cloud.3
SigNoz:v0.72.0-cloud.2
SigNoz:v0.72.0-aws-integration-addafb9c3
SigNoz:v0.72.0-aws-integration-06b18e806
SigNoz:v0.72.0-cloud.1
SigNoz:v0.72.0-aws-integration-831514b83
SigNoz:v0.72.0-aws-integration-c3164912e
SigNoz:v0.72.0-onboarding-part-3-20fecc707
SigNoz:v0.71.0
SigNoz:v0.71.0-cloud.2
SigNoz:v0.71.0-42fe92cc8
SigNoz:v0.70.1
SigNoz:v0.71.0-cloud.1
SigNoz:v0.70.0
SigNoz:v0.71.0-pagination
SigNoz:v0.70.0-trace-detail-84268e049
SigNoz:v0.70.0-trace-detail-c1981969f
SigNoz:histogram-quantile/v0.0.1
SigNoz:v0.69.0-d3a8cf9ad
SigNoz:v0.70.0-trace-detail-5e26c6617
SigNoz:v0.70.0-trace-detail-7b5d663d6
SigNoz:v0.70.0-trace-detail-cc49c3958
SigNoz:v0.69.0
SigNoz:v0.69.0-cloud.2
SigNoz:v0.69.0-cloud.1
SigNoz:v0.68.0
SigNoz:v0.67.1
SigNoz:v0.67.0-6586-vars
SigNoz:v0.67.0-eb16d4bd6
SigNoz:v0.67.0
SigNoz:v0.67.0-custom-domain-15f85a645
SigNoz:v0.66.0-ea9bcc590
SigNoz:v0.66.0
SigNoz:v0.65.1
SigNoz:v0.66.0-trace-details-5370b8012
SigNoz:v0.66.0-trace-details-a45104493
SigNoz:v0.65.0
SigNoz:v0.65.0-cloud.7
SigNoz:v0.65.0-qf-005822ec4
SigNoz:v0.65.0-qf-0fca38a70
SigNoz:v0.65.0-qf-ea6694b44
SigNoz:v0.65.0-cloud.6
SigNoz:v0.65.0-cloud.5
SigNoz:v0.65.0-cloud.4
SigNoz:v0.65.0-cloud.3
SigNoz:v0.64.0-cbc83a0
SigNoz:v0.65.0-cloud.2
SigNoz:v0.64.0-7405bfbb
SigNoz:v0.65.0-cloud.1
SigNoz:v0.63.0-develop2
SigNoz:v0.64.0
SigNoz:v0.63.0-develop
SigNoz:v0.63.0
SigNoz:v0.63.0-frontend-arch-1c16916a1
SigNoz:v0.63.0-cloud.1
SigNoz:v0.63.0-frontend-arch-08c4bd0ff
SigNoz:v0.62.0
SigNoz:v0.62.0-cloud.3
SigNoz:v0.62.0-frontend-arch-6eeab69cc
SigNoz:v0.62.0-cloud.2
SigNoz:v0.61.0-214005e99
SigNoz:v0.62.0-cloud.1
SigNoz:v0.61.0
SigNoz:v0.61.0-debug-39566bfbe
SigNoz:v0.61.0-debug-1a7ea098a
SigNoz:v0.60.0-1934f74
SigNoz:v0.61.0-cloud.4
SigNoz:v0.61.0-cloud.3
SigNoz:v0.61.0-cloud.2
SigNoz:v0.61.0-cloud.1
SigNoz:v0.60.0
SigNoz:v0.60.0-cloud.5
SigNoz:v0.60.0-cloud.4
SigNoz:v0.60.0-cloud.3
SigNoz:v0.60.0-cloud.2
SigNoz:v0.60.0-cloud.1
SigNoz:v0.59.0-trace
SigNoz:v0.59.0
SigNoz:v0.59.2-licenses-57c232690
SigNoz:v0.59.1-licenses-a73a5931f
SigNoz:v0.58.2
SigNoz:v0.57.0-trace
SigNoz:v0.56.0-43e1fe686-trace
SigNoz:v0.58.1
SigNoz:v0.59.1-onboarding-part-3
SigNoz:v0.59.0-cloud.1
SigNoz:v0.58.0-licenses-e6cacced7
SigNoz:v0.58.0-git.946f30b08
SigNoz:v0.60.3-onboarding-part-3
SigNoz:v0.58.0
SigNoz:v0.56.0-trace-1
SigNoz:v0.58.0-licenses-bde7b85d1
SigNoz:v0.60.1-onboarding-part-3
SigNoz:v0.60.2-onboarding-part-3
SigNoz:v0.58.0-licenses-8b3d1f617
SigNoz:v0.58.0-cloud.2
SigNoz:v0.58.0-kafka-v2
SigNoz:v0.60.0-onboarding-part-3
SigNoz:v0.58.0-cloud.1
SigNoz:v0.57.0-cloud.5-d44d8c4ac
SigNoz:v0.59.0-onboarding-v2
SigNoz:v0.57.0-cloud.5-ff25ebf32
SigNoz:v0.58.2-onboarding-develop
SigNoz:v0.57.0-cloud.5-7759e67ee
SigNoz:v0.58.2-onboarding-23a57b0
SigNoz:v0.58.1-onboarding-10acef
SigNoz:v0.57.0
SigNoz:v0.58.0-onboarding-068f2097c
SigNoz:v0.57.0-cloud.5
SigNoz:v0.57.0-cloud.4
SigNoz:v0.57.0-cloud.3
SigNoz:v0.56.0-trace-2
SigNoz:v0.56.0-trace
SigNoz:v0.57.0-cloud.1.5b3839dca
SigNoz:v0.57.0-cloud.2
SigNoz:v0.57.0-cloud.1
SigNoz:v0.56.0
SigNoz:v0.56.0-cloud.3
SigNoz:v0.56.0-cloud.2
SigNoz:v0.56.0-cloud.1
SigNoz:v0.55.0
SigNoz:v0.55.0-cloud.10
SigNoz:v0.55.0-cloud.9
SigNoz:v0.55.0-cloud.8
SigNoz:v0.52.0-cloud.1.5d6ff4781
SigNoz:v0.55.0-cloud.7
SigNoz:v0.55.0-cloud.6
SigNoz:v0.55.0-cloud.5
SigNoz:v0.55.0-cloud.4
SigNoz:v0.55.0-cloud.3
SigNoz:v0.55.0-cloud.2
SigNoz:v0.55.0-cloud.1
SigNoz:v0.54.0
SigNoz:v0.54.0-cloud.5
SigNoz:v0.54.0-cloud.4
SigNoz:v0.54.0-cloud.3
SigNoz:v0.54.0-cloud.2
SigNoz:v0.54.0-cloud.1
SigNoz:v0.53.0
SigNoz:v0.53.0-cloud.4
SigNoz:v0.53.0-c2c8c716c
SigNoz:v0.53.0-alpha.2
SigNoz:v0.53.0-alpha.1
SigNoz:v0.53.0-cloud.3
SigNoz:v0.53.0-cloud.2
SigNoz:v0.50.0-logs-schema-t2-fe
SigNoz:v0.50.0-logs-schema-t2
SigNoz:v0.53.0-cloud.1
SigNoz:v0.53.0-cloud.0
SigNoz:v0.52.0-cloud.1.521b7c6
SigNoz:v0.52.0-cloud.8
SigNoz:v0.52.0-cloud.7
SigNoz:v0.52.0-cloud.6
SigNoz:v0.52.0
SigNoz:v0.52.0-cloud.5
SigNoz:v0.51.0-agg-tables
SigNoz:v0.52.0-cloud.4
SigNoz:v0.52.0-cloud.3
SigNoz:v0.50.0-logs-schema-t1-fe
SigNoz:v0.50.0-logs-schema-t1
SigNoz:v0.50.0-logs-schema
SigNoz:v0.52.0-cloud.2-5a9267d69
SigNoz:v0.52.0-cloud.2
SigNoz:v0.52.0-cloud.1
SigNoz:v0.51.0
SigNoz:v0.51.0-cloud.3
SigNoz:v0.51.0-cloud.2
SigNoz:v0.51.0-cloud.1
SigNoz:v0.50.0
SigNoz:v0.50.0-cloud.2
SigNoz:v0.50.0-cloud.1
SigNoz:v0.49.1
SigNoz:v0.49.0
SigNoz:v0.49.0-cloud.4
SigNoz:v0.49.0-cloud.3
SigNoz:v0.48.1
SigNoz:v0.49.0-cloud.2
SigNoz:v0.49.0-cloud.1
SigNoz:v0.48.0
SigNoz:v0.48.0-cloud.3
SigNoz:v0.48.0-cloud.2
SigNoz:v0.48.0-cloud.1
SigNoz:v0.48.0-beta.2
SigNoz:v0.48.0-beta.1
SigNoz:v0.47.0
SigNoz:v0.47.0-beta.5
SigNoz:v0.47.0-beta.4
SigNoz:v0.47.0-beta.3
SigNoz:v0.46.0-389f22cf6
SigNoz:v0.47.0-beta.2
SigNoz:v0.47.0-beta.1
SigNoz:v0.45.0-dashboard-revamp
SigNoz:v0.46.0-353881533
SigNoz:v0.46.0-1d86e5eb5
SigNoz:v0.46.0-1369fe191
SigNoz:v0.46.0-76b1e40cb
SigNoz:v0.46.0-a0c340f21
SigNoz:v0.46.0-0d043bf38
SigNoz:v0.46.0
SigNoz:v0.45.0-04a68ad4-debug
SigNoz:v0.45.0-a891dd4b
SigNoz:v0.45.0-12be6ce0
SigNoz:v0.45.0-9ff0e340
SigNoz:v0.45.0-c42f06b9-alerts-v4
SigNoz:v0.45.0-alert-v4-migrate
SigNoz:v0.45.0-7e31b4ca
SigNoz:v0.46.0-cloud.1
SigNoz:v0.45.0
SigNoz:v0.45.0-beta.3
SigNoz:v0.44.0-disable_enrichment
SigNoz:v0.45.0-beta.2
SigNoz:v0.45.0-beta.1
SigNoz:v0.44.0-7d81bc34
SigNoz:v0.43.0-debug
SigNoz:v0.45.0-alpha.1
SigNoz:v0.44.0
SigNoz:v0.43.0-0760c216
SigNoz:v0.44.0-alpha.2
SigNoz:v0.43.0-gor
SigNoz:v0.43.1
SigNoz:v0.44.0-alpha.1
SigNoz:v0.43.0
SigNoz:v0.42.0-query-limits
SigNoz:v0.42.0-32e71b92
SigNoz:v0.42.0-d6cd15598
SigNoz:v0.42.0-19d4c3414
SigNoz:v0.42.0-31e71b92
SigNoz:v0.42.0-af353b934
SigNoz:v0.42.0-96e750592
SigNoz:v0.42.0-a7b0ef55
SigNoz:v0.42.0-30e71b92
SigNoz:v0.42.0-8c02f8e
SigNoz:v0.42.0-20e71b92
SigNoz:v0.42.3-debug
SigNoz:v0.42.2-debug
SigNoz:v0.42.1-debug
SigNoz:v0.42.0
SigNoz:v0.41.1-31b1d58a
SigNoz:v0.41.1-63f0ae1c7
SigNoz:v0.41.1-5e034ec9
SigNoz:v0.41.1
SigNoz:v0.41.0
SigNoz:v0.40.0-a4217659
SigNoz:v0.40.0-666916fae
SigNoz:v0.40.0-6618b471
SigNoz:v0.40.0-b3b75222
SigNoz:v0.40.0-3fece44ae
SigNoz:v0.40.0
SigNoz:v0.39.1-f9eddc9b1
SigNoz:v0.39.1
SigNoz:v0.38.2-88a8bc3ee
SigNoz:v0.39.0-548c53195
SigNoz:v0.39.0
SigNoz:v0.38.2-02f83e4b4
SigNoz:v0.38.2-ace1021a0
SigNoz:v0.38.2
SigNoz:v0.38.1
SigNoz:v0.38.0
SigNoz:v0.37.2
SigNoz:v0.37.1
SigNoz:v0.37.0
SigNoz:v0.36.2
SigNoz:v0.36.1
SigNoz:v0.36.0-263ac9fa5
SigNoz:v0.36.0
SigNoz:v0.36.0-rc.1
SigNoz:v0.35.1-75268888
SigNoz:v0.35.1-8e653f95
SigNoz:v0.35.1-a16fca63
SigNoz:v0.35.1
SigNoz:v0.35.0
SigNoz:v0.34.4-112783d6
SigNoz:v0.34.4-0b991331
SigNoz:v0.34.4
SigNoz:v0.34.3-d1acad8e
SigNoz:v0.34.3
SigNoz:v0.34.2
SigNoz:v0.34.1-d42bf50d
SigNoz:v0.34.1
SigNoz:v0.34.0-dc23368f
SigNoz:v0.34.0
SigNoz:v0.33.1-6b2f857a
SigNoz:v0.33.1-6-g050b8661
SigNoz:v0.33.1
SigNoz:v0.33.0
SigNoz:v0.32.1-3-gfc49833c
SigNoz:v0.32.1-5-gf427bac9
SigNoz:v0.32.1
SigNoz:v0.32.0
SigNoz:v0.31.1-8-gf7fe64a8
SigNoz:v0.31.1
SigNoz:v0.31.0
SigNoz:v0.30.0
SigNoz:v0.29.1-37-g91bcadf6
SigNoz:v0.29.3
SigNoz:v0.29.2
SigNoz:v0.29.1
SigNoz:v0.29.0
SigNoz:v0.28.0
SigNoz:v0.27.0
SigNoz:v0.26.1-896836b5
SigNoz:v0.26.1
SigNoz:v0.26.0
SigNoz:v0.25.5
SigNoz:v0.25.4
SigNoz:v0.25.3-ae3d4fec
SigNoz:v0.25.3
SigNoz:v0.25.2
SigNoz:v0.25.1
SigNoz:v0.25.0
SigNoz:v0.24.0
SigNoz:v0.23.1
SigNoz:v0.23.0
SigNoz:v0.23.0-rc.1
SigNoz:v0.22.0
SigNoz:v0.21.0-f90bf0263b
SigNoz:v0.21.0-b3da06d2
SigNoz:v0.21.0-cc07d654d
SigNoz:v0.21.0-a4c4d4
SigNoz:v0.21.0
SigNoz:v0.20.2-1f7e096b
SigNoz:v0.20.2
SigNoz:v0.20.1
SigNoz:v0.20.0
SigNoz:v0.19.0
SigNoz:v0.19.0-rc.3
SigNoz:v0.19.0-rc.2
SigNoz:v0.19.0-rc.1
SigNoz:v0.18.3
SigNoz:v0.18.2
SigNoz:v0.18.1
SigNoz:v0.18.0
SigNoz:v0.17.0
SigNoz:v0.16.2
SigNoz:v0.16.1
SigNoz:v0.16.0
SigNoz:v0.15.0
SigNoz:v0.15.0-rc.1
SigNoz:v0.14
SigNoz:v0.14.0
SigNoz:v0.13.0
SigNoz:v0.13.1
SigNoz:v0.13
SigNoz:v0.13.0-rc.2
SigNoz:v0.13.0-rc.1
SigNoz:v0.12.0
SigNoz:v0.12.0-rc.3
SigNoz:v0.11.4-istiotest
SigNoz:v0.12.0-rc.2
SigNoz:v0.12.0-rc.1
SigNoz:v0.11.4
SigNoz:v0.11
SigNoz:v0.11.4-rc.3
SigNoz:v0.11.4-rc.2
SigNoz:v0.11.4-rc.1
SigNoz:v0.11.3
SigNoz:v0.11.3-rc.1
SigNoz:v0.11.2
SigNoz:v0.11.2-rc.3
SigNoz:v0.11.2-rc.2
SigNoz:v0.11.2-rc.1
SigNoz:v0.11.1
SigNoz:v0.11.1-rc.1
SigNoz:v0.11.0
SigNoz:v0.11.0-rc.1
SigNoz:v0.10.2
SigNoz:v0.10
SigNoz:v0.10.1
SigNoz:v0.10.1-rc.1
SigNoz:v0.10.0
SigNoz:v0.10.0-rc2
SigNoz:v0.10.0-rc1
SigNoz:v0.9.2
SigNoz:v0.9.2-rc1
SigNoz:v0.9
SigNoz:v0.9.1
SigNoz:v0.9.0
SigNoz:v0.9.0-rc2
SigNoz:v0.9.0-rc1
SigNoz:v0.8
SigNoz:v0.8.2
SigNoz:v0.8.1
SigNoz:v0.8.1-rc5
SigNoz:v0.8.1-rc4
SigNoz:v0.8.1-rc3
SigNoz:v0.8.1-rc2
SigNoz:v0.8.1-rc1
SigNoz:v0.8.0
SigNoz:v0.8.0-rc6
SigNoz:v0.8.0-rc5
SigNoz:v0.8.0-rc4
SigNoz:v0.8.0-rc3
SigNoz:v0.8.0-rc2
SigNoz:v0.8.0-rc1
SigNoz:v0.7
SigNoz:v0.7.5-rc2
SigNoz:v0.7.5
SigNoz:v0.7.5-rc1
SigNoz:v0.7.4
SigNoz:v0.7.4-rc2
SigNoz:v0.7.4-rc1
SigNoz:v0.7.3
SigNoz:v0.7.2
SigNoz:v0.7.2-rc1
SigNoz:v0.7.1
SigNoz:v0.7.0
SigNoz:v0.6.2
SigNoz:v0.6.1
SigNoz:v0.6
SigNoz:v0.6.0
SigNoz:v0.5.4
SigNoz:v0.5.3
SigNoz:v0.5.2
SigNoz:v0.5.1
SigNoz:v0.5.0
SigNoz:v0.4.5
SigNoz:v0.4.4
SigNoz:v0.4.3
SigNoz:v0.4.2
SigNoz:v0.4.1
SigNoz:v0.4.0
SigNoz:v0.3.6
SigNoz:v0.3.5
SigNoz:0.3.5
SigNoz:v0.3.4
SigNoz:v0.3.3
SigNoz:v0.3.2
SigNoz:v0.3.1
SigNoz:0.2.2
SigNoz:v0.2.2
SigNoz:0.2.0
SigNoz:0.1.0
..
compare: SigNoz:refactor/authz-component-organization
SigNoz:feat/authz-devtools
SigNoz:refactor/authz-component-organization
SigNoz:infraM/kubernetes_container_monitoring
SigNoz:main
SigNoz:feat/llm-attr-mapping-mapper-drawer-4
SigNoz:feat/dashboards-v2-alert-variable-substitution
SigNoz:tvats-convert-not-found-to-warning
SigNoz:feat/llm-attr-mapping-group-drawer-3
SigNoz:feat/dashboards-v2-panel-view-mode
SigNoz:feat/panel-editor-v2-config-fixes
SigNoz:perf/ts-changes
SigNoz:feat/waterfall-vqa
SigNoz:feat/llm-attr-mapping-listing-2
SigNoz:infraM/pod_status_restart_counts
SigNoz:feat/llm-attr-mapping-foundation-1
SigNoz:fix/noz-context-propogation-empty-state
SigNoz:feat/noz-extra-thread
SigNoz:feat/quick-filters-use-field-api
SigNoz:feat/llm-pricing-ui-update-and-tests
SigNoz:nv/layout-validations
SigNoz:new-onboarding-datasources-29jun
SigNoz:fix/meter-explorer-use-stacked-chart
SigNoz:feat/traces-vqa
SigNoz:refactor/use-new-web-settings-flags
SigNoz:nv/v2-public-dashboard
SigNoz:fix/meter-explorer-use-stacked-chart-v1
SigNoz:issue-5388
SigNoz:feat/llm-pricing-unpriced-model1
SigNoz:nv/dashboard-create-aggregation
SigNoz:feat/llm-attr-mapping-tabbed-foundation
SigNoz:feat/infra-monitoring-api-v2
SigNoz:nv/dashboard-migration
SigNoz:feat/noz-error-handling
SigNoz:issue_5325
SigNoz:feat/code-ownner-update
SigNoz:refactor/fix-qb-serialization
SigNoz:feat/dashboards-v2-drilldown-context-links
SigNoz:feat/dashboards-v2-drilldown-breakout
SigNoz:feat/dashboards-v2-drilldown
SigNoz:tvats-bound-groupy-clause
SigNoz:feat/invite-members-v2
SigNoz:issue_5267
SigNoz:ns/ch-25-12
SigNoz:issue-5340
SigNoz:ns/scope
SigNoz:docs-sync/export-raw-data-offset-batch_20260624_120429
SigNoz:feat/revamp-roles-creation-v2
SigNoz:ns/json-trace-promoted
SigNoz:emdash/trace-json-ve9mb
SigNoz:feat/llm-attr-mapping-test
SigNoz:feat/llm-pricing-drawer-5
SigNoz:feat/panel-editor-v2-download-panel-image
SigNoz:dependabot/npm_and_yarn/frontend/dompurify-3.4.11
SigNoz:fix/update-stale-docs-links
SigNoz:dependabot/go_modules/github.com/openfga/openfga-1.18.0
SigNoz:feat/llm-attr-mapping-tests-5
SigNoz:feat/panel-editor-v2-clean
SigNoz:feat/test_endpoint_attributemapping
SigNoz:feat/llm-pricing-e2e-4
SigNoz:feat/llm-observability-model-pricing
SigNoz:emdash/trace-download-ijm6t
SigNoz:nv/functional-unique-index
SigNoz:feat/composite-query-url-serializer
SigNoz:dependabot/uv/tests/starlette-1.3.1
SigNoz:dependabot/uv/tests/cryptography-48.0.1
SigNoz:fix/ai-assistant-explorer-panel-type
SigNoz:reduce-motion-fix
SigNoz:feat/llm-olly-attribute-mapping
SigNoz:settings-e2e
SigNoz:feat/llm-observabilitiy-attribute-mapping
SigNoz:fts-logs
SigNoz:fix/query-context-operator-suggestion
SigNoz:e2e/alert_manager
SigNoz:feat/llm-observability
SigNoz:feat/llm-olly-model-pricing
SigNoz:chore/patch-audit-advisories-via-bump
SigNoz:downtime-ux
SigNoz:feat/forever-downtimes
SigNoz:feat/qb-dual-mode
SigNoz:dashboard-test/temp1
SigNoz:sentry-fixes
SigNoz:billing-page-layout-issue
SigNoz:nv/10890
SigNoz:issue_5326
SigNoz:issue_5324
SigNoz:revert-11609-ns/waterfall-v3-cleanup
SigNoz:feat/auth-config-openapi-spec
SigNoz:feature/dashboard-panel-v2
SigNoz:feat/traces-table-migration
SigNoz:refactor/alerts-modules-scss
SigNoz:feat/test-qb
SigNoz:pagination-migration
SigNoz:feat/dashboard-panel-editor-v2
SigNoz:issue_5123_2
SigNoz:squeeze-baby-squeeze
SigNoz:chore/add-adr
SigNoz:e2e/dashboard-create-flow
SigNoz:issue_5015
SigNoz:promooted-evolution
SigNoz:issue_5131_3
SigNoz:chore/update-deps
SigNoz:fix/frontend-changes-for-issue-4616
SigNoz:revert/input-migration-11401
SigNoz:fix/checkbox-issue
SigNoz:fts-3
SigNoz:fts-logs-2
SigNoz:refactor/cloud-integration-fe-changes
SigNoz:ns/flamegraph-memory-2-rebased
SigNoz:inline-logs
SigNoz:feat/add-ripple-effect
SigNoz:feat/react-search-query
SigNoz:feature/dashboard-details-temp-v2
SigNoz:chore/playwright-chromium-cache
SigNoz:e2e/table-list-value-panel
SigNoz:tushar-signoz-patch-1
SigNoz:refactor/cloudintegration-service-details-frontend
SigNoz:feat/overview-page
SigNoz:dependabot/npm_and_yarn/frontend/dompurify-3.4.3
SigNoz:tvats-improve-key-suggestions
SigNoz:mute-rules
SigNoz:feat/select-migration
SigNoz:ns/pie-chart
SigNoz:config-alt
SigNoz:ns/waterfall-v3-memory-4
SigNoz:feature/dashboard-details-temp
SigNoz:fix/ext-api-stepinterval
SigNoz:feature/dashboards-list-v2-total
SigNoz:chore/migrate-dropdown
SigNoz:fix/alert-management-rule-redirect
SigNoz:chore/migrate-inputNumber
SigNoz:ankitnayan-patch-1
SigNoz:chore/dashboard-menu-fixes
SigNoz:chore/button-migration
SigNoz:no-auth-mode-tests
SigNoz:chore/query-run-experience
SigNoz:traceop
SigNoz:tvats-dont-froce-multiif
SigNoz:e2e/histogram-pie-panel
SigNoz:e2e/timeseries-bar-panel
SigNoz:ns/fg-select-fields-optimize
SigNoz:ns/flamegraph-memory
SigNoz:role-sa-fga-followup
SigNoz:platform-pod/issues/706
SigNoz:dependabot/npm_and_yarn/frontend/uuid-14.0.0
SigNoz:ns/scope-unnormalised
SigNoz:chore/pin-all-dependencies
SigNoz:tvats-limit-filter-size
SigNoz:issue_4863
SigNoz:platform-pod/issues/1938
SigNoz:test/flaky-test-fight
SigNoz:nv/tags-for-dashboard-create
SigNoz:test/split-test-files
SigNoz:feat/add-signoz-icons
SigNoz:chore/replace-antd-icons-with-signoz-icons
SigNoz:dependabot/npm_and_yarn/frontend/follow-redirects-1.16.0
SigNoz:feat/service-map
SigNoz:ns/alert-disable
SigNoz:feat/dropdown-items
SigNoz:fix/multi-tooltip-pinning
SigNoz:test/golangci-action
SigNoz:fix/golang-cache
SigNoz:feat/billing
SigNoz:nv/delete-v2-dashboard
SigNoz:tvats-scalar-cache
SigNoz:tvats-fix-timeshift
SigNoz:fix/rule-v2alpha1-evaluation-symmetry
SigNoz:feat/overview-defaults
SigNoz:feat/vitest-migration-design
SigNoz:release/v0.121.2
SigNoz:test/body-json-field
SigNoz:issue_4361_final
SigNoz:feat/azure-integration-ui-2
SigNoz:feat/yarn-v4
SigNoz:ee-auditor/fileauditor
SigNoz:platform-pod/issues/1938-v2-users
SigNoz:platform-pod/issues/2036-authz-registry
SigNoz:fixes/drilldown-ui
SigNoz:chore/auto-update-lint
SigNoz:platform-pod/issues/2037-check
SigNoz:chore/refactor-coretypes
SigNoz:base-path-config-1
SigNoz:base-path-phase-4
SigNoz:tvats-validate-clickhouse-query
SigNoz:base-path-phase-3
SigNoz:base-path-phase-2
SigNoz:chore/user-dashboard-pref
SigNoz:ns/td-cache-remove
SigNoz:platform-pod/issues/2095-rule
SigNoz:refactor/migrate-logs-to-v5
SigNoz:ns/waterfall-v3-2-cache-removal
SigNoz:fix/metrics-run-query-16-cleanup-fetching-state
SigNoz:fix/metrics-run-query-15-auto-refresh-errors
SigNoz:fix/metrics-run-query-14-auto-refresh-dashboard
SigNoz:fix/metrics-run-query-13-auto-refresh-alerts
SigNoz:fix/metrics-run-query-12-auto-refresh-explorers
SigNoz:feat/filter-search
SigNoz:base-path-config
SigNoz:public-dir-cleanup
SigNoz:ns/td-cache
SigNoz:base-path-serving
SigNoz:dep/openfga
SigNoz:upgrade/collector@v0.144.3-rc.2
SigNoz:chore/am_e2e
SigNoz:feat/azure-integration-ui
SigNoz:feat/span-details
SigNoz:feat/test-trace-v3
SigNoz:issue_4501
SigNoz:asset-migration
SigNoz:feat/table-escape-char-support
SigNoz:feat/trace-v3-waterfall
SigNoz:feat/trace-v3-flamegraph
SigNoz:feat/trace-v3-api-layer
SigNoz:feat/trace-v3-shared-components
SigNoz:debug-wal
SigNoz:infraM/base_dependencies
SigNoz:fix/metrics-run-query
SigNoz:chore/notification_channel_migrations
SigNoz:nv/4310
SigNoz:nv/4310-2
SigNoz:tvats-4538
SigNoz:tvats-add-make-py-fmt-in-pre-commit-hook
SigNoz:tvats-alias-select-columns
SigNoz:fix/hosts-metrics
SigNoz:feat/migrate-nodes-to-single-component
SigNoz:dependabot/npm_and_yarn/frontend/lodash-es-4.18.1
SigNoz:members-nuqs-upgrade
SigNoz:user-roles-updates
SigNoz:ab/4172
SigNoz:dependabot/npm_and_yarn/frontend/handlebars-4.7.9
SigNoz:fix/hosts-list
SigNoz:cursor/kong-dashboard-issues-4f0e
SigNoz:fix/error-response-handler-null-4284-4286
SigNoz:fix/alert-filter
SigNoz:chore/refactor-eval
SigNoz:feat/v2-user-apis-tests
SigNoz:tvats-hide-trace-download-button
SigNoz:cursor/duplicate-react-keys-35b8
SigNoz:fix/select-label-tolowercase-4122
SigNoz:fix/promql-undefined-4285
SigNoz:fix/row-collapse-widgets-undefined-4283
SigNoz:fix/groupby-undefined-4282
SigNoz:fix/queryformulas-undefined-4280
SigNoz:fix/query-labels-not-iterable-4124
SigNoz:fix/logs-orderby-undefined-4123
SigNoz:bugfix/update-dashboard-time-on-made-public
SigNoz:feat/v2-user-apis
SigNoz:nv/6204
SigNoz:fix/query-builder-skip-when-nil
SigNoz:fix/issue-10674-query-expression-variables
SigNoz:refactor/cloud-integration-impl-store
SigNoz:feat/cloudintegration-module
SigNoz:fix/filter_suggestions
SigNoz:update-members-api
SigNoz:feat/trace-details-ux-1
SigNoz:poc-mock-telemetry-store
SigNoz:feat/trace-flamegraph-2
SigNoz:feat/fix-user-domain-models
SigNoz:feat/fix-user-types-structure
SigNoz:keep-message-contained-fix
SigNoz:feat/user-x-role
SigNoz:feat/trace-waterfall
SigNoz:chore/test-slack-notification-merge-queue-failure-2
SigNoz:fix/issue-4208/panel-type-change-plus-pie
SigNoz:debug_timepicker
SigNoz:json-qb-integration
SigNoz:chore/issue-3955-move-dashboard-provider
SigNoz:cursor/cloud-integration-nil-checks-b8be
SigNoz:platform-pod/issues/1830-claims
SigNoz:platform-pod/issues/1696-integrate
SigNoz:platform-pod/issues/1830
SigNoz:cursor/query-builder-condition-logic-6e00
SigNoz:cursor/span-label-text-colors-3035
SigNoz:feat/trace-flamegraph
SigNoz:feat/trace-details-v3
SigNoz:SIG_3554
SigNoz:cursor/query-builder-logic-and-tests-13c4
SigNoz:cursor/inconsistent-map-indentation-1a51
SigNoz:feat/infra_disk_usage
SigNoz:another-field
SigNoz:ns/poc-waterfall
SigNoz:cursor/timeline-and-flamegraph-issues-f686
SigNoz:SIG_8931_revert
SigNoz:issue/10108
SigNoz:like-op
SigNoz:SIG_3522
SigNoz:SIG_8931_fix
SigNoz:lp-filter-v5
SigNoz:feat/infraM_revamp_backend_p2
SigNoz:feat/authz-on-dashboards
SigNoz:feat/infraM_list_apis_request_time_check
SigNoz:light-mode-minor
SigNoz:testing-feature
SigNoz:ns/claude-setup
SigNoz:feat/infraM_revamp_backend_p1base
SigNoz:platform-pod/issues/1696-1
SigNoz:feat/disable_side_drawer_missing_identifiers
SigNoz:feat/improve_infra_monitoring_list_apis
SigNoz:feat/cloud-integrations-apis
SigNoz:nv/7069
SigNoz:chore/claude-service-setup
SigNoz:nitya/cloud-ref
SigNoz:feat/poc-flamegraph
SigNoz:ns/waterfall-zoom-on-wf
SigNoz:pipelinesv2
SigNoz:ns/waterfall-zoom
SigNoz:ns/unfurl-fe
SigNoz:fix/remove_decoding_url
SigNoz:claude/laughing-driscoll-large-trace
SigNoz:nv/10282
SigNoz:chore/build-optimizationss
SigNoz:fts-body
SigNoz:chore/cmd-click
SigNoz:platform-pod/issues/1725
SigNoz:remove-v4-support-rules
SigNoz:feat/azure-integration-ref
SigNoz:platform-pod/issues/528
SigNoz:fix/root-user-integration-tests
SigNoz:feat/cross-panel-sync
SigNoz:perses
SigNoz:remote-dot-metrics
SigNoz:test-generics
SigNoz:dependabot/npm_and_yarn/frontend/axios-1.13.5
SigNoz:dependabot/npm_and_yarn/frontend/lodash-es-4.17.23
SigNoz:dependabot/npm_and_yarn/frontend/webpack-5.104.1
SigNoz:feat/root-user
SigNoz:feat/sso-attributes-mapping-frontend
SigNoz:tavts-enable-seraching-events
SigNoz:show-ip-88664
SigNoz:fix/service-map-environment-filter-dot-metrics
SigNoz:multiple-tickets
SigNoz:chore/avoid_series_copy_on_threshold_eval
SigNoz:tvats-hot-fix-2
SigNoz:temp/local_clickhouse_setup
SigNoz:chore/issue-3778-variable-store-isolation
SigNoz:chore/add-shortcuts-container
SigNoz:merge-json-columns
SigNoz:feat/cmd-click
SigNoz:platform-pod/issues/1278
SigNoz:ns/ext-api-query
SigNoz:ns/devenv
SigNoz:temp/collector_version_upgrade_signoz_repo_changes
SigNoz:tvats-improve-alias-handling
SigNoz:issue-10008
SigNoz:fix/trace-details-span-popover
SigNoz:feat/services_use_span_metrics
SigNoz:feat/self-reset-password-frontend
SigNoz:dependabot/npm_and_yarn/frontend/node-forge-1.3.3
SigNoz:chore/postable_rule_more_validation
SigNoz:feat/rule_condition_validation
SigNoz:feat/gateway-apis-integration-2
SigNoz:SIG-3733
SigNoz:feat/gateway-apis-integration
SigNoz:chore/ignore-context-canceled-logs
SigNoz:chore/push-launch.json
SigNoz:refactor/composite_query_validation
SigNoz:fix/validate_alert_payload_before_saving
SigNoz:chore/issue-9924-2
SigNoz:chore/remove_eval_delay_from_safe_rules
SigNoz:feat/warnings_for_empty_data
SigNoz:fix/metadata_map_metric_check
SigNoz:SIG-3098
SigNoz:cache-tests-on-cumulative-counter
SigNoz:refactor/update-cloud-integration-version
SigNoz:fix/duplicate-column-options
SigNoz:fix/trace-funnels-escape-user-controlled-values
SigNoz:chore/sentry-event-qb
SigNoz:feat/log-detail-add-remove-columns
SigNoz:fix/no_common_type_error_metrics_filter
SigNoz:issue/8880
SigNoz:SIG-9860
SigNoz:fix/show-loading-while-trace-only-logs-request-is-in-progress
SigNoz:chore/remove_rule_source_and_id_from_channel_title
SigNoz:pr-9785
SigNoz:perf/log-view
SigNoz:SIG-9743
SigNoz:refactor/query-builder-delete-logic
SigNoz:platform-pod/issues/1401
SigNoz:perf/panel-rerender
SigNoz:dependabot/npm_and_yarn/frontend/express-4.22.1
SigNoz:dependabot/npm_and_yarn/frontend/js-yaml-3.14.2
SigNoz:feat/handle-duplicate-attributes
SigNoz:dependabot/npm_and_yarn/frontend/min-document-2.19.2
SigNoz:cursor/copy-local-storage-to-url-queries-gpt-5.1-codex-2624
SigNoz:platform-pod/issues/1386
SigNoz:SIG-9263
SigNoz:tvats-improve-error-msg
SigNoz:feat/export_and_pagination_for_query_table
SigNoz:enh/conver-query-rewrite
SigNoz:enh/dashboard-creation-flow
SigNoz:feat/queryfilterextractor_complex
SigNoz:tvats-handle-duplicate-columns
SigNoz:platform-pod/issues/1136/1
SigNoz:fix/pass_time_in_scope_builder_using_structs
SigNoz:SIG-5270
SigNoz:fix/metric_metadata_le_bucket
SigNoz:chore/filter-rules
SigNoz:snyk-fix-1089b0dc310672567c7b8654e5f0f797
SigNoz:fix/span-logs-trace-only-incorrect-empty-state
SigNoz:fix/external-apis-bugfixes-and-improvments
SigNoz:enhancement/cmd-click-stack
SigNoz:snyk-fix-36c4a2e58f5f8c5430abd8f06f9586fd
SigNoz:feat/deployment-markers
SigNoz:feat/add-actionables-to-span-fields
SigNoz:chore/vite-migration
SigNoz:feat/cmd-click-impl-updated-history
SigNoz:fix/traces-overall-improvements
SigNoz:release-0.97.1
SigNoz:feat/enable_exp_hist
SigNoz:tvats-custom-ttl-for-attributes
SigNoz:routing-policies-e2e
SigNoz:snyk-fix-0e66a6592422ccd0d016dfcad7c720df
SigNoz:snyk-fix-e189cf2c41ee3f2f0637cf05e9fabca1
SigNoz:playwright-setup
SigNoz:issue_3019
SigNoz:snyk-fix-9542d99ece647d414f60b012a4da2366
SigNoz:fix/fix-the-attributes-actionables-styles
SigNoz:chore/y-axis-dashboards-alerts
SigNoz:temp/check_@_symbol_as_parametervalue_start
SigNoz:issue-5676
SigNoz:chore/normal-index
SigNoz:thirdpartylistapifix
SigNoz:temp/study_queries
SigNoz:indirectDescOperatorImprovement
SigNoz:enhancement/cmd-click-across-routes
SigNoz:feat/span-list-tab-in-trace-details-v2
SigNoz:revert-9026-SIG-8115
SigNoz:dependabot/npm_and_yarn/frontend/axios-1.12.0
SigNoz:fix/traces-list-trace-view-next-prev-time-issue
SigNoz:SIG-2881
SigNoz:evaluation-window-popover
SigNoz:upgrade/clickhouse-go
SigNoz:snyk-fix-dfda954b712a03d550caa0f896c4b84d
SigNoz:SIG-2879
SigNoz:feat/cron-alert
SigNoz:feat/interactive-dashbaord-v2
SigNoz:feat/interactive-dashbaord-v3
SigNoz:feat/cross-filtering-2
SigNoz:demo/trace-operators
SigNoz:feat/cross-filtering-test
SigNoz:feat/cross-filtering
SigNoz:feat/static-sidebar-to-side-drawer-in-trace-details-v2
SigNoz:fix/clickhouse_version_upgrade_local
SigNoz:not-fix-expr
SigNoz:feat/session-recording
SigNoz:issue-8964
SigNoz:temporality-cache
SigNoz:improveTraceQuery
SigNoz:fix/alerts-qbv5
SigNoz:feat/custom-destinations
SigNoz:fix/non_zero_step_promql
SigNoz:demo-trace-operators
SigNoz:demo/trace_operators_backend
SigNoz:dyn-var-url-revert
SigNoz:SIG-5603-2
SigNoz:SIG-2023-var-1
SigNoz:var-url-format
SigNoz:variables-features
SigNoz:SIG-8704
SigNoz:imp/remove_nplus1_query_testing
SigNoz:imp/remove_nplus1_query
SigNoz:fix/extract-query-params
SigNoz:snyk-fix-05ae02136e944e496d83eedf877f6b45
SigNoz:chore/custom_dispatcher
SigNoz:fix/otel-collector-clickhouse-common-dev-network
SigNoz:feat/alert-multi-threshold
SigNoz:chore/requests-upgrade
SigNoz:limit-for-empty-key-search
SigNoz:feat/metering-ui
SigNoz:feat/drilldowns
SigNoz:feat/timestamp_aware_spans
SigNoz:feature/show-event-count-in-span-drawer
SigNoz:feat/drilldown-tables-v2
SigNoz:feat/ingestion-settings-e2e-tests
SigNoz:migration/react-router-dom
SigNoz:remove-stylus
SigNoz:dummy-test
SigNoz:chore/trace-funnels-tests
SigNoz:snyk-fix-d3e4693dcb50c2c0479fad12609c783a
SigNoz:snyk-fix-8f56167ea8ad689ec8351a1e4355b2ef
SigNoz:feat/drilldown-tables-v2-main
SigNoz:fix/quick-filters-query
SigNoz:snyk-fix-e37da51f00be42813460b6ea72743eca
SigNoz:snyk-fix-41273533b92c56f458ab759648a77cd0
SigNoz:fix/parenthesis-context
SigNoz:fix/query-context-with-spaces
SigNoz:fix/tracing-funnel-creation
SigNoz:feature/table-consumption-phase-1
SigNoz:chore/prometheus-v0.304.1
SigNoz:snyk-fix-030382efc240f2c1690bd90340fd81e9
SigNoz:SIG-5761
SigNoz:chore/tf/testing
SigNoz:fix/pagination-tests-fix
SigNoz:SIG-6421
SigNoz:feat/fixes-sprint5
SigNoz:fix/pat-role
SigNoz:variable-url-format
SigNoz:SIG-5603-1
SigNoz:SIG-2023-1
SigNoz:feat/qf-5
SigNoz:chore/timestamptz-non-null
SigNoz:feat/7294-services
SigNoz:tfbtest
SigNoz:tfbackend
SigNoz:fix/infra-monitoring/custom-time-range
SigNoz:feat/qf-2
SigNoz:fix-id-dashboards
SigNoz:react-router-update
SigNoz:dependabot/npm_and_yarn/frontend/http-proxy-middleware-3.0.5
SigNoz:remove-dead-code
SigNoz:feat/7274
SigNoz:feat/resource-filter-attr-v2
SigNoz:issue_7376
SigNoz:licensing
SigNoz:fix/prevent-the-layout-shift-in-query-builder
SigNoz:add-sapn-filter
SigNoz:kubecon-demo-2
SigNoz:kubecon-demo
SigNoz:feat/ha
SigNoz:signoz-tailwind-setup
SigNoz:snyk-fix-2c0716192269975cfac4296b058ca613
SigNoz:update-query
SigNoz:multiselect-component
SigNoz:feat/multi-tenancy
SigNoz:fix/opamp
SigNoz:onboarding-march-03
SigNoz:chore/ignore-license-error
SigNoz:release/0.76.0
SigNoz:fix-7233
SigNoz:alertmanager
SigNoz:snyk-fix-98a2b4eb555f6f78e7c1018ce58678b9
SigNoz:fix/handle-all-null-autocomplete-aggregateValues
SigNoz:SIG-6986
SigNoz:fix/install-no-sudo
SigNoz:fix/6175
SigNoz:6175
SigNoz:fix/range-picker-default-time
SigNoz:issue_406
SigNoz:chore/sentry-fixes
SigNoz:injection
SigNoz:config
SigNoz:pkg/config
SigNoz:feat/1196
SigNoz:snyk-fix-de6ff2437fe907956a0ab593cf6cb252
SigNoz:snyk-fix-563bd9c08e7da2ef4cdde74dd1ecc769
SigNoz:develop
SigNoz:release/v0.63.x
SigNoz:deprecate-v2-license
SigNoz:release/v0.62.x
SigNoz:snyk-fix-d189e25666bafbf4dbf075eb90f9ac07
SigNoz:release-sync/v0.61.x
SigNoz:release/v0.61.x
SigNoz:release/v0.60.x
SigNoz:release/v0.59.x
SigNoz:176/coalesce
SigNoz:release/v0.58.x
SigNoz:host-lists-improvement
SigNoz:anomaly-detection-target-default
SigNoz:sync/post-release-v0.57
SigNoz:issue_6307
SigNoz:snyk-fix-f9bd9b07e11673e8e8dbe74704f613fa
SigNoz:release/signoz-0.57.0
SigNoz:snyk-fix-475cb16aa1169412e86a28f40bb94889
SigNoz:release/v0.56.x
SigNoz:release/v0.55.x
SigNoz:release/v0.55.1
SigNoz:release/v0.54.x
SigNoz:release/v0.53.x
SigNoz:release/v0.52.x
SigNoz:release/v0.51.x
SigNoz:snyk-fix-1b34d8ba4ba6f717cec2c190535c57ce
SigNoz:snyk-fix-3c40ef7370e61bd5c87af93fc6b59d17
SigNoz:snyk-fix-e433c0c1dea4bb6bdec912a874dccac4
SigNoz:snyk-fix-811751f2b4e168eb58e10057181ba572
SigNoz:release/v0.50.x
SigNoz:release/v0.49.x
SigNoz:release/v0.48.x
SigNoz:release/v0.47.x
SigNoz:release/v0.46.x
SigNoz:release/v0.44
SigNoz:release/v0.43.x
SigNoz:release/v0.42.0
SigNoz:release/v0.41.1
SigNoz:release/v0.41.0
SigNoz:release/v0.40.0
SigNoz:release/v0.39.1
SigNoz:release/v0.39.0
SigNoz:release/v0.38.2
SigNoz:release/v0.38.0
SigNoz:fix/precheck-login
SigNoz:v0.132.0-rc.2
SigNoz:v0.132.0-rc.1
SigNoz:v0.131.0
SigNoz:v0.130.1
SigNoz:v0.130.0
SigNoz:v0.129.0
SigNoz:v0.128.0
SigNoz:v0.127.1
SigNoz:v0.127.0
SigNoz:v0.126.3-rc.1
SigNoz:v0.126.1
SigNoz:v0.126.0
SigNoz:v0.125.1
SigNoz:v0.125.0
SigNoz:v0.124.0
SigNoz:v0.123.0
SigNoz:v0.122.0
SigNoz:v0.121.1
SigNoz:v0.121.0
SigNoz:v0.120.0
SigNoz:v0.119.0
SigNoz:v0.118.0
SigNoz:v0.117.1
SigNoz:v0.117.0
SigNoz:v0.116.1
SigNoz:v0.116.0
SigNoz:v0.115.0
SigNoz:v0.114.1
SigNoz:v0.114.0
SigNoz:v0.113.0
SigNoz:v0.112.1
SigNoz:v0.113.0-rc.1
SigNoz:v0.112.0
SigNoz:v0.111.0
SigNoz:v0.110.2
SigNoz:v0.110.1
SigNoz:v0.110.0
SigNoz:v0.109.3
SigNoz:v0.109.2
SigNoz:v0.109.1
SigNoz:v0.109.0
SigNoz:v0.108.0
SigNoz:v0.108.0-rc.1
SigNoz:v0.107.0
SigNoz:v0.106.0
SigNoz:v0.105.1
SigNoz:v0.105.0
SigNoz:v0.104.0
SigNoz:v0.104.0-cloud.1
SigNoz:v0.103.1
SigNoz:v0.103.0
SigNoz:v0.102.1
SigNoz:v0.102.0
SigNoz:v0.101.0
SigNoz:v0.101.0-rc.1
SigNoz:v0.100.1
SigNoz:v0.100.0
SigNoz:v0.99.0
SigNoz:v0.98.0
SigNoz:v0.98.0-rc.1
SigNoz:v0.98.0-rc.0
SigNoz:v0.97.1
SigNoz:v0.97.0-515a1bda0
SigNoz:v0.97.0
SigNoz:v0.97.0-rc.3
SigNoz:v0.97.0-rc.2
SigNoz:v0.97.0-rc.1
SigNoz:v0.96.1
SigNoz:v0.96.0
SigNoz:v0.95.1-cloud.1
SigNoz:v0.95.1
SigNoz:v0.95.0
SigNoz:v0.94.1-cloud.1
SigNoz:v0.94.1
SigNoz:v0.94.0
SigNoz:v0.93.0-cloud.3
SigNoz:v0.93.0-cloud.2
SigNoz:v0.93.0-cloud.1
SigNoz:v0.93.0
SigNoz:v0.93.0-rc.3
SigNoz:v0.93.0-rc.2
SigNoz:v0.93.0-rc.1
SigNoz:v0.92.2
SigNoz:v0.92.1
SigNoz:v0.92.0
SigNoz:v0.91.1
SigNoz:v0.92.0-rc.5
SigNoz:v0.92.0-rc.4
SigNoz:v0.92.0-rc.3
SigNoz:v0.92.0-rc.2-gk1
SigNoz:v0.92.0-rc.2
SigNoz:v0.92.0-rc.1
SigNoz:v0.91.0-252658c
SigNoz:v0.91.0-dc4d515
SigNoz:v0.91.0-a8b6295
SigNoz:v0.92.0-cloud.1
SigNoz:v0.91.0-f1ab138
SigNoz:v0.91.0-f2c3a67
SigNoz:v0.91.0
SigNoz:v0.90.1-e0d6411
SigNoz:v0.90.1-e97c7d6
SigNoz:v0.90.1-3ef1e88
SigNoz:v0.90.1
SigNoz:v0.90.0
SigNoz:v0.89.0-9a406b8
SigNoz:v0.89.0
SigNoz:v0.88.1
SigNoz:v0.88.0
SigNoz:v0.88.0-rc.1
SigNoz:v0.89.0-cloud.1
SigNoz:v0.87.0-bb17b9d6c
SigNoz:v0.87.0-4ecc066
SigNoz:v0.87.0-54607d8
SigNoz:v0.87.0-41c3ceb10
SigNoz:v0.87.0-cffeff0
SigNoz:v0.87.0-af2534bbf
SigNoz:v0.88.0-cloud.3
SigNoz:v0.88.0-cloud.2
SigNoz:v0.87.0-e7f2408
SigNoz:v0.87.0-8d03e35d8
SigNoz:v0.88.0-cloud.1
SigNoz:v0.87.0-f267ed8ad
SigNoz:v0.87.0-b5a8309
SigNoz:v0.87.0-patch
SigNoz:v0.87.0-bda231637
SigNoz:v0.87.0
SigNoz:v0.87.0-rc.1
SigNoz:v0.86.2-6404e73
SigNoz:v0.86.2
SigNoz:v0.86.1
SigNoz:v0.86.0
SigNoz:v0.85.3
SigNoz:v0.85.2
SigNoz:v0.85.1
SigNoz:v0.85.0
SigNoz:v0.84.1
SigNoz:v0.84.0
SigNoz:v0.83.0
SigNoz:v0.83.0-cloud.1
SigNoz:v0.82.1
SigNoz:v0.82.0
SigNoz:v0.81.0-b9cd7ded
SigNoz:v0.81.0-cbedaa6e
SigNoz:v0.82.0-cloud.1
SigNoz:v0.81.0
SigNoz:v0.80.0-749532a0
SigNoz:v0.80.0-7b530d88
SigNoz:v0.80.0-4814a92
SigNoz:v0.80.0-523db11d
SigNoz:v0.80.0-53b98b0b
SigNoz:v0.80.0
SigNoz:v0.79.1
SigNoz:v0.80.0-cloud.1
SigNoz:v0.79.0
SigNoz:v0.78.2-json-parser-fix
SigNoz:v0.77.2-integrations-1
SigNoz:v0.77.2-integrations
SigNoz:v0.78.1
SigNoz:v0.79.0-431d46d0a
SigNoz:v0.79.0-963e35b55
SigNoz:v0.79.0-18b89242c
SigNoz:v0.79.0-32ece079f
SigNoz:v0.79.0-c396d2496
SigNoz:v0.78.0
SigNoz:v0.78.0-86f4f0d1d
SigNoz:v0.78.0-9759fceab
SigNoz:v0.78.0-c3d455b93
SigNoz:v0.78.0-3142b6cc6
SigNoz:v0.78.0-rc.9
SigNoz:v0.78.0-rc.8
SigNoz:v0.78.0-rc.7
SigNoz:v0.78.0-rc.6
SigNoz:v0.78.0-cloud.1
SigNoz:v0.78.0-4610afa99
SigNoz:v0.78.0-rc.5
SigNoz:v0.78.0-rc.4
SigNoz:v0.78.0-fe0f164e1
SigNoz:v0.78.0-rc.3
SigNoz:v0.76.2-e46c8bb1
SigNoz:v0.76.2-314d2560
SigNoz:v0.78.0-rc.2
SigNoz:v0.76.2-8049fa11
SigNoz:v0.78.0-rc.1
SigNoz:v0.77.0-5183d61c9
SigNoz:v0.77.0
SigNoz:v0.76.2-5cf417f4
SigNoz:v0.76.2-3c9e40a8
SigNoz:v0.77.0-6147f6e68
SigNoz:v0.76.2-b2b89885
SigNoz:v0.76.2-be44d660
SigNoz:v0.76.2-bf7a3181
SigNoz:v0.77.0-cloud.2
SigNoz:v0.76.2-ac7ecac2
SigNoz:v0.77.0-0fc12ddae
SigNoz:v0.77.0-740a290dc
SigNoz:v0.77.0-ecbe0b82d
SigNoz:v0.77.0-51ecd97b7
SigNoz:v0.76.2-24adfec5
SigNoz:v0.76.3-msk-integration-5
SigNoz:v0.76.3-msk-integration-4
SigNoz:v0.77.0-6a246332a
SigNoz:v0.77.0-cd0b9abd8
SigNoz:v0.77.0-e63d1b83b
SigNoz:v0.77.0-b2a7e7191
SigNoz:v0.77.0-7d89156af
SigNoz:v0.77.0-c86203e6b
SigNoz:v0.76.3-msk-integration-3
SigNoz:v0.77.0-820316d87
SigNoz:v0.76.3-msk-integration-2
SigNoz:v0.76.2
SigNoz:v0.76.3-msk-integration
SigNoz:v0.76.1
SigNoz:v0.76.0-f9b74b86
SigNoz:v0.76.0-cb04900a
SigNoz:tpapi-demo-internal-testing
SigNoz:v0.76.0-a13d1c89
SigNoz:0.76.0-a13d1c89
SigNoz:v0.77.0-5896e7c2d
SigNoz:v0.77.0-cloud.1
SigNoz:v0.76.0
SigNoz:v0.76.0-rc.5
SigNoz:v0.76.0-rc.3
SigNoz:v0.76.0-rc.1
SigNoz:v0.76.0-0e721dee1
SigNoz:feat/inproduct-homepage-v1
SigNoz:v0.76.0-8ca1f99d8
SigNoz:v0.76.0-cloud.4
SigNoz:v0.76.0-cloud.3
SigNoz:v0.76.0-cloud.2
SigNoz:v0.75.0-e1be10cd4
SigNoz:v0.75.0-47c4483f5
SigNoz:v0.75.0-2a4891fb8
SigNoz:v0.75.0-25657732b
SigNoz:v0.75.0-74edc942d
SigNoz:v0.75.0-6965f42f1
SigNoz:v0.75.0-35fe60dbb
SigNoz:v0.75.0-23b60b672
SigNoz:v0.76.0-cloud.1
SigNoz:v0.75.0-7d07d7a0b
SigNoz:v0.75.0-7082ea572
SigNoz:v0.75.0-730832cd4
SigNoz:v0.75.0-ed165f060
SigNoz:v0.75.0-42246eb89
SigNoz:v0.75.0-6ca7fa82b
SigNoz:v0.75.0-99ced1177
SigNoz:v0.75.0-9766ed21c
SigNoz:v0.75.0-763b4fffe
SigNoz:v0.75.0-c6e543416
SigNoz:v0.76.0-cache
SigNoz:v0.75.0-a64309701
SigNoz:v0.75.0-aws-integration-12eb23d4
SigNoz:v0.75.0-98eee6f7f
SigNoz:v0.75.0-bd3e0eeb6
SigNoz:v0.75.0-9d6e09d3f
SigNoz:v0.75.0-cccc25e2e
SigNoz:v0.75.0-9580da047
SigNoz:v0.75.0-8534b798c
SigNoz:v0.75.0-3bedd10ef
SigNoz:v0.75.0-b6f2ff052
SigNoz:v0.75.0-d02dc8687
SigNoz:v0.75.0-04835d14e
SigNoz:v0.75.0-aws-integration-107ba4a0
SigNoz:v0.75.0-aws-integration-c2cf1152
SigNoz:v0.75.0
SigNoz:v0.75.0-cloud.1
SigNoz:v0.75.0-pagination-be
SigNoz:v0.74.0
SigNoz:v0.74.0-aws-integration-4cc717d05
SigNoz:v0.74.0-cloud.1
SigNoz:v0.75.0-pagination
SigNoz:v0.74.0-2b4340a3e
SigNoz:v0.74.0-309ac976c
SigNoz:v0.73.0-407654e6
SigNoz:v0.73.0
SigNoz:v0.73.0-cloud.3
SigNoz:v0.73.0-cloud.2
SigNoz:v0.73.0-cloud.1
SigNoz:v0.72.0-aws-integration-a893b39
SigNoz:v0.72.0
SigNoz:v0.72.0-cloud.4
SigNoz:v0.72.0-onboarding-v3
SigNoz:v0.72.0-cloud.3
SigNoz:v0.72.0-cloud.2
SigNoz:v0.72.0-aws-integration-addafb9c3
SigNoz:v0.72.0-aws-integration-06b18e806
SigNoz:v0.72.0-cloud.1
SigNoz:v0.72.0-aws-integration-831514b83
SigNoz:v0.72.0-aws-integration-c3164912e
SigNoz:v0.72.0-onboarding-part-3-20fecc707
SigNoz:v0.71.0
SigNoz:v0.71.0-cloud.2
SigNoz:v0.71.0-42fe92cc8
SigNoz:v0.70.1
SigNoz:v0.71.0-cloud.1
SigNoz:v0.70.0
SigNoz:v0.71.0-pagination
SigNoz:v0.70.0-trace-detail-84268e049
SigNoz:v0.70.0-trace-detail-c1981969f
SigNoz:histogram-quantile/v0.0.1
SigNoz:v0.69.0-d3a8cf9ad
SigNoz:v0.70.0-trace-detail-5e26c6617
SigNoz:v0.70.0-trace-detail-7b5d663d6
SigNoz:v0.70.0-trace-detail-cc49c3958
SigNoz:v0.69.0
SigNoz:v0.69.0-cloud.2
SigNoz:v0.69.0-cloud.1
SigNoz:v0.68.0
SigNoz:v0.67.1
SigNoz:v0.67.0-6586-vars
SigNoz:v0.67.0-eb16d4bd6
SigNoz:v0.67.0
SigNoz:v0.67.0-custom-domain-15f85a645
SigNoz:v0.66.0-ea9bcc590
SigNoz:v0.66.0
SigNoz:v0.65.1
SigNoz:v0.66.0-trace-details-5370b8012
SigNoz:v0.66.0-trace-details-a45104493
SigNoz:v0.65.0
SigNoz:v0.65.0-cloud.7
SigNoz:v0.65.0-qf-005822ec4
SigNoz:v0.65.0-qf-0fca38a70
SigNoz:v0.65.0-qf-ea6694b44
SigNoz:v0.65.0-cloud.6
SigNoz:v0.65.0-cloud.5
SigNoz:v0.65.0-cloud.4
SigNoz:v0.65.0-cloud.3
SigNoz:v0.64.0-cbc83a0
SigNoz:v0.65.0-cloud.2
SigNoz:v0.64.0-7405bfbb
SigNoz:v0.65.0-cloud.1
SigNoz:v0.63.0-develop2
SigNoz:v0.64.0
SigNoz:v0.63.0-develop
SigNoz:v0.63.0
SigNoz:v0.63.0-frontend-arch-1c16916a1
SigNoz:v0.63.0-cloud.1
SigNoz:v0.63.0-frontend-arch-08c4bd0ff
SigNoz:v0.62.0
SigNoz:v0.62.0-cloud.3
SigNoz:v0.62.0-frontend-arch-6eeab69cc
SigNoz:v0.62.0-cloud.2
SigNoz:v0.61.0-214005e99
SigNoz:v0.62.0-cloud.1
SigNoz:v0.61.0
SigNoz:v0.61.0-debug-39566bfbe
SigNoz:v0.61.0-debug-1a7ea098a
SigNoz:v0.60.0-1934f74
SigNoz:v0.61.0-cloud.4
SigNoz:v0.61.0-cloud.3
SigNoz:v0.61.0-cloud.2
SigNoz:v0.61.0-cloud.1
SigNoz:v0.60.0
SigNoz:v0.60.0-cloud.5
SigNoz:v0.60.0-cloud.4
SigNoz:v0.60.0-cloud.3
SigNoz:v0.60.0-cloud.2
SigNoz:v0.60.0-cloud.1
SigNoz:v0.59.0-trace
SigNoz:v0.59.0
SigNoz:v0.59.2-licenses-57c232690
SigNoz:v0.59.1-licenses-a73a5931f
SigNoz:v0.58.2
SigNoz:v0.57.0-trace
SigNoz:v0.56.0-43e1fe686-trace
SigNoz:v0.58.1
SigNoz:v0.59.1-onboarding-part-3
SigNoz:v0.59.0-cloud.1
SigNoz:v0.58.0-licenses-e6cacced7
SigNoz:v0.58.0-git.946f30b08
SigNoz:v0.60.3-onboarding-part-3
SigNoz:v0.58.0
SigNoz:v0.56.0-trace-1
SigNoz:v0.58.0-licenses-bde7b85d1
SigNoz:v0.60.1-onboarding-part-3
SigNoz:v0.60.2-onboarding-part-3
SigNoz:v0.58.0-licenses-8b3d1f617
SigNoz:v0.58.0-cloud.2
SigNoz:v0.58.0-kafka-v2
SigNoz:v0.60.0-onboarding-part-3
SigNoz:v0.58.0-cloud.1
SigNoz:v0.57.0-cloud.5-d44d8c4ac
SigNoz:v0.59.0-onboarding-v2
SigNoz:v0.57.0-cloud.5-ff25ebf32
SigNoz:v0.58.2-onboarding-develop
SigNoz:v0.57.0-cloud.5-7759e67ee
SigNoz:v0.58.2-onboarding-23a57b0
SigNoz:v0.58.1-onboarding-10acef
SigNoz:v0.57.0
SigNoz:v0.58.0-onboarding-068f2097c
SigNoz:v0.57.0-cloud.5
SigNoz:v0.57.0-cloud.4
SigNoz:v0.57.0-cloud.3
SigNoz:v0.56.0-trace-2
SigNoz:v0.56.0-trace
SigNoz:v0.57.0-cloud.1.5b3839dca
SigNoz:v0.57.0-cloud.2
SigNoz:v0.57.0-cloud.1
SigNoz:v0.56.0
SigNoz:v0.56.0-cloud.3
SigNoz:v0.56.0-cloud.2
SigNoz:v0.56.0-cloud.1
SigNoz:v0.55.0
SigNoz:v0.55.0-cloud.10
SigNoz:v0.55.0-cloud.9
SigNoz:v0.55.0-cloud.8
SigNoz:v0.52.0-cloud.1.5d6ff4781
SigNoz:v0.55.0-cloud.7
SigNoz:v0.55.0-cloud.6
SigNoz:v0.55.0-cloud.5
SigNoz:v0.55.0-cloud.4
SigNoz:v0.55.0-cloud.3
SigNoz:v0.55.0-cloud.2
SigNoz:v0.55.0-cloud.1
SigNoz:v0.54.0
SigNoz:v0.54.0-cloud.5
SigNoz:v0.54.0-cloud.4
SigNoz:v0.54.0-cloud.3
SigNoz:v0.54.0-cloud.2
SigNoz:v0.54.0-cloud.1
SigNoz:v0.53.0
SigNoz:v0.53.0-cloud.4
SigNoz:v0.53.0-c2c8c716c
SigNoz:v0.53.0-alpha.2
SigNoz:v0.53.0-alpha.1
SigNoz:v0.53.0-cloud.3
SigNoz:v0.53.0-cloud.2
SigNoz:v0.50.0-logs-schema-t2-fe
SigNoz:v0.50.0-logs-schema-t2
SigNoz:v0.53.0-cloud.1
SigNoz:v0.53.0-cloud.0
SigNoz:v0.52.0-cloud.1.521b7c6
SigNoz:v0.52.0-cloud.8
SigNoz:v0.52.0-cloud.7
SigNoz:v0.52.0-cloud.6
SigNoz:v0.52.0
SigNoz:v0.52.0-cloud.5
SigNoz:v0.51.0-agg-tables
SigNoz:v0.52.0-cloud.4
SigNoz:v0.52.0-cloud.3
SigNoz:v0.50.0-logs-schema-t1-fe
SigNoz:v0.50.0-logs-schema-t1
SigNoz:v0.50.0-logs-schema
SigNoz:v0.52.0-cloud.2-5a9267d69
SigNoz:v0.52.0-cloud.2
SigNoz:v0.52.0-cloud.1
SigNoz:v0.51.0
SigNoz:v0.51.0-cloud.3
SigNoz:v0.51.0-cloud.2
SigNoz:v0.51.0-cloud.1
SigNoz:v0.50.0
SigNoz:v0.50.0-cloud.2
SigNoz:v0.50.0-cloud.1
SigNoz:v0.49.1
SigNoz:v0.49.0
SigNoz:v0.49.0-cloud.4
SigNoz:v0.49.0-cloud.3
SigNoz:v0.48.1
SigNoz:v0.49.0-cloud.2
SigNoz:v0.49.0-cloud.1
SigNoz:v0.48.0
SigNoz:v0.48.0-cloud.3
SigNoz:v0.48.0-cloud.2
SigNoz:v0.48.0-cloud.1
SigNoz:v0.48.0-beta.2
SigNoz:v0.48.0-beta.1
SigNoz:v0.47.0
SigNoz:v0.47.0-beta.5
SigNoz:v0.47.0-beta.4
SigNoz:v0.47.0-beta.3
SigNoz:v0.46.0-389f22cf6
SigNoz:v0.47.0-beta.2
SigNoz:v0.47.0-beta.1
SigNoz:v0.45.0-dashboard-revamp
SigNoz:v0.46.0-353881533
SigNoz:v0.46.0-1d86e5eb5
SigNoz:v0.46.0-1369fe191
SigNoz:v0.46.0-76b1e40cb
SigNoz:v0.46.0-a0c340f21
SigNoz:v0.46.0-0d043bf38
SigNoz:v0.46.0
SigNoz:v0.45.0-04a68ad4-debug
SigNoz:v0.45.0-a891dd4b
SigNoz:v0.45.0-12be6ce0
SigNoz:v0.45.0-9ff0e340
SigNoz:v0.45.0-c42f06b9-alerts-v4
SigNoz:v0.45.0-alert-v4-migrate
SigNoz:v0.45.0-7e31b4ca
SigNoz:v0.46.0-cloud.1
SigNoz:v0.45.0
SigNoz:v0.45.0-beta.3
SigNoz:v0.44.0-disable_enrichment
SigNoz:v0.45.0-beta.2
SigNoz:v0.45.0-beta.1
SigNoz:v0.44.0-7d81bc34
SigNoz:v0.43.0-debug
SigNoz:v0.45.0-alpha.1
SigNoz:v0.44.0
SigNoz:v0.43.0-0760c216
SigNoz:v0.44.0-alpha.2
SigNoz:v0.43.0-gor
SigNoz:v0.43.1
SigNoz:v0.44.0-alpha.1
SigNoz:v0.43.0
SigNoz:v0.42.0-query-limits
SigNoz:v0.42.0-32e71b92
SigNoz:v0.42.0-d6cd15598
SigNoz:v0.42.0-19d4c3414
SigNoz:v0.42.0-31e71b92
SigNoz:v0.42.0-af353b934
SigNoz:v0.42.0-96e750592
SigNoz:v0.42.0-a7b0ef55
SigNoz:v0.42.0-30e71b92
SigNoz:v0.42.0-8c02f8e
SigNoz:v0.42.0-20e71b92
SigNoz:v0.42.3-debug
SigNoz:v0.42.2-debug
SigNoz:v0.42.1-debug
SigNoz:v0.42.0
SigNoz:v0.41.1-31b1d58a
SigNoz:v0.41.1-63f0ae1c7
SigNoz:v0.41.1-5e034ec9
SigNoz:v0.41.1
SigNoz:v0.41.0
SigNoz:v0.40.0-a4217659
SigNoz:v0.40.0-666916fae
SigNoz:v0.40.0-6618b471
SigNoz:v0.40.0-b3b75222
SigNoz:v0.40.0-3fece44ae
SigNoz:v0.40.0
SigNoz:v0.39.1-f9eddc9b1
SigNoz:v0.39.1
SigNoz:v0.38.2-88a8bc3ee
SigNoz:v0.39.0-548c53195
SigNoz:v0.39.0
SigNoz:v0.38.2-02f83e4b4
SigNoz:v0.38.2-ace1021a0
SigNoz:v0.38.2
SigNoz:v0.38.1
SigNoz:v0.38.0
SigNoz:v0.37.2
SigNoz:v0.37.1
SigNoz:v0.37.0
SigNoz:v0.36.2
SigNoz:v0.36.1
SigNoz:v0.36.0-263ac9fa5
SigNoz:v0.36.0
SigNoz:v0.36.0-rc.1
SigNoz:v0.35.1-75268888
SigNoz:v0.35.1-8e653f95
SigNoz:v0.35.1-a16fca63
SigNoz:v0.35.1
SigNoz:v0.35.0
SigNoz:v0.34.4-112783d6
SigNoz:v0.34.4-0b991331
SigNoz:v0.34.4
SigNoz:v0.34.3-d1acad8e
SigNoz:v0.34.3
SigNoz:v0.34.2
SigNoz:v0.34.1-d42bf50d
SigNoz:v0.34.1
SigNoz:v0.34.0-dc23368f
SigNoz:v0.34.0
SigNoz:v0.33.1-6b2f857a
SigNoz:v0.33.1-6-g050b8661
SigNoz:v0.33.1
SigNoz:v0.33.0
SigNoz:v0.32.1-3-gfc49833c
SigNoz:v0.32.1-5-gf427bac9
SigNoz:v0.32.1
SigNoz:v0.32.0
SigNoz:v0.31.1-8-gf7fe64a8
SigNoz:v0.31.1
SigNoz:v0.31.0
SigNoz:v0.30.0
SigNoz:v0.29.1-37-g91bcadf6
SigNoz:v0.29.3
SigNoz:v0.29.2
SigNoz:v0.29.1
SigNoz:v0.29.0
SigNoz:v0.28.0
SigNoz:v0.27.0
SigNoz:v0.26.1-896836b5
SigNoz:v0.26.1
SigNoz:v0.26.0
SigNoz:v0.25.5
SigNoz:v0.25.4
SigNoz:v0.25.3-ae3d4fec
SigNoz:v0.25.3
SigNoz:v0.25.2
SigNoz:v0.25.1
SigNoz:v0.25.0
SigNoz:v0.24.0
SigNoz:v0.23.1
SigNoz:v0.23.0
SigNoz:v0.23.0-rc.1
SigNoz:v0.22.0
SigNoz:v0.21.0-f90bf0263b
SigNoz:v0.21.0-b3da06d2
SigNoz:v0.21.0-cc07d654d
SigNoz:v0.21.0-a4c4d4
SigNoz:v0.21.0
SigNoz:v0.20.2-1f7e096b
SigNoz:v0.20.2
SigNoz:v0.20.1
SigNoz:v0.20.0
SigNoz:v0.19.0
SigNoz:v0.19.0-rc.3
SigNoz:v0.19.0-rc.2
SigNoz:v0.19.0-rc.1
SigNoz:v0.18.3
SigNoz:v0.18.2
SigNoz:v0.18.1
SigNoz:v0.18.0
SigNoz:v0.17.0
SigNoz:v0.16.2
SigNoz:v0.16.1
SigNoz:v0.16.0
SigNoz:v0.15.0
SigNoz:v0.15.0-rc.1
SigNoz:v0.14
SigNoz:v0.14.0
SigNoz:v0.13.0
SigNoz:v0.13.1
SigNoz:v0.13
SigNoz:v0.13.0-rc.2
SigNoz:v0.13.0-rc.1
SigNoz:v0.12.0
SigNoz:v0.12.0-rc.3
SigNoz:v0.11.4-istiotest
SigNoz:v0.12.0-rc.2
SigNoz:v0.12.0-rc.1
SigNoz:v0.11.4
SigNoz:v0.11
SigNoz:v0.11.4-rc.3
SigNoz:v0.11.4-rc.2
SigNoz:v0.11.4-rc.1
SigNoz:v0.11.3
SigNoz:v0.11.3-rc.1
SigNoz:v0.11.2
SigNoz:v0.11.2-rc.3
SigNoz:v0.11.2-rc.2
SigNoz:v0.11.2-rc.1
SigNoz:v0.11.1
SigNoz:v0.11.1-rc.1
SigNoz:v0.11.0
SigNoz:v0.11.0-rc.1
SigNoz:v0.10.2
SigNoz:v0.10
SigNoz:v0.10.1
SigNoz:v0.10.1-rc.1
SigNoz:v0.10.0
SigNoz:v0.10.0-rc2
SigNoz:v0.10.0-rc1
SigNoz:v0.9.2
SigNoz:v0.9.2-rc1
SigNoz:v0.9
SigNoz:v0.9.1
SigNoz:v0.9.0
SigNoz:v0.9.0-rc2
SigNoz:v0.9.0-rc1
SigNoz:v0.8
SigNoz:v0.8.2
SigNoz:v0.8.1
SigNoz:v0.8.1-rc5
SigNoz:v0.8.1-rc4
SigNoz:v0.8.1-rc3
SigNoz:v0.8.1-rc2
SigNoz:v0.8.1-rc1
SigNoz:v0.8.0
SigNoz:v0.8.0-rc6
SigNoz:v0.8.0-rc5
SigNoz:v0.8.0-rc4
SigNoz:v0.8.0-rc3
SigNoz:v0.8.0-rc2
SigNoz:v0.8.0-rc1
SigNoz:v0.7
SigNoz:v0.7.5-rc2
SigNoz:v0.7.5
SigNoz:v0.7.5-rc1
SigNoz:v0.7.4
SigNoz:v0.7.4-rc2
SigNoz:v0.7.4-rc1
SigNoz:v0.7.3
SigNoz:v0.7.2
SigNoz:v0.7.2-rc1
SigNoz:v0.7.1
SigNoz:v0.7.0
SigNoz:v0.6.2
SigNoz:v0.6.1
SigNoz:v0.6
SigNoz:v0.6.0
SigNoz:v0.5.4
SigNoz:v0.5.3
SigNoz:v0.5.2
SigNoz:v0.5.1
SigNoz:v0.5.0
SigNoz:v0.4.5
SigNoz:v0.4.4
SigNoz:v0.4.3
SigNoz:v0.4.2
SigNoz:v0.4.1
SigNoz:v0.4.0
SigNoz:v0.3.6
SigNoz:v0.3.5
SigNoz:0.3.5
SigNoz:v0.3.4
SigNoz:v0.3.3
SigNoz:v0.3.2
SigNoz:v0.3.1
SigNoz:0.2.2
SigNoz:v0.2.2
SigNoz:0.2.0
SigNoz:0.1.0
2114 Commits
feat/multi
...
refactor/a
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
00f23273cf | chore(authz): move components/hooks to lib | ||
|
|
66f03d5912 |
fix(metrics): use local table for fingerprint ctes (#11931)
Some checks are pending
build-staging / prepare (push) Waiting to run
build-staging / js-build (push) Blocked by required conditions
build-staging / go-build (push) Blocked by required conditions
build-staging / staging (push) Blocked by required conditions
Release Drafter / update_release_draft (push) Waiting to run
* fix(metrics): use local table for fingerprint ctes * chore: remove queries file * chore: update reduced_test.go |
||
|
|
cf69a05f74 |
fix(dashboards): expose Source as a string enum in the OpenAPI schema (#11930)
The reflector saw Source's unexported valuer.String field and emitted type: object. Add a JSONSchema exposer that pins type: string, deriving the enum values from the existing Enum() method so the list of sources lives in exactly one place. |
||
|
|
1648fce5b1 |
chore(authz): delete the deprecated authz apis (#11924)
* chore(authz): delete the deprecated authz apis * test(authz): rework role integration tests onto the new CRUD APIs Migrate the role integration suite off the deprecated PATCH endpoints and onto the current declarative role CRUD APIs (Create/Get/List/Update/Delete with full transactionGroups). - role/01_register.py: verify managed roles via GetRole's transactionGroups against a golden matrix in testdata/role/managed_role_grants.json (no more DB tuple assertions). - role/02_crud.py (new): custom-role CRUD lifecycle, declarative update, validation (naming, invalid verb/type/kind/selector, duplicate, managed immutability, delete-with-assignee), and license gating. - role/03_fga.py: resource FGA allow/deny via declarative grant sets. - role/02_user.py: deleted; user role-membership is covered by the passwordauthn suite. - serviceaccount/06_fga.py: migrated to declarative grant PUTs. - fixtures/role.py: pure data helpers + find_role_id fixture; tests make their HTTP calls directly. * test(authz): scope role/SA FGA tests to fine-grained selectors - role FGA: grant read/update/delete on a specific role name (not "*") and assert allowed-on-granted vs forbidden-on-other; create is collection-scoped; list on "*" returns every role. - serviceaccount FGA: grant on a specific SA id (with a second SA to prove cross-instance denial); dual attach/detach scoped to SA id + role name. - add create_role fixture (alongside find_role_id) for happy-path role creation; validation/failure cases stay inline. - underscore-prefix file-local constants in both FGA modules. * test(authz): rename grants terminology to transactions in role tests |
||
|
|
f93a70884a |
feat(dashboards-v2): create alerts from a dashboard panel (#11879)
* feat(dashboards-v2): create alerts from a dashboard panel Wire the panel actions menu's "Create Alerts" item to seed a new alert from the panel's query. `buildCreateAlertUrl` translates the panel's V5 queries into the V1 compositeQuery the alert page reads (tagged with the panel type, v5 version and a dashboards source), and `useCreateAlertFromPanel` opens /alerts/new in a new tab and logs the action. Available regardless of edit access (V1 parity: create-alert works on locked dashboards too). To reach the query, the full panel is threaded through Panel -> PanelHeader -> PanelActionsMenu -> usePanelActionItems instead of just its kind; the header now derives its name/description from the panel as well. * feat(dashboards-v2): add a Create alert rule action to the panel editor Add an "Actions" group at the foot of the editor config pane — a list of cross-page navigation links kept distinct from the collapsible config sections above. The first action, "Create alert", reuses useCreateAlertFromPanel to seed an alert from the draft query; the group hides for kinds that can't seed an alert and scales to more actions. ConfigPane now derives the panel kind from its spec and takes the draft panel + panelId so the group can build the link. * refactor(dashboards-v2): address review feedback on panel create-alert - buildCreateAlertUrl: drop redundant `?? []` (spec.queries is a required array) - buildCreateAlertUrl: extract FormattablePluginSpec type for the formatting cast - usePanelActionItems: rename kindActions -> panelCapabilities (its type is PanelActionCapabilities; avoids the clash with the panelActions prop) - useCreateAlerts (V1): mark @deprecated pointing at the V2 create-alert path * chore: pr review changes |
||
|
|
e1c586e0dc |
chore(metrics): review follow ups for volume control (#11887)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore(metrics): review follow ups for volume control * chore: the reduced metrics show up in summary page * chore: 1h; 6h window changes * chore: address some gaps * chore: asset warning gap * chore: address lint * chore: regenerate api |
||
|
|
984b2d0138 |
fix(authz): drop the organization grant tuples (#11922)
* fix(authz): stop seeding organization role tuples and remove existing ones
Fetching the signoz-admin role via GET /api/v1/roles/{id} panicked with
"invalid input format: organization:organization/*". Organization objects
use a 2-part id (organization:organization/<selector>) that
MustNewObjectFromString cannot parse, unlike the 4-part format every other
resource emits.
The signoz-admin managed role granted read/update on the organization
resource, so those tuples were read back and crashed the parser. These
grants are dead weight: org routes are gated by admin role membership, not
by the organization object.
Remove the organization transactions from the signoz-admin seed and add
migration 098 to delete existing organization tuples and changelog rows.
* fix(authz): parse organization object string in MustNewObjectFromString
The organization resource is the root entity and encodes its object as
"organization:organization/<selector>", without the orgID and kind
segments every other resource uses. The 4-part parser panicked with
"invalid input format" when it encountered this shape.
Detect the type first, then handle the organization 2-part format
explicitly, mirroring resourceOrganization.Object(). All other resources
keep the existing 4-part path. This makes listing a role's permissions
robust to organization tuples regardless of how they were created.
|
||
|
|
3ea62d3d50 |
feat(dashboard-v2): link variables to panels and substitute them into panel queries (#11909)
* feat(dashboard-v2): build V5 variables payload from selection
Add buildVariablesPayload, a pure builder mapping a dashboard's variable
definitions + runtime selection into the V5 query-range `variables` map
({ name: { type, value } }). Mirrors V1 getDashboardVariables: maps the
QUERY/CUSTOM/TEXT/DYNAMIC UI types to wire types, collapses a multi-select
dynamic ALL to the __all__ sentinel, falls back to configured defaults, and
omits empties. buildQueryRangeRequest now accepts a `variables` arg (defaults
to {}) instead of hardcoding an empty map.
* feat(dashboard-v2): add resolvedVariables store channel
Add a transient (non-persisted) resolvedVariables map to the variable-selection
slice, keyed by dashboardId, with a setResolvedVariables setter and a
selectResolvedVariables selector. This is the published-to-store channel the
panel query reads from, mirroring the edit-context publish pattern so the
dashboard spec is not threaded down the panel tree.
* feat(dashboard-v2): substitute variable selection into panel queries
Add useResolvedVariables, which derives the variable definitions from the spec,
reads the runtime selection from the store, builds the V5 payload, and publishes
it via setResolvedVariables. DashboardContainer calls it once. usePanelQuery
reads selectResolvedVariables(dashboardId) and threads it into the request and
the query key, so each panel (and the editor preview) substitutes the bar's
selected values and refetches when a selection changes.
|
||
|
|
9317a26337 |
feat(llm-pricing): search + source filter (4/5) (#11808)
* feat(llm-pricing): add model pricing foundation (route, permission, page shell) * feat(llm-pricing): add listing page and table * chore(llm-pricing): drop search + source filters from list request The list API does not honour the q (search) and source params yet, so the controls did nothing. Remove the search input and source dropdown along with the params we sent, and trim useModelPricingFilters to the URL-backed page state that pagination still needs. Currency dropdown, tabs, table and pagination are unchanged. Filters will return once the backend supports them. * refactor(llm-pricing): extract getRelativeTime helper in utils Pull the relative-time formatting out of getRelativeLastSeen into a small local getRelativeTime helper. Kept feature-local (not in the shared utils/timeUtils) so the LLM pricing module owns its own dayjs config; the local relativeTime extend stays for test self-sufficiency. * refactor(llm-pricing): drop dead NaN guard in formatPricePerMillion Pricing fields are typed as required numbers and JSON can't carry NaN, so Number.isNaN was unreachable. Keep the null/undefined guard as API defensiveness (toFixed on a missing value would crash the row). Also trims the now-redundant dayjs.extend comment. * refactor(llm-pricing): centralize constants and shared types Extract PAGE_SIZE, PAGE_KEY, COLUMN_COUNT and CURRENCY_OPTIONS into a new constants.ts, and move the ModelPricingFilters contract into types.ts. Component prop interfaces stay colocated with their components, matching the convention in the drawer PR. * refactor(llm-pricing): use nuqs for list pagination URL state Replace the hand-rolled useHistory + URLSearchParams plumbing in useModelPricingFilters with nuqs useQueryState, matching the convention used by the dashboards, alerts and k8s list pages. Behaviour is unchanged: parseAsInteger.withDefault(1) keeps ?page=1 out of the URL and history:'replace' avoids polluting the back-stack. * refactor(llm-pricing): inline pagination, drop useModelPricingFilters The hook had shrunk to a one-line nuqs wrapper after search/source were removed, so inline the useQueryState call into the container and remove the hook file plus the now-unused ModelPricingFilters type. When the filters return (once the API honours them) they can move back into a dedicated hook. * feat(llm-pricing): disable currency selector (USD-only for now) Only USD is priced today, so render the currency SelectSimple in a disabled state pinned to USD. A disabled select can't fire onChange, so the currency useState is dead — drop it (and the now-unused useState import). * refactor(llm-pricing): render model costs inside its tab + tab URL param The listing was rendered outside the Tabs, so the tab was decorative. Move all model-cost content (currency control, list query, table, pagination, footer) into a ModelCostsTab component rendered as the 'Model costs' tab's children, and drive the active tab from a 'tab' URL query param (nuqs). The container is now just the page shell. Unpriced models stays a disabled placeholder for a later PR. * style(llm-pricing): target @signozhq table slots, drop dead antd/leftover rules The component uses @signozhq/ui Table/Tabs (Radix-based), not antd, so the .ant-table-* and .ant-tabs-nav selectors never matched — the intended uppercase/muted header styling wasn't applied. Retarget header/cell rules to [data-slot='table-head'|'table-cell'] (no !important needed). Also remove dead rules left over from the removed search/source/add UI (.filters-bar__search, __source, __add, .page-header__actions) and the unused .source-badge--auto/ --override modifiers. * fix(llm-pricing): constrain currency dropdown width, drop tab URL param - Currency SelectSimple stretched to fill the filters bar; give it a fixed 160px width (min-width couldn't cap the trigger). - Model costs is the only enabled tab for now, so use Tabs defaultValue instead of a URL-backed param. Removes the nuqs tab state plus the now-unused TAB_KEYS/TAB_QUERY_KEY constants and TabKey type. * chore: self review changes * fix: add skeleton loading * refactor: self review changes * refactor: initial prop * fix: update styling * fix: add comments in utils * feat(llm-pricing): add model cost drawer and wire into listing page * fix(llm-pricing): restrict pricing management to admins Align the frontend write gate with the backend, which protects the LLM pricing create/update/delete endpoints with AdminAccess (admin only). Previously manage_llm_pricing allowed EDITOR/AUTHOR, so those roles saw the Add/Save affordances but their writes were rejected with a 403. Also removes the AUTHOR entry, which could never reach the page (the route gate excludes it). * fix(llm-pricing): read-only drawer shows View title, hides source picker Non-managers open the drawer in view mode (write APIs are Admin-only), so: - the heading reads "View model cost" instead of "Edit model cost" - the Source (auto vs. override) picker is hidden, since switching source is a manager-only action with nothing actionable for a viewer. * refactor: form in edit / add modal * chore: update color tokens * fix: add error handling * chore: update more self review changes * chore: self review changes * chore: self review changes * fix: minor grammer thing * fix: route thing * refactor: migrate to css moduel * refactor: migrate to css module * refactor: migrate to css module * refactor: migrate to tanstack table * docs: clarify price precision comment * chore: remove comment * chore: remove comment * fix: disable isDirty in case of llm pricing * refactor: number * feat: add search , dropdown and flag * feat: feature flag on entire route and add mode costs tabs * fix: add isFetchingFeatureFlags * chore: update flag * refactor: shell * fix: add key to route * feat: add flags * chore: additional refactor * chore: add commet in utis * chore: self review changes * refactor: types and other things * refactor: types and other things * chore: add disable on source id * empty commit * chore: empty commit * fix: add demo side nav on sidenav * chore: remove demo side nav * refactor: update routes * chore: remove usd selector for now * fix: layout shift * refactor: styles * refactor: typography component * refactor: more changes * refactor: typograhy * refactor(llm-pricing): break model-cost drawer into per-component files + tokens Apply the CSS-module/component conventions to the drawer that came from drawer-3: - Move the drawer under ModelCostTabPanel/components/ModelCostDrawer/ to mirror the ModelCostsTable structure - Split the single 395-LOC ModelCostDrawer.module.scss into per-component co-located modules; cross-component selectors live in shared.module.scss and are pulled in via CSS-modules `composes` - shared.module.scss is a composes target (parsed as plain CSS), so it is kept flat with block comments — no SCSS nesting or // comments - Use --text-vanilla-* (not --bg-vanilla-*) for text colors, matching the listing code * refactor: more changes * refactor: styling and components * refactor: styling and components * chore: add a tooltip on hover * feat: add delete confirm modal * fix: update title * refactor: css variables * refactor: use signoz button and minor css update * chore: sync table * chore: remove extra comment * chore: use typograpgy test in table config * fix: minior issues * fix: llm pricing listing * refactor: remove extra classes * refactor: side nav changes * fix: update missing styles * chore: update edit and delete options * chore: remove extra comment * chore: revert env changes * chore: add enable check * chore: remove divider * refactor: use delete confirm dialog * chore: remove scss file --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
fde817d83c |
feat(llm-pricing): model cost add/edit drawer (3/5) (#11761)
* feat(llm-pricing): add model pricing foundation (route, permission, page shell) * feat(llm-pricing): add listing page and table * chore(llm-pricing): drop search + source filters from list request The list API does not honour the q (search) and source params yet, so the controls did nothing. Remove the search input and source dropdown along with the params we sent, and trim useModelPricingFilters to the URL-backed page state that pagination still needs. Currency dropdown, tabs, table and pagination are unchanged. Filters will return once the backend supports them. * refactor(llm-pricing): extract getRelativeTime helper in utils Pull the relative-time formatting out of getRelativeLastSeen into a small local getRelativeTime helper. Kept feature-local (not in the shared utils/timeUtils) so the LLM pricing module owns its own dayjs config; the local relativeTime extend stays for test self-sufficiency. * refactor(llm-pricing): drop dead NaN guard in formatPricePerMillion Pricing fields are typed as required numbers and JSON can't carry NaN, so Number.isNaN was unreachable. Keep the null/undefined guard as API defensiveness (toFixed on a missing value would crash the row). Also trims the now-redundant dayjs.extend comment. * refactor(llm-pricing): centralize constants and shared types Extract PAGE_SIZE, PAGE_KEY, COLUMN_COUNT and CURRENCY_OPTIONS into a new constants.ts, and move the ModelPricingFilters contract into types.ts. Component prop interfaces stay colocated with their components, matching the convention in the drawer PR. * refactor(llm-pricing): use nuqs for list pagination URL state Replace the hand-rolled useHistory + URLSearchParams plumbing in useModelPricingFilters with nuqs useQueryState, matching the convention used by the dashboards, alerts and k8s list pages. Behaviour is unchanged: parseAsInteger.withDefault(1) keeps ?page=1 out of the URL and history:'replace' avoids polluting the back-stack. * refactor(llm-pricing): inline pagination, drop useModelPricingFilters The hook had shrunk to a one-line nuqs wrapper after search/source were removed, so inline the useQueryState call into the container and remove the hook file plus the now-unused ModelPricingFilters type. When the filters return (once the API honours them) they can move back into a dedicated hook. * feat(llm-pricing): disable currency selector (USD-only for now) Only USD is priced today, so render the currency SelectSimple in a disabled state pinned to USD. A disabled select can't fire onChange, so the currency useState is dead — drop it (and the now-unused useState import). * refactor(llm-pricing): render model costs inside its tab + tab URL param The listing was rendered outside the Tabs, so the tab was decorative. Move all model-cost content (currency control, list query, table, pagination, footer) into a ModelCostsTab component rendered as the 'Model costs' tab's children, and drive the active tab from a 'tab' URL query param (nuqs). The container is now just the page shell. Unpriced models stays a disabled placeholder for a later PR. * style(llm-pricing): target @signozhq table slots, drop dead antd/leftover rules The component uses @signozhq/ui Table/Tabs (Radix-based), not antd, so the .ant-table-* and .ant-tabs-nav selectors never matched — the intended uppercase/muted header styling wasn't applied. Retarget header/cell rules to [data-slot='table-head'|'table-cell'] (no !important needed). Also remove dead rules left over from the removed search/source/add UI (.filters-bar__search, __source, __add, .page-header__actions) and the unused .source-badge--auto/ --override modifiers. * fix(llm-pricing): constrain currency dropdown width, drop tab URL param - Currency SelectSimple stretched to fill the filters bar; give it a fixed 160px width (min-width couldn't cap the trigger). - Model costs is the only enabled tab for now, so use Tabs defaultValue instead of a URL-backed param. Removes the nuqs tab state plus the now-unused TAB_KEYS/TAB_QUERY_KEY constants and TabKey type. * chore: self review changes * fix: add skeleton loading * refactor: self review changes * refactor: initial prop * fix: update styling * fix: add comments in utils * feat(llm-pricing): add model cost drawer and wire into listing page * fix(llm-pricing): restrict pricing management to admins Align the frontend write gate with the backend, which protects the LLM pricing create/update/delete endpoints with AdminAccess (admin only). Previously manage_llm_pricing allowed EDITOR/AUTHOR, so those roles saw the Add/Save affordances but their writes were rejected with a 403. Also removes the AUTHOR entry, which could never reach the page (the route gate excludes it). * fix(llm-pricing): read-only drawer shows View title, hides source picker Non-managers open the drawer in view mode (write APIs are Admin-only), so: - the heading reads "View model cost" instead of "Edit model cost" - the Source (auto vs. override) picker is hidden, since switching source is a manager-only action with nothing actionable for a viewer. * refactor: form in edit / add modal * chore: update color tokens * fix: add error handling * chore: update more self review changes * chore: self review changes * chore: self review changes * fix: minor grammer thing * fix: route thing * refactor: migrate to css moduel * refactor: migrate to css module * refactor: migrate to css module * refactor: migrate to tanstack table * docs: clarify price precision comment * chore: remove comment * chore: remove comment * fix: disable isDirty in case of llm pricing * refactor: number * refactor: shell * fix: add key to route * feat: add flags * chore: additional refactor * chore: add commet in utis * chore: self review changes * refactor: types and other things * refactor: types and other things * chore: add disable on source id * refactor: update routes * chore: remove usd selector for now * fix: layout shift * refactor: styles * refactor: typography component * refactor: more changes * refactor: typograhy * refactor(llm-pricing): break model-cost drawer into per-component files + tokens Apply the CSS-module/component conventions to the drawer that came from drawer-3: - Move the drawer under ModelCostTabPanel/components/ModelCostDrawer/ to mirror the ModelCostsTable structure - Split the single 395-LOC ModelCostDrawer.module.scss into per-component co-located modules; cross-component selectors live in shared.module.scss and are pulled in via CSS-modules `composes` - shared.module.scss is a composes target (parsed as plain CSS), so it is kept flat with block comments — no SCSS nesting or // comments - Use --text-vanilla-* (not --bg-vanilla-*) for text colors, matching the listing code * refactor: more changes * refactor: styling and components * refactor: styling and components * chore: add a tooltip on hover * feat: add delete confirm modal * fix: update title * chore: sync table * chore: remove extra comment * chore: use typograpgy test in table config * fix: minior issues * fix: llm pricing listing * refactor: remove extra classes * fix: update missing styles * chore: update edit and delete options * chore: remove extra comment * chore: revert env changes * chore: remove divider * refactor: use delete confirm dialog * chore: remove scss file --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
13812fac62 |
fix(dashboard): pie panel collapses multi-column ClickHouse query to a single slice (#11919)
* fix(dashboard): pie panel collapses multi-column clickhouse scalar to one slice A pie panel backed by a ClickHouse query with several aggregations (e.g. `count() AS col1, sum() AS col2`) rendered a single slice labelled with the query name and only the first value column's value; the other value columns were silently dropped. Root cause: the scalar response carries every value column in the scalar table, but PiePanelWrapper read the legacy `data.result` time-series field instead. For a scalar that field collapses to a single series that keeps only the first value column, so the pie never saw the rest. This is the pie counterpart of the table collapse fixed in #11794. Fix: when the scalar table has more than one value column, build pie slices from the scalar table under `newResult` (the same source the table and value panels already use) — one slice per value column, group-by columns become the label. Single-aggregation and grouped pies keep the existing series path unchanged. Frontend-only, V1. * fix: formatter datetime --------- Co-authored-by: Ashwin Bhatkal <ashwin96@gmail.com> |
||
|
|
df77b8d125 |
fix(settings): ensure scroll on tiny screens (#11916)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
028ac27496 |
feat: adding cloud integration API changes for GCP (#11892)
* feat: adding cloud integration API changes for GCP * chore: generating openapi specs * fix: integration tests * ci: fixing golang ci lint |
||
|
|
8b56f39261 | refactor(getting-started): use new invite members component (#11874) | ||
|
|
2be1063602 |
feat: QB support for QueryRangePreview (#11185)
* fix: added dry run api * fix: set nullable for api response fields * fix: missed adding one file * fix: comment lint * fix: finding 1 * fix: moved methods to telemetrystore * fix: move interface to telemetrystore * fix: remove wrong flow of imports * fix: generate openapi * fix: move explain methods to clickhousetelemetrystore |
||
|
|
6546602242 |
refactor(members-page): use new invite members component (#11873)
* refactor(members-page): use new invite members component * chore(invite-members): move to be under member settings |
||
|
|
ba49b28c5a | refactor(onboarding-questionaire): use new invite members component (#11875) | ||
|
|
adc3909b71 | feat(sso-configuration): change roles selector to allow custom roles (#11894) | ||
|
|
e00f47c812 |
feat(web): add sentry, posthog, appcues and pylon settings to web config (#11912)
* feat(web): move sentry dsn and tunnel to runtime web settings Move the Sentry dsn and tunnel out of build-time Vite injection into the web.settings config so they are configurable per deployment at runtime via SIGNOZ_WEB_SETTINGS_SENTRY_DSN and SIGNOZ_WEB_SETTINGS_SENTRY_TUNNEL. The backend injects them into index.html and the frontend reads them from window.signozBootData.settings; environment and release stay build-time. * feat(web): move posthog key, api_host and ui_host to runtime web settings Move the PostHog project key, api_host and ui_host out of build-time Vite injection into the web.settings config so they are configurable per deployment at runtime via SIGNOZ_WEB_SETTINGS_POSTHOG_KEY, SIGNOZ_WEB_SETTINGS_POSTHOG_API__HOST and SIGNOZ_WEB_SETTINGS_POSTHOG_UI__HOST. The backend injects them into index.html and the frontend reads them from window.signozBootData.settings; api_host falls back to https://us.i.posthog.com when unset. * feat(web): move appcues app id to runtime web settings Move the Appcues app id out of build-time Vite injection into the web.settings config so it is configurable per deployment at runtime via SIGNOZ_WEB_SETTINGS_APPCUES_APP__ID. The backend injects it into index.html and the Appcues loader reads it from window.signozBootData.settings. * feat(web): move pylon app id and identity secret to runtime web settings Move the Pylon app id and identity secret out of build-time Vite injection into the web.settings config so they are configurable per deployment at runtime via SIGNOZ_WEB_SETTINGS_PYLON_APP__ID and SIGNOZ_WEB_SETTINGS_PYLON_IDENTITY__SECRET. The backend injects them into index.html and the frontend reads them from window.signozBootData.settings. This was the last build-time integration value, so the now-unused createHtmlPlugin is removed. * chore(web): remove unused TUNNEL_DOMAIN VITE_TUNNEL_DOMAIN / process.env.TUNNEL_DOMAIN was only referenced by frontend/src/setupProxy.js, a dead Create-React-App artifact that Vite never loads. Remove the vite define, the type declaration, the dead setupProxy.js file, and the CI steps that wrote VITE_TUNNEL_DOMAIN to .env. * chore(ci): drop build-time VITE_ vars now served at runtime Sentry dsn/tunnel, posthog key, appcues app id, and pylon app id / identity secret are now configured at runtime via SIGNOZ_WEB_SETTINGS_* and no longer baked into the bundle, so the CI steps writing them to .env at build time are dead. Keep the build-only Sentry sourcemap vars (auth token, org, project id), VITE_VERSION, VITE_ENVIRONMENT and VITE_DOCS_BASE_URL. * chore(web): revert frontend and CI web settings changes Drop the frontend consumption (AppRoutes, vite config, index.html, env typings, bootSettings helper, setupProxy) and the CI workflow edits for the web settings migration; these will be done separately. The backend web.settings config and the generated schema/types stay. * refactor(web): make new web settings keys optional The new web settings keys (sentry dsn/tunnel, posthog key/api_host/ ui_host, appcues app_id, pylon app_id/identity_secret) are not required; drop required:"true" so they are optional in the generated schema and types. Only enabled stays required. |
||
|
|
b2f048770e |
feat(dashboards-v2): list tags, DSL search, per-user pinning & org-shared views (#11868)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(dashboards-v2): remove temporary V2 list banner The 'You're on the V2 dashboards page' warning banner was a stop-gap while the page was in flux. Remove it now that the page is the intended destination. * feat(dashboards-v2): strict key:value tag input with inline edit Add a shared TagKeyValueInput that accepts tags only as key:value pairs, committed on Enter and rejecting bare values, with double-click inline editing, removable sienna chips, and a key:value parser. Use it on the dashboard settings Overview form and the create-dashboard modal (replacing the comma-separated text field). The dashboard list item type adopts the per-user list DTO so rows carry the data the tag/pin features need. * feat(dashboards-v2): DSL search with key suggestions and tag filtering The search box now passes raw filter DSL straight through (parenthesized to keep its precedence isolated) instead of wrapping the term in name CONTAINS, so users can type name/tag/created_by clauses directly. A suggestions dropdown offers the reserved DSL keys plus the tag keys reported by the list endpoint. Adds a Tags filter chip (multi-select from the API's tags) alongside Created by / Updated. * feat(dashboards-v2): per-user dashboard pinning Replace the localStorage favorite star with backend per-user pinning. The row action pins/unpins via the v2 per-user endpoints (pin/unpin), refreshes the personalized list, and surfaces the 10-pin limit (HTTP 409) as a toast. Uses the Pin/PinOff icons. * feat(dashboards-v2): org-shared saved views via the views API Persist saved views through the backend Views API (list/create/update/delete) instead of localStorage, so they are shared across the org. A view stores the combined DSL query plus sort/order and folds into the search box on select. Wires the personalized list (pinned-aware), renames the 'Favorites' built-in to 'Pinned', renames the metadata popover to 'Columns', and polishes the views rail (active accent, left-aligned title). * refactor(dashboards-v2): group list utils under a utils/ folder Move filterQuery, dslSuggestions, views and the general helpers (plus their tests) into DashboardsListPageV2/utils/ so the page's growing set of non-component modules lives in one place; update import paths. No behavior change. * feat(dashboards-v2): retain tags across refetches + DSL keyboard nav Accumulate the tags reported by the list endpoint across refetches so previously- seen tags stay selectable in the Tags chip and DSL suggestions even when a filtered page omits them. The DSL suggestions dropdown is now keyboard-navigable (arrow keys + Enter, Escape to close) and renders as a seamless full-width panel attached to the input. * refactor(dashboards-v2): prefer @signozhq Button/Typography, polish views rail Replace raw <button>/<span> in the V2 list and tag input with @signozhq Button and Typography, and apply icon classes directly to the icon (no wrapper span). Switch the pin row to Pin/PinOff. Views rail: larger view-name font, 'Filter views by name' placeholder, and an editable tag chip using a flattened ghost Button. * chore(dashboards-v2): fix formatting in moved util files * refactor(dashboards-v2): use an enum for built-in view ids Replace the BuiltinViewId string-literal union with a TS enum (string values unchanged, so the URL view param stays compatible) and use its members across the view catalogue, snapshots, and the All-view check. * refactor(dashboards-v2): trim redundant tag-chip remove-button overrides Ghost background is already transparent and the hover colors are not needed; keep only the size overrides plus color:inherit so the close icon matches the chip sienna. * fix(dashboards-v2): don't open the dashboard when cancelling delete The confirm dialog renders through this component's contextHolder, which sits inside the row's click-to-open handler; React replays portal events up the tree, so the Cancel click bubbled to the row and navigated. Stop propagation on cancel. * fix(dashboards-v2): blend the views-rail delete action into the row Revert the delete action to a ghost icon that stays transparent over the row's hover background and only turns red on its own hover (the outlined variant broke the unified background), stop its click from selecting the view, and restore the content-driven row height so all rows stay uniform. * fix(dashboards-v2): overlay the views-rail delete instead of reserving space Absolutely position the delete action on the row's right edge (created views only) so it no longer takes flex space, and drop the --button-height:auto hack so the row keeps its natural height. pointer-events are gated so the hidden button can't intercept row clicks. * fix(dashboards-v2): align tag chip weight and fix remove-button hover Match the chip text weight to the list-row badge (normal, not medium) so the colour reads the same, and give the remove (×) a sienna-tinted hover instead of the Button's default grey. Resting × colour stays at the Button default. |
||
|
|
0711786701 |
fix(dashboards-v2): panel editor fixes + span-gaps Disconnect Values control (#11864)
* fix(dashboards-v2): disable panel types unsupported by the datasource
A new panel's builder is seeded with the kind's default signal, but
`spec.queries` stays empty until the query is modified — so the type
switcher saw an undefined datasource and never disabled incompatible
types (e.g. List on a metrics panel, which then breaks rendering).
Resolve the signal with a fallback to the kind's default signal so
compatibility is enforced from the first render.
* fix(dashboards-v2): place toolbar-created panels in the root section
The top-right "New Panel" button creates a panel with no section context,
which createPanelOps resolved to the LAST section instead of the root.
Fall back to the first (root) section when no valid index is given; still
create an untitled section when the dashboard has none.
* feat(dashboards-v2): add "Move out of section" panel action
The "Move to section" submenu only listed titled sections, so a panel
in a titled section couldn't be moved back to the untitled root. Add a
direct "Move out of section" action, shown when the panel sits in a
titled section and an untitled root section exists to receive it.
* fix(dashboards-v2): allow clearing the threshold value input
The threshold "Value" field was a controlled numeric input, so an
emptied field snapped back to 0 (Number("") is 0, not NaN) and the
seeded 0 could never be removed. Hold a local string so the field can
be cleared and edited; shared by all threshold row variants.
* feat(dashboards-v2): redesign span-gaps as a "Disconnect values" control
Replace the raw seconds input with a Never/Threshold toggle plus a
duration "Threshold value" field. The threshold is stored verbatim as a
duration string ("10m", "5s") — the wire format the backend expects — and
parsed back to seconds only for rendering and validation. Threads the
query step interval through the config pane to seed/floor the threshold,
and rejects invalid or below-step-interval entries inline (V1 parity).
* refactor(dashboards-v2): rename Formatting section to "Formatting & Units"
Serialize section header test ids (lowercase, spaces → dashes) so a
multi-word title doesn't break the data-testid, and update the test.
* chore(dashboards-v2): tidy panel-editor query helpers
- useLegendSeries: drop redundant optional chaining on panel.spec.
- Remove the unused getPanelKindLabel util.
* chore: pr review changes
* chore: fmt fix
* feat(dashboards-v2): deterministic panel capability guard (type × query-type × signal) (#11865)
* feat(dashboards-v2): add a panel capability guard
Centralize "what works with what" for V2 dashboard panels into one
deterministic guard. Each panel kind declares its supported query types and
optional query-builder field rules alongside its existing supported signals; a
pure `capabilities` module reads the panel registry to answer panel x
query-type x signal validity, coerce an unsupported query type, and resolve the
query-builder fields a kind hides.
`supportedQueryTypes` is required, so the registry's mapped type forces every
present and future kind to declare it. This re-homes the panel->query-type
compatibility that V2 previously imported from V1's NewWidget/utils into V2 land.
No behavior change: no consumer is wired to the guard yet.
* feat(dashboards-v2): gate the panel editor through the capability guard
Route the panel editor's query builder and visualization type switcher through
the capability guard instead of V1's PANEL_TYPE_TO_QUERY_TYPES (now no longer
imported by any V2 file):
- PanelEditorQueryBuilder is keyed on PanelKind; its query-type tabs and
query-builder field visibility come from the guard.
- Switching the panel kind coerces the active query type via the guard.
- The visualization type switcher disables a kind when the active query type or
datasource is incompatible with it (e.g. List under ClickHouse/PromQL, or List
with a metrics query). The live query type is read from the query-builder
provider so a not-yet-staged new panel still gates correctly, and a tooltip
explains why a type is disabled. ConfigSelect gains opt-in per-option tooltips.
* chore: pr review changes
* chore: lint fix
|
||
|
|
aeda0a5144 |
refactor(authz): fixes on error feedback (#11901)
* refactor(authz): ensure all error messages matches with api * refactor(roles): little fixes on UI |
||
|
|
b71c49d01f |
docs: refresh README with current SigNoz offerings and features (#11595)
* docs: refresh README * docs: update README Noz section * docs: add Foundry to README self-host path * docs: add README feature docs links * docs: refine README links and badges * docs: fix README LinkedIn badge link * docs: update README instrumentation links * docs: emphasize README contribution help * docs: link Noz docs in README |
||
|
|
570bc0aef1 |
feat(dashboards-v2): switch panel visualization type in the editor (#11820)
* refactor(dashboards-v2): extend ConfigSelect for the type switcher Allow ConfigSelect items to carry an arbitrary icon node and a disabled flag, and align the ConfigSegmented styling — the building blocks the panel-type switcher needs. * feat(dashboards-v2): add panel-type switch logic Add getSwitchedPluginSpec (a reversible per-kind plugin-spec transform) and the usePanelTypeSwitch hook that rebuilds the builder query and spec when the panel kind changes, guarding null queries. * feat(dashboards-v2): add the PanelTypeSwitcher control A ConfigSelect-based control listing the panel kinds, disabling types whose supported signals exclude the current datasource. * refactor(dashboards-v2): component-based icons in the panel-type modal Store icon components (not pre-rendered elements) in PANEL_TYPES so each consumer controls sizing; rename constants.tsx to constants.ts now that it holds no JSX. * feat(dashboards-v2): wire the type switcher into the config pane Render the switcher in the Visualization section, forward the panel kind + datasource signal + switch handler through SectionSlot/registry, and declare a Visualization section on every panel kind. * feat(dashboards-v2): reuse findFreeSlot for panel clone placement Clone now places the copy beside the last row when it fits, else wraps to a fresh row at the section bottom — matching the new-panel save path instead of always starting a new row. * style(dashboards-v2): format getSwitchedPluginSpec test with oxfmt Wrap the long getSwitchedPluginSpec(...) calls so the file passes `oxfmt --check` (the fmt / js CI gate). Formatting only, no behavior change. * chore: pr review changes * refactor(dashboards-v2): make SectionKind a real enum Replace the SectionKind string-literal union and the SECTION_KIND const object with a TypeScript enum. SectionSpecMap, SectionControls, SECTION_METADATA and the section registry are keyed by enum members (computed keys), and every section-kind site (kind configs, section editors, buildDefaultPluginSpec, getSwitchedPluginSpec) references SectionKind.* instead of bare string literals. * refactor(dashboards-v2): drop dead queries null-handling panel.spec.queries is a required DashboardtypesQueryDTO[], so the defensive `|| []` / `?? null` / optional-chaining and the dead getBuilderQueries/toQueryEnvelopes guards were no-ops. Remove them across the V2 dashboard: renderers, config pane, panel-type switch, query sync, perses adapters, panel-query hook, and the query-range builder. Also applies the same cleanup in usePanelEditorQuerySync and persesQueryAdapters (missed by the first pass), and seeds the now-required `queries` field in the ListPanel renderer test fixture. |
||
|
|
a22e7b7b16 |
test(trace-details): add E2E coverage for Trace Details (#11846)
* feat(trace-details): move no-data component from v2 code to v3 before v2 cleanup * feat(trace-details): move span logs out from v2 to v3 before cleanup * feat(trace-details): move events out from v2 to v3 before cleanup * feat(trace-details): remove usage of getTraceV2 from V3 code * fix(trace-details): fix serviceName path in trace funnel * feat(trace-details): remove Trace Details V2 page and its module import * feat(trace-details): remove unused trace details v2 code * feat(trace-details): fix failing test * test(trace-details): add e2e helper and large-trace fixture * test(trace-details): add flamegraph e2e + canvas test hook * test(trace-details): add waterfall e2e + row instrumentation * test(trace-details): add highlight-errors filter e2e * test(trace-details): add analytics panel e2e * test(trace-details): add span details drawer e2e * test(trace-details): add preview-fields hover card e2e * test(trace-details): minor refactor * test(trace-details): add common helpers * test(trace-details): use playwright context instead of browser * test(trace-details): add pinned side nav logic * test(trace-details): remove tests which could go as unit or integration * test(trace-details): remove tests and renumber |
||
|
|
fc83f91058 |
feat(invite-members): add reusable component for invite members (#11872)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(invite-members): add hook for invite members component * feat(invite-members): add component to handle invite member logic * test(invite-members): add tests for the component |
||
|
|
0d47f02100 |
fix(authz): validate transactionGroups in UpdateRole like CreateRole (#11898)
UpdatableRole.UnmarshalJSON unmarshalled transactionGroups directly into the slice, bypassing the verb/resource/kind/selector validation that CreateRole applies via NewTransactionGroups. Parse the field through NewTransactionGroups so update enforces the same constraints, while keeping transactionGroups required (omitted/null still rejected). |
||
|
|
810bf5d9a0 |
fix(notification-channels): edit not persisting any information (#11888)
* fix(edit-alerts): not persisting any information on save * refactor(channels-edit): use matchPath instead of regex |
||
|
|
7d8a00ab8c |
fix(uplotV2): tooltip list clips last row and over-scrolls (#11883)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
The Virtuoso scroller height was set to min(totalListHeight, 300), but the scroll viewport adds 8px top + 8px bottom padding that totalListHeight does not account for. The box was therefore ~16px shorter than its content, clipping the last row and showing a scrollbar even when every row would fit. Add the viewport's vertical padding back into the computed height so it only scrolls once content genuinely exceeds the max height. |
||
|
|
348fca1b62 |
feat(llm-pricing): listing page + table (2/5) (#11760)
* feat(llm-pricing): add model pricing foundation (route, permission, page shell) * feat(llm-pricing): add listing page and table * chore(llm-pricing): drop search + source filters from list request The list API does not honour the q (search) and source params yet, so the controls did nothing. Remove the search input and source dropdown along with the params we sent, and trim useModelPricingFilters to the URL-backed page state that pagination still needs. Currency dropdown, tabs, table and pagination are unchanged. Filters will return once the backend supports them. * refactor(llm-pricing): extract getRelativeTime helper in utils Pull the relative-time formatting out of getRelativeLastSeen into a small local getRelativeTime helper. Kept feature-local (not in the shared utils/timeUtils) so the LLM pricing module owns its own dayjs config; the local relativeTime extend stays for test self-sufficiency. * refactor(llm-pricing): drop dead NaN guard in formatPricePerMillion Pricing fields are typed as required numbers and JSON can't carry NaN, so Number.isNaN was unreachable. Keep the null/undefined guard as API defensiveness (toFixed on a missing value would crash the row). Also trims the now-redundant dayjs.extend comment. * refactor(llm-pricing): centralize constants and shared types Extract PAGE_SIZE, PAGE_KEY, COLUMN_COUNT and CURRENCY_OPTIONS into a new constants.ts, and move the ModelPricingFilters contract into types.ts. Component prop interfaces stay colocated with their components, matching the convention in the drawer PR. * refactor(llm-pricing): use nuqs for list pagination URL state Replace the hand-rolled useHistory + URLSearchParams plumbing in useModelPricingFilters with nuqs useQueryState, matching the convention used by the dashboards, alerts and k8s list pages. Behaviour is unchanged: parseAsInteger.withDefault(1) keeps ?page=1 out of the URL and history:'replace' avoids polluting the back-stack. * refactor(llm-pricing): inline pagination, drop useModelPricingFilters The hook had shrunk to a one-line nuqs wrapper after search/source were removed, so inline the useQueryState call into the container and remove the hook file plus the now-unused ModelPricingFilters type. When the filters return (once the API honours them) they can move back into a dedicated hook. * feat(llm-pricing): disable currency selector (USD-only for now) Only USD is priced today, so render the currency SelectSimple in a disabled state pinned to USD. A disabled select can't fire onChange, so the currency useState is dead — drop it (and the now-unused useState import). * refactor(llm-pricing): render model costs inside its tab + tab URL param The listing was rendered outside the Tabs, so the tab was decorative. Move all model-cost content (currency control, list query, table, pagination, footer) into a ModelCostsTab component rendered as the 'Model costs' tab's children, and drive the active tab from a 'tab' URL query param (nuqs). The container is now just the page shell. Unpriced models stays a disabled placeholder for a later PR. * style(llm-pricing): target @signozhq table slots, drop dead antd/leftover rules The component uses @signozhq/ui Table/Tabs (Radix-based), not antd, so the .ant-table-* and .ant-tabs-nav selectors never matched — the intended uppercase/muted header styling wasn't applied. Retarget header/cell rules to [data-slot='table-head'|'table-cell'] (no !important needed). Also remove dead rules left over from the removed search/source/add UI (.filters-bar__search, __source, __add, .page-header__actions) and the unused .source-badge--auto/ --override modifiers. * fix(llm-pricing): constrain currency dropdown width, drop tab URL param - Currency SelectSimple stretched to fill the filters bar; give it a fixed 160px width (min-width couldn't cap the trigger). - Model costs is the only enabled tab for now, so use Tabs defaultValue instead of a URL-backed param. Removes the nuqs tab state plus the now-unused TAB_KEYS/TAB_QUERY_KEY constants and TabKey type. * chore: self review changes * fix: add skeleton loading * refactor: self review changes * refactor: initial prop * fix: update styling * fix: add comments in utils * fix: route thing * refactor: migrate to css moduel * refactor: migrate to css module * refactor: migrate to tanstack table * docs: clarify price precision comment * chore: remove comment * refactor: shell * fix: add key to route * feat: add flags * chore: additional refactor * chore: add commet in utis * refactor: types and other things * refactor: types and other things * refactor: update routes * chore: remove usd selector for now * fix: layout shift * refactor: styles * refactor: typography component * refactor: more changes * refactor: typograhy * chore: sync table * chore: remove extra comment * chore: use typograpgy test in table config * fix: llm pricing listing * fix: update missing styles * chore: update edit and delete options * chore: remove divider --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
83e0e974fe | fix: include query metadata in alert edit and new contexts (#11891) | ||
|
|
10217274b8 | fix(render): add missing Content-Type header in Error() response (#11890) | ||
|
|
7c3ac5b221 |
chore: json tags for error struct (#11886)
* chore: json tags for error struct * fix: udpate unit tests |
||
|
|
c1d40d7359 |
fix: schema fixes based on UI and MCP integration review (#11718)
* fix: change schema properties based on UI integration review * fix: check that panels referred in layouts exist * chore: extract out validate panels method * test: add test for missing spec prefix in layout * fix: reject dashbaords that have vars with the same name * fix: add additional error info on patch application error * fix: add validations to list variable that text variable has * fix: replicate text variable spec in signoz to make name required * chore: replicate variable.sort into signoz * chore: remove unsupported enum values (causing errors right now) * chore: fix variable sort type errors * fix: add back enum values * fix: reject single-element list default when allowMultiple is false in list variables * fix: remove unused import * fix: make display required * chore: make queries non-nullable * fix: properly define default value and datasource plugin spec's api specs * fix: promote variable defaultValue to a named oneOf component The list variable defaultValue was an inline string | []string oneOf, which downstream codegen can't canonicalize: tfplugingen-openapi rejects the inline scalar-or-array multi-type, and oapi-codegen has no named type to attach the union's Marshal/UnmarshalJSON to. Shape the vendored variable.DefaultValue as the named VariableDefaultValue oneOf via a reflector InterceptSchema hook and let defaultValue $ref it, instead of overriding the property inline. Regenerate the OpenAPI spec and frontend client accordingly. * refactor: move VariableDefaultValue oneOf into dashboardtypes Define VariableDefaultValue in dashboardtypes as a subclass of the perses variable.DefaultValue and attach the string | []string oneOf via its own PrepareJSONSchema, instead of shaping the perses type from an openapi.go InterceptSchema hook. This keeps the union's schema next to its type. The named component is now DashboardtypesVariableDefaultValue; regenerate the OpenAPI spec and frontend client accordingly. --------- Co-authored-by: Ashwin Bhatkal <ashwin96@gmail.com> Co-authored-by: grandwizard28 <vibhupandey28@gmail.com> |
||
|
|
c5c1913f97 |
fix(querier): pad clamped time range for trace_id-filtered logs (#11800)
* fix(querier): pad clamped time range for trace_id-filtered logs * chore: use a struct instead * chore: more cleanup |
||
|
|
5ab6636863 |
feat: add api to fetch v2 dashboards for a metric name (#11784)
* feat: add api to fetch v2 dashboards for a metric name * chore: switch to query param * chore: generate API specs * chore: use proper struct in return type of GetByMetricNamesV2 * chore: add method for escaping like patterns in sqlstore formatter * fix: use only one db call in GetByMetricNamesV2 * chore: dont use type alias for list of references |
||
|
|
3680cc7779 |
refactor(trace-details): remove dead Trace Details V2 code (#11805)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(trace-details): move no-data component from v2 code to v3 before v2 cleanup * feat(trace-details): move span logs out from v2 to v3 before cleanup * feat(trace-details): move events out from v2 to v3 before cleanup * feat(trace-details): remove usage of getTraceV2 from V3 code * fix(trace-details): fix serviceName path in trace funnel * feat(trace-details): remove Trace Details V2 page and its module import * feat(trace-details): remove unused trace details v2 code * feat(trace-details): fix failing test |
||
|
|
7cfedc46c4 |
refactor(trace-details): migrate SpanLogs/Events/NoData + funnel to V3 (pre-V2-cleanup) (#11855)
* feat(trace-details): move no-data component from v2 code to v3 before v2 cleanup * feat(trace-details): move span logs out from v2 to v3 before cleanup * feat(trace-details): move events out from v2 to v3 before cleanup * feat(trace-details): remove usage of getTraceV2 from V3 code * fix(trace-details): fix serviceName path in trace funnel * feat(trace-details): move no-data component from v2 code to v3 before v2 cleanup * feat(trace-details): move span logs out from v2 to v3 before cleanup * feat(trace-details): move events out from v2 to v3 before cleanup * feat(trace-details): remove usage of getTraceV2 from V3 code * fix(trace-details): fix serviceName path in trace funnel * feat(trace-details): fix css style conventions * feat(trace-details): events code refactor * feat(trace-details): fix tests |
||
|
|
69ba25d82e |
feat(llm-pricing): foundation — route, permission & page shell (1/5) (#11750)
* feat(llm-pricing): add model pricing foundation (route, permission, page shell) * refactor: migrate to css moduel * refactor: shell * fix: add key to route * feat: add flags * refactor: update routes --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
e42159f257 |
feat: enhance context picker with empty state handling and prefill functionality (#11869)
* feat: enhance context picker with empty state handling and prefill functionality * feat: implement empty state CTA styling and testing for context picker |
||
|
|
1e887dc9c9 |
chore(e2eci): source Playwright browsers from official image (#11789)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore(e2eci): source Playwright browsers from official image Replace the runtime `pnpm playwright install` (which fetches browser binaries from the Playwright CDN and intermittently times out) with a copy out of the official `mcr.microsoft.com/playwright:v1.57.0-noble` image. The job stays on ubuntu-latest so the testcontainers-based backend bring-up is untouched; only OS deps are still installed via apt (`install-deps`), which does not hit the flaky CDN. Bump @playwright/test from the 1.57.0 alpha to stable 1.57.0 so the client version matches the image tag (browser builds line up). Closes #11772 * fix(e2e): open panel ⋮ menu via click, not hover (#11881) |
||
|
|
7646aabb2b |
fix(member-settings): sidenav button not redirecting to correct invite members modal (#11871)
Some checks failed
build-staging / prepare (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
|
||
|
|
18851afb6d | refactor(onboarding): drop old page (#11860) | ||
|
|
d5221a6ff3 |
feat(metrics): add per-metric label-reduction rules (#11849)
* chore(metric-reduction): scaffold metric volume control API (types, routes, stubs) * chore: generate spec * chore: fix required and generate frontend types * chore(metric-reduction): add module implementation (#11857) |
||
|
|
19712c3579 |
feat(authdomain): support custom roles in SSO group mapping (#11858)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(authdomain): support custom roles in SSO group mapping Role mappings now reference SigNoz roles by name (custom or managed) instead of the legacy ADMIN/EDITOR/VIEWER enum. Legacy values sent by a client are normalized to their managed names (signoz-admin/editor/viewer), and a migration normalizes existing stored mappings. - normalize legacy role names on unmarshal; resolve all matched roles on SSO callback (union of matched groups, else default, else viewer) - validate referenced roles exist on auth domain create/update - block deleting a role referenced by any auth domain mapping, naming the referencing domains (OnBeforeRoleDelete now also passes the role name) - migration 096 to rewrite legacy names in existing auth_domain mappings * refactor(sqlmigration): decode SSO role mapping into a typed struct Decode the roleMapping object into a small frozen struct instead of poking at json.RawMessage per field. The top-level config stays a raw map so the other config fields are preserved untouched. * fix(authdomain): validate SSO role attribute claim against existing roles When the role mapping uses the IDP role attribute, the claimed role is assigned only if it exists in the org (resolved case-insensitively, with legacy ADMIN/EDITOR/VIEWER mapped to their managed names); otherwise the mapping falls through to group mappings and the default role. This lets custom roles be assigned via the attribute and avoids failing login on an unknown claim. Also normalize legacy role names case-insensitively and fold the single-use managed-role lookup into NormalizeRoleName. |
||
|
|
e31683be11 |
fix(metrics-explorer): resolve pagination overlap in table (#11812)
* fix: resolve pagination overlap in metrics explorer table * fix: add padding-bottom to metrics table container per review feedback |
||
|
|
1700ad06e6 |
chore: refactor error response + normalize ClickHouse telemetrystore errors (#11740)
* chore: mark required and nullable in json tag, renamed methods, and added more functionality * fix: unit test * fix: cast clickhouse exceptions * fix: go mod tidy * fix: telemetrystore now returns explicit base errors * fix: typo * fix: added all changes * fix: added nil check * fix: update test files * fix: addressed comments * fix: change errors and suggestions to be non-nullable |
||
|
|
ee3b45b80d |
feat(statsreporter): track role counts (#11866)
Register the authz provider as a stats collector and emit per-org role counts (role.count, role.custom.count, role.managed.count) using the same dynamic key pattern as authdomain. |
||
|
|
4771e30c03 | fix(keyboard-shortcut): monaco-editor should not trigger shortcut (#11848) | ||
|
|
e933fa74c7 |
feat(querybuilder): type untyped value fields in v5 openapi schema (#11850)
* feat(querybuilder): type untyped value fields in v5 openapi schema
The query-builder v5 types FunctionArg, VariableItem and Label carry a
`Value any` field that the reflector rendered as an untyped `{}` in the
OpenAPI spec, and QueryEnvelope left an untyped `spec: {}` on its oneOf
base. Add PrepareJSONSchema methods that document the real wire contract:
- FunctionArg.value -> oneOf [number, string]
- VariableItem.value -> oneOf [string, number, boolean, array<scalar>]
- Label.value -> oneOf [string, number, boolean]
- QueryEnvelope -> drop the duplicate base properties so only the
typed oneOf-of-$ref variants remain
The Go fields stay `any`; this only shapes the generated schema, so the
runtime decode paths and the existing wire format are unchanged.
* chore(api): regenerate openapi spec and frontend client
Regenerates docs/api/openapi.yml (`generate openapi`) and the orval
frontend client (`generate:api`) for the v5 schema typing. The four
value/spec fields are now typed instead of untyped `{}`, and the
QueryEnvelope DTO collapses from a union of `& { spec?: unknown }`
intersections into a clean discriminated union.
* feat(querybuilder): expose builder_join variant and nullable variable value
- Uncomment the QueryEnvelope builder_join variant so the discriminated
union includes joins (the runtime UnmarshalJSON already decodes them),
and type QueryBuilderJoin.aggregations (a []any holding trace/log/metric
aggregations) as a oneOf of the concrete aggregation schemas instead of
an untyped {}.
- Mark VariableItem.value nullable: the frontend sends null for a dynamic
variable whose "ALL" option is selected.
Go field types are unchanged; this only shapes the generated schema.
* chore(api): regenerate spec and frontend client for join + nullable value
Regenerates docs/api/openapi.yml and the orval frontend client. The
QueryEnvelope union gains the builder_join variant (with typed
aggregations), and VariableItem.value is now string | number | boolean |
array | null.
* refactor(querybuilder): extract join aggregations into a named JoinAggregation
The previous inline `items.oneOf` on QueryBuilderJoin.aggregations isn't
mappable by code generators — tfplugingen-openapi rejects a oneOf buried
inline in array items ("schema composition is currently not supported"),
and skaff's detectOneOfRewrites only rewrites top-level component schemas.
Introduce a named JoinAggregation element type exposing the trace/log/metric
shapes via JSONSchemaOneOf, so the schema becomes a named oneOf-of-$ref
component (which generators flatten into one object with three optional
sub-objects) instead of an inline union. The runtime value stays opaque and
the wire shape is unchanged via transparent Marshal/UnmarshalJSON.
* chore(api): regenerate spec and frontend client for JoinAggregation
QueryBuilderJoin.aggregations items now reference the named
Querybuildertypesv5JoinAggregation oneOf component.
* feat(querybuilder): add an OpenAPI discriminator to the QueryEnvelope union
Collapse the three signal-specific builder_query schema variants into a single
queryEnvelopeBuilder whose aggregations are a trace/log/metric union
(BuilderAggregation), so `type` maps 1:1 to one variant. Tag QueryEnvelope with
x-signoz-discriminator (propertyName: type); attachDiscriminators promotes it to
a real OpenAPI 3 discriminator so oapi-codegen emits ValueByDiscriminator and
generated clients can dispatch the union mechanically.
Runtime decoding is unchanged — UnmarshalJSON still dispatches builder queries
by signal. The generated frontend client and its dashboard-v2 consumers need a
follow-up to adopt the discriminated union.
* chore(api): regenerate openapi spec for the QueryEnvelope discriminator
Frontend client regeneration is deferred to the follow-up that adapts the
dashboard-v2 query consumers to the discriminated union.
* chore(api): regenerate frontend client for the QueryEnvelope discriminator
Matches the discriminator added in
|
||
|
|
853397a79e |
feat(dashboards-v2): create new panels from the editor (#11777)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(dashboards-v2): list panel kind (logs/traces) with row detail
* feat(dashboards-v2): list columns editor with datasource column switch
* feat(dashboards-v2): move list columns editor below the query builder
Replace the config-pane Columns section with a dnd-kit reorderable editor
rendered beneath the query builder (V1 parity); sanitize selectFields to the
field-key DTO so saved columns drop non-contract keys (isIndexed).
* style(dashboards-v2): format list panel header with oxfmt
* refactor(dashboards-v2): drop the unsupported-panel fallback
Every panel kind now has a renderer, so the "not yet supported in V2"
body is dead. Remove UnsupportedPanelBody and render the panel body
behind a plain `panelDefinition &&` guard. Also clean up the panel-kind
typing in Panel.tsx: `spec.plugin.kind` is non-optional and already a
PanelKind, so the `as unknown as` cast and `?.` chains go away.
* refactor(dashboards-v2): tighten the getPanelDefinition cast
Drop the dead `if (!kind)` guard (a partial registry already returns
undefined for absent keys) and reduce the `as unknown as` double-cast to
a single `as` — comparability clears it, so the unknown laundering was
unnecessary.
* refactor(dashboards-v2): narrow renderer props to the panel kind
PanelRendererProps<K> now carries a `panel` narrowed to kind K (via a
PluginOfKind helper that picks the variant from the generated plugin
union), so each renderer reads `panel.spec.plugin.spec` as its exact spec
DTO. Removes the per-renderer `as <Kind>SpecDTO` cast (and the now-dead
`?? {}` fallbacks) across all seven renderers; the single unavoidable
widening stays in getPanelDefinition.
* feat(dashboards-v2): create new panels from the editor
Add a draft-first create flow: picking a panel type opens the editor at
`/panel/new?panelKind=…&layoutIndex=…` on an in-memory default panel, and
nothing is persisted until save — cancelling leaves the dashboard
untouched (V1 parity). On save a new panel is minted (uuid) and added to
the target section via `createPanelOps` (resolves the section, or creates
one when the dashboard has none).
All "Add panel" triggers (section header, empty section, empty dashboard,
toolbar) route through a single useCreatePanel hook + the V2 type picker;
the leftover V1 global modal and useAddPanelToSection are removed.
New panels seed sensible defaults from the kind's supported signals: the
query datasource (e.g. List → logs, not the unsupported metrics default)
and, for List, the signal's default columns — so the Columns control
isn't empty on first open. New panels always re-serialize their query for
the kind on save, so the persisted query is valid even if untouched.
echo "--- working tree after commits (should be only dev hack) ---"; git status --short
* fix(dashboards-v2): place a new panel in the last row's free space
createPanelOps placed every new panel at x:0 on a fresh row, so a half-full
last row left its right half empty. Find the first free slot in the section's
last row (right of its panels) and only wrap to a new row when it can't fit.
* fix(uplot): center a single-item chart legend
isSingleRow read the container width from a ref inside useMemo, so it computed
once at mount (ref still null → width 0 → false) and only recovered if the
component happened to re-render. The uPlot legend re-renders on plot sync so it
recovered by luck; the Pie legend doesn't, leaving a single item clipped in a
narrow grid track. Measure the container with useResizeObserver instead.
* feat(dashboards-v2): unified panel empty, no-data and no-query states
Add a shared PanelMessage component (icon + title + description + optional
action) backing every non-chart panel state. PanelBody now shows a 'Nothing to
visualize yet' state for panels with no runnable query and a polished error
state with Retry. NoData becomes a 'No data in this time range' affordance with
an optional Retry, wired through a new optional refetch on the renderer props.
* fix(dashboards-v2): derive the preview "Plotted with" tag from the panel query
The editor preview hardcoded EQueryType.QUERY_BUILDER, so PromQL/ClickHouse
panels were mislabelled and list panels still showed the tag. Add a V2 PlotTag
(mirroring V1: hidden for list panels and before a query exists) fed by a new
getPanelQueryType util that reads the panel's V5 envelopes.
* feat(dashboards-v2): panel header title with description tooltip
Replace PanelHeader's ReactNode title with explicit name + description props,
rendering the description as an info-icon tooltip in the header instead of a
wrapper around the title. Panel passes them directly (no headerTitle memo).
* refactor(dashboards-v2): let consumers own the refetch loader signal
usePanelQuery returns the raw react-query isLoading; the dashboard panel and the
editor preview now compute isLoading || isFetching themselves, so each surface
decides whether a background refetch shows the full loader.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix(dashboards-v2): default a threshold's label to an empty string on save
* feat(dashboards-v2): show the panel header in the editor preview
Reuse PanelHeader in PreviewPane so the editor preview shows the panel
title, description tooltip, refetch spinner, and error/warning indicators,
with the body rendered flush beneath it like the dashboard grid panel.
Add a hideActions flag to PanelHeader to suppress the actions menu in the
editor: View/Edit/Clone/Delete don't apply there, and omitting panelActions
alone isn't enough since View/Edit/Download survive their own gates. Wire the
table/list header search through the preview as the grid does, and thread the
raw isFetching for the header's refetch spinner.
* feat(dashboards-v2): seed new panels with per-kind config defaults
A new panel was seeded with an empty plugin spec, so the config pane's
dropdowns and segmented controls (time scope, legend position, line style /
interpolation, fill mode) opened with nothing selected.
Derive a default plugin spec from each kind's declared sections via a new pure
buildDefaultPluginSpec helper and seed it in createDefaultPanel. Each default
equals the matching renderer fallback, so only the config-pane display changes,
not the rendered output. Controls whose empty state already reads as the chart
default (unit/decimals "auto", switches, numeric "Auto" inputs) are left unset.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix(dashboards-v2): preserve list columns across datasource round-trips
The List panel stores a single selectFields list, so switching the query
signal replaced the columns with the new datasource's defaults — going
logs -> traces -> logs discarded a customized logs selection.
Remember each signal's columns and restore them when switching back;
defaults still seed a signal the first time it's seen.
* docs(dashboards-v2): trim verbose comments to minimal-why style
Condense multi-paragraph block comments and drop comments that restate
the code across the new-panel editor surface, keeping only the non-obvious
"why" and concise JSDoc on functions and type fields. Comment-only — no
code, types, or test assertions changed.
* fix(dashboards-v2): show resource attributes like service.name in trace list panels
The List renderer only flattened nested resource/attribute maps for logs, so a
selected resource field such as service.name (nested under resources_string)
rendered N/A for traces even though the same data shows in V1. Flatten traces too.
* feat(dashboards-v2): open new List panels on a runnable logs query (V1 parity)
A new List panel opened blank: its seed query had an empty orderBy and lived only
in the builder, so the preview didn't run on open. Seed spec.queries at creation
with the V1 list logs query (orderBy timestamp desc) so the panel opens on logs,
pre-sorted, and the preview runs immediately; wire up useSeedNewListColumns so its
default columns (timestamp, body) are populated too. Switching to traces is handled
by the builder's list-view path.
* fix(dashboards-v2): drop all config-pane sections from the List panel
List columns are edited below the query builder, and Context Links isn't wanted in
the config pane, so the List panel now declares no config-pane sections.
* refactor(dashboards-v2): address PR review feedback
- getPanelDefinition: make PanelRegistry total over PanelKind so it never
returns undefined (a missing kind is now a compile error)
- toQueryEnvelopes/hasRunnableQueries: accept `... | null` and drop the
`?? []` at call sites
- consolidate panel loading to a single `isFetching` signal (Panel,
PreviewPane, PanelEditor)
- rename defaultDataSource -> signal; use TelemetrytypesSignalDTO enum for
the List default columns
- useCreatePanel now owns the panel-type picker state, deduping the three
add-panel triggers; rename pluginKind -> panelKind
- LabelThresholdRow: extract onSave into a callback; ThresholdsSection test
uses userEvent
- PreviewPane: drop the optional chaining on the required display field
- trim over-verbose comments
* refactor(dashboards-v2): type panel signals as TelemetrytypesSignalDTO
Replace the query-builder `DataSource` enum with `TelemetrytypesSignalDTO`
across the panel signal plumbing — the panel definitions' `supportedSignals`,
the List columns editor/suggestions/defaults, and the editor query-sync and
column-seeding hooks — and make the signal non-optional where a panel always
resolves one. Drops the now-dead `DataSource` imports.
* chore: pr review changes
* chore: pr review changes
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|
|
bd526df11d |
feat(roles): rework the create/update pages (#11815)
* fix(styles): little fix for callout I will upstream this fix eventually * fix(settings): ensure tab content can use height: 100% We will need this fix for the create/edit role page later during json mode * refactor(authz): define the verbs that supports selectorId * refactor(roles): drop old components We will rewrite them * refactor(roles): use css modules on role settings * refactor(roles): rewrite delete role modal to use dialog component * feat(roles): add initial type files * feat(error-in-place): add testId to allow assert on future tests * refactor(permission-denied-full-page): change the wording a little bit to match the API This change was requested by Vikrant * feat(service-account-drawer): add copy button for ID Suggested by https://github.com/SigNoz/platform-pod/issues/2529#issuecomment-4776975323 * fix(service-account-drawer): not validating the permissions correctly for read/update Found at https://github.com/SigNoz/platform-pod/issues/2529#issuecomment-4776975323 * feat(timezone): add little helper to allow format optional dates * refactor(authz): export parse permission to get objectId when needed * test(authz): add helper to grant by prefix * test(test-utils): include tooltip provider * feat(hooks): add hook to block navigation via history * feat(roles): add hook to map API interface to own interface for easier integration * feat(roles): add hook to fetch role permissions * feat(roles): add config object around how to define each section for each resource * feat(roles): add config for monaco when showing json * feat(view-roles): add selected ids component * feat(view-roles): add component row to render selected roles * feat(view-roles): add card component to render each resource selected * feat(view-roles): add overview component to view roles * feat(view-roles): add readonly json viewer * feat(view-roles): add view role page * test(view-roles): add tests for view roles * feat(create-edit-roles): add hook for form validation * feat(create-edit-roles): add hook for unsaved changes * feat(create-edit-roles): add hook for generic logic for create-edit * feat(create-edit-roles): add component to render json * feat(create-edit-roles): add component to add new selectors for a permission * feat(create-edit-roles): add component to select scopes of a permission * feat(create-edit-roles): add component render resources to be selected * feat(create-edit-roles): add component render permission editor * feat(create-edit-roles): add page to create/edit roles * test(create-edit-roles): add tests for page and subcomponents * feat(list-roles): refactor to css modules & add row click to open view role page * fix(list-roles): change description when feature gate is disabled * refactor(roles): removed action labels and use function instead * refactor(authz): add todo about permission.config * feat(roles): add routes for create/edit/view * test(service-account): update missing tests * fix(pr): address comments * fix(pr): rename suffix of hooks from callbacks to actions * fix(pr): remove all usages of getByText * test(use-navigation-blocker): fix test |
||
|
|
8ac07d3d37 |
feat(infra-monitoring): v2 onboarding/checks api (#11104)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: baseline setup * chore: endpoint detail update * chore: added logic for hosts v3 api * fix: bug fix * chore: disk usage * chore: added validate function * chore: added some unit tests * chore: return status as a string * chore: yarn generate api * chore: removed isSendingK8sAgentsMetricsCode * chore: moved funcs * chore: added validation on order by * chore: added pods list logic * chore: updated openapi yml * chore: updated spec * chore: pods api meta start time * chore: nil pointer check * chore: nil pointer dereference fix in req.Filter * chore: added temporalities of metrics * chore: added pods metrics temporality * chore: unified composite key function * chore: code improvements * chore: added pods list api updates * chore: hostStatusNone added for clarity that this field can be left empty as well in payload * chore: yarn generate api * chore: return errors from getMetadata and lint fix * chore: return errors from getMetadata and lint fix * chore: added hostName logic * chore: modified getMetadata query * chore: add type for response and files rearrange * chore: warnings added passing from queryResponse warning to host lists response struct * chore: added better metrics existence check * chore: added a TODO remark * chore: added required metrics check * chore: distributed samples table to local table change for get metadata * chore: frontend fix * chore: endpoint correction * chore: endpoint modification openapi * chore: escape backtick to prevent sql injection * chore: rearrage * chore: improvements * chore: validate order by to validate function * chore: improved description * chore: added TODOs and made filterByStatus a part of filter struct * chore: ignore empty string hosts in get active hosts * feat(infra-monitoring): v2 hosts list - return counts of active & inactive hosts for custom group by attributes (#10956) * chore: add functionality for showing active and inactive counts in custom group by * chore: bug fix * chore: added subquery for active and total count * chore: ignore empty string hosts in get active hosts * fix: sinceUnixMilli for determining active hosts compute once per request * chore: refactor code * chore: rename HostsList -> ListHosts * chore: rearrangement * chore: inframonitoring types renaming * chore: added types package * chore: file structure further breakdown for clarity * chore: comments correction * chore: removed temporalities * chore: pods code restructuring * chore: comments resolve * chore: added json tag required: true * chore: removed pod metric temporalities * chore: removed internal server error * chore: added status unauthorized * chore: remove a defensive nil map check, the function ensure non-nil map when err nil * chore: cleanup and rename * chore: make sort stable in case of tiebreaker by comparing composite group by keys * chore: added types and constants * chore: added specs for all component types * chore: added attrs presence check function * chore: added onboarding splits * chore: regen api client for inframonitoring Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: added required tags * chore: added support for pod phase unknown * chore: removed pods - order by phase * chore: improved api description to document -1 as no data in numeric fields * fix: rebase fixes * chore: added onboarding api * chore: renamed method * chore: get onboarding spec * chore: simplify * chore: readability improvement * chore: added a note from otel * chore: added a note from otel * feat(infra-monitoring): v2 pods list apis - phase counts when custom grouping (#11088) * chore: added phase counts feature * chore: added queries for pod phase counts in custom group by * chore: added unknown phase count * fix: isPodUIDInGroupBy in buildPodRecords * chore: 3 cte --> 2 cte * chore: pod phase with local table of time series as counts * chore: comment correction * chore: corrected comment * chore: value column for samples table added * chore: removed query G for phase counts * chore: rename variable * chore: added PodPhaseNum constants to types * chore: updated comment * chore: onboarding specs updated to match v2 infra-monitoring apis * chore: integration tests added * chore: documentation future links added * chore: added new metrics existence function + modified return types * chore: not required parameter removal * chore: reformatted integration tests * chore: renamed onboarding -> checks --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Ashwin Bhatkal <ashwin96@gmail.com> |
||
|
|
9bab8e0ae2 |
docs(deploy): restructure migration guide and add Docker Swarm (#11851)
* docs(deploy): restructure migration guide and add Docker Swarm * docs(deploy): title migration guide for both install script and deploy * docs: fix the signoz docs troubleshooting guide url * docs(deploy): point troubleshooting at Slack and Foundry issues |
||
|
|
8040f222ad |
fix: enable opamp for llmpricing/spanmmapper and remove unit from config (#11285)
* fix: enable opamp for llmpricing * fix: test files * chore: cleanups * fix: don't deploy to opamp if ff is disabled * fix: enable spanmapper behild feature flag |
||
|
|
a45212cb79 |
feat(infra-monitoring): remove requiredMetricsCheck from v2 APIs + integration tests for new querier warnings behaviour. (#11792)
* chore: metric_name required checks removed * refactor(inframonitoring): drop required-metrics test, add test hosts_warnings * chore: updated integration tests for pods * chore: updated integration tests for volumes * chore: updated integration tests for nodes * chore: updated integration tests for clusters and deployments * chore: updated statefulsets integration tests * chore: updated integration tests for jobs and daemonsets * chore: removed unwanted provisional comments * test(inframonitoring): dedupe metric-availability warning fixtures, reuse existing datasets * test(inframonitoring): isolate hosts metric-key-pair warning fixture Scenario-2 shared host acc-h1 + the accuracy fixture with test_hosts_value_accuracy, causing a deterministic CI failure (empty warnings). Restore the dedicated kp-h1 fixture + deployment.environment groupBy so the warning assertion never depends on data shared with another test. * chore: removed unimportant tests for same thing * test(inframonitoring): drop obsolete metric-key-pair warning scenario PR #11835 removed the "key X not found on metric" warning from the metric statement builder (lexer-derived check can't tell a key from a value, so $variables got false-flagged). The metric_key_pair_not_seen scenario asserted that now-removed warning, so it fails deterministically after merging main. Remove the scenario and its orphaned fixture; never-seen-metric coverage ("never been received", still emitted) stays. |
||
|
|
a609a4044c |
fix(ui): resolve monaco find widget clipping and flickering (#11826)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
f78d98ea71 |
feat(metrics-explorer): move metric_name from path param to query param (#11745)
* chore: metricName to post body for POST /api/v2/metrics/{metric_name}/metadata
* chore: metricName to query param for GET /api/v2/metrics/{metric_name}/metadata
* chore: added metricName in api get metric attributes
* chore: highlights api modified
* chore: alerts api modified
* chore: dashboards api modified
* chore: description added for metric_name query params
* feat(metrics-explorer): integrate metricName query/body API change in frontend (#11818)
* feat(metrics-explorer): integrate metricName query/body API change in frontend
The metrics-explorer endpoints moved metric_name off the URL path: the
five GETs (attributes, metadata, highlights, alerts, dashboards) now take
a required `metricName` query param, and POST /metadata reads metricName
from the request body.
- Regenerate the orval client from the updated openapi spec, so the GET
helpers build `/api/v2/metrics/<op>?metricName=...` (URL-encoded, so
slashed cloud metric names work) and updateMetricMetadata posts to
`/api/v2/metrics/metadata` with metricName in the body.
- Collapse the useGetMetricAttributes call to the single merged params
object (metricName + start/end).
- Drop the now-removed pathParams wrapper from both updateMetricMetadata
call sites; the payload builders already include metricName in the body.
- Update the Metadata test to assert metricName inside the request body.
* revert(metrics-explorer): drop slashed-metric-name band-aid guards
These two defensive guards were added as temporary workarounds for the
metric_name-with-slash bug (SigNoz/signoz#11527, #11528), which returned
200 + HTML instead of JSON. The root cause is fixed by moving metricName
to a query/body param, so the band-aids are no longer needed and revert
to the original intended code.
- MetricDetails.tsx: `!metricMetadataResponse?.data` -> `!metricMetadataResponse`
- AllAttributes.tsx: `?.data?.attributes` -> `?.data.attributes`
* chore: added description for metricName query params
---------
Co-authored-by: Ashwin Bhatkal <ashwin96@gmail.com>
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
|
||
|
|
f60e5039be |
feat(dashboard-v2): toolbar repositioning, JSON editor & expandable variables bar (#11837)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(dashboard-v2): json editor drawer to edit dashboard as raw JSON Right-side drawer with a Monaco JSON editor (reusing the import-JSON theme), a Format/Copy/Download/Reset toolbar, live JSON validation, and Apply via the full-document updateDashboardV2 endpoint. Cmd/Ctrl+Enter applies; Esc closes. * feat(dashboard-v2): grouped actions menu with clone, new section & edit-as-JSON Regroup the actions dropdown into labelled Dashboard/Data/Layout groups, add Clone dashboard (cloneDashboardV2 + navigate) and New section (useAddSection), and surface an Edit as JSON button that opens the JSON editor drawer. The menu trigger is a labelled "Actions" button with a 9-grid icon; the time selector moves out of the actions row to the toolbar's second row. * feat(dashboard-v2): description-on-hover and space-aware tag overflow Collapse the dashboard description behind an info icon shown on hover, and move tags inline after the title where they restrict to the available width and collapse the remainder into a +N badge (reusing the alerts badge measuring). * refactor(dashboard-v2): two-row toolbar with a floated, expandable variables bar Second toolbar row floats the time-range selector top-right; the variables bar flows beside it, collapsing to a single line with an inline +N trigger that hugs the last visible pill. Expanding clears the float so the pills pack full-width on the lines beneath the time selector (no stair-stepping). Overflow pills are display:none but stay mounted (widths cached) so auto-selection and option fetching keep driving the panels. Also centre the variable info icon, give the pills a visible --l3-border (and drop the single-select's stray inner border so it matches), and replace the toolbar's fuzzy drop shadow with a token hairline. * feat(dashboard-v2): section title modal & scroll to the new section New section now opens a title-entry modal instead of inserting a default-named section, and the view scrolls the freshly created section into view once the refetch renders it. Generalise the rename modal into a shared SectionTitleModal reused by both create and rename. * test(dashboard-v2): cover the JSON editor hook and drawer useJsonEditor: seeding, live validation, format/reset, dirty tracking, apply (no-op when clean/invalid, PUTs the narrowed body, error handling) and re-seed on re-open. JsonEditorDrawer: toolbar/footer wiring, validation text, Apply enablement, editor changes and Cmd/Ctrl+Enter — with Monaco and the hook mocked. * refactor(dashboard-v2): extract generic useInlineOverflowCount hook Address review on the variables bar: generalise the single-line overflow measurement into hooks/useInlineOverflowCount (container of data-overflow-item children, with gap/reserveWidth/enabled options) so it's reusable elsewhere, and clarify the internal variable names (container/itemWidths/availableWidth/etc.). * refactor(dashboard-v2): use descriptive names in useInlineOverflowCount Replace single-letter/abbreviated locals (el, i, w, width/widths) with itemElement/index/itemWidth/cachedWidth(s) inside the measure loop. |
||
|
|
a483ef81a4 |
feat(authz): add transaction groups JSON schema (#11827)
* feat(authz): add transaction group schema and validations * fix(authz): drop constant errorFormat param from wrapValidationError unparam flagged wrapValidationError's errorFormat parameter since all call sites passed the same "%s: %s". Inline the format and trim the argument at each call site. No behavior change. * feat(authz): better error handling * chore(authz): suffix generated web settings schema with .schema.json Rename webSettings.json to webSettings.schema.json to follow the JSON Schema file-naming convention and match transactionGroups.schema.json. Updates the generator output path, the json2ts input + banner in package.json, and the generated banner comment. * feat(authz): add schema titles |
||
|
|
b9c107a851 |
fix(dashboards-v2): stop infinite render loop on dashboards with no variable selections (#11841)
selectVariableValues returned an inline `{}` fallback whenever a dashboard had
no stored selections. Zustand reads selectors through useSyncExternalStore,
which compares snapshots with Object.is, so a fresh object every call reads as a
perpetually-changed snapshot and React re-renders without end ("Maximum update
depth exceeded").
This surfaced specifically on fresh/empty dashboards: when a dashboard has
variables, the seeding effect in useVariableSelection populates the store with a
stable object and the loop never starts; with no variables that effect
early-returns, the entry stays undefined, and the selector mints a new `{}` on
every render. VariablesBar renders null in that case, but its hook still
subscribes, so the loop fires anyway.
Return a single module-level empty map so the snapshot is referentially stable.
|
||
|
|
5f6cc4c297 |
feat(data-export): support client-provided offset in export_raw_data API (#11825)
* feat: add support for offset in export api
* chore: add tests similar to limit
* Remove unnecessary tests
This reverts commit
|
||
|
|
69e4c3c6f3 |
chore(querier): route metric reads to buffer/reduced tables behind a flag (#11801)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
Fixes https://github.com/SigNoz/engineering-pod/issues/5341 |
||
|
|
bc8c36095c |
fix: do not warn filter variables as missing keys (#11835)
* fix: do not warn filter variables as missing keys Fixes https://github.com/SigNoz/engineering-pod/issues/5481 * chore: add regression test |
||
|
|
385135ba6c |
chore: add @H4ad as frontend codeowner for authz, members and service accounts (#11834)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
ea4ac08666 |
feat(deprecate): install script and promote foundry (#11811)
* feat(signoz): deprecate install script * feat(signoz): include kind in migration doc * feat(deprecation): remove legacy files and update migration guide * feat(deprecation): update readme, no docker compose reference * feat(deprecation): improved instructions * feat(deprecation): updating docs based on feedback * feat(deprecation): typos and redundant lines * feat(deprecation): include checklist and update references * feat(deprecation): restore install script * feat(deprecation): include link in script |
||
|
|
65cdf8b74d | feat(user): add delete user API (#11833) | ||
|
|
a4ff4093cd |
feat(dashboard-v2): variable settings editor UX polishes (#11775)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(dashboard-v2): variable model, adapters, validation & cycle detection * feat(dashboard-v2): variable editor building-block components * feat(dashboard-v2): variable form with type tabs & per-type fields * feat(dashboard-v2): variables list with drag reorder & inline delete * refactor(dashboard-v2): migrate variables bar to the overhauled model |
||
|
|
b2acf3e856 |
feat(dashboards-v2): config pane + section editors (#11770)
* feat(dashboards-v2): panel query hook with pagination and time window * refactor(dashboards-v2): trim comment noise and use JSDoc for function docs Reduce over-commenting flagged in review across the V2 dashboard code: remove comments that restate the code, shrink verbose blocks to a line, and keep only the non-obvious "why". Function/helper docs are written as JSDoc; inline implementation notes stay as line comments. * fix(dashboards-v2): harden list pagination against bad inputs Clamp the page size and offset to finite, positive values before deriving pageIndex/canNext so the pager can never produce NaN/Infinity/negative state, and ignore a non-positive setPageSize so the size state stays valid. canNext now uses `rowCount >= pageSize` to also cover an over-fetch. Add edge-case tests: empty/non-raw response, full vs partial page, nextCursor, goNext advancing the page, and a rejected zero page size. * feat(dashboards-v2): config pane shell with reusable form controls * feat(dashboards-v2): chart panel section editors * feat(dashboards-v2): thresholds section editor with per-variant rows * refactor(dashboards-v2): address config-pane review feedback - Drop unnecessary optional chaining on the always-present panel spec (display / plugin / data); type the formatting cast via PanelFormattingSlice. - Rename the section-lens read/write to get/update (+ slice helpers). - Derive the histogram NumericBound from the buckets DTO. - Use userEvent (via tests/test-utils) in the Axes/Buckets/Thresholds tests. - Use the SigNoz Button for the legend-color Reset action. * feat(dashboards-v2): table panel (#11771) * feat(dashboards-v2): table panel renderer with record-table prep * feat(dashboards-v2): resizable, persisted table columns * fix(dashboards-v2): keep clickhouse table columns distinct A scalar/table panel backed by a clickhouse_sql query collapsed every value column onto the query name: getColName/getColId had no clickhouse handling, so all value columns resolved to the query name ("A") and the row builder overwrote each cell with the last column's value. clickhouse_sql queries carry no aggregation metadata but the response column holds the user's real SQL alias in col.name. Thread the request's clickhouse_sql query names through, and name/key those columns by col.name so each stays distinct. Ports the V2 half of the merged V1 fix (#11794). * feat(dashboard-v2) - list panel (#11766) * feat(dashboards-v2): prepare V5 raw tables for the list panel * feat(dashboards-v2): list panel kind (logs/traces) with row detail * feat(dashboards-v2): list columns editor with datasource column switch * feat(dashboards-v2): move list columns editor below the query builder Replace the config-pane Columns section with a dnd-kit reorderable editor rendered beneath the query builder (V1 parity); sanitize selectFields to the field-key DTO so saved columns drop non-contract keys (isIndexed). * style(dashboards-v2): format list panel header with oxfmt * refactor(dashboards-v2): address list-panel PR review feedback - type the telemetry signal as TelemetrytypesSignalDTO (enum) and drop the raw-string comparisons across the list panel renderer, columns, row interaction, prep util, and the columns-switch hook - make prepareRawTable's selectFields a required array; make the log drawer's selectedTab always defined (defaults to OVERVIEW) - read/write the list spec via spec.plugin.spec (plugin is non-optional) - move isPlainObject (lodash) / coerceToString / toFiniteNumber out of rawRowToILog into shared utils - replace the columns editor's hand-built popover + native buttons with @signozhq/ui Button and a searchable Combobox - switch ListColumnsEditor tests to userEvent; trim verbose comments * refactor(dashboards-v2): de-duplicate panel cell + column-unit helpers - collapse the per-panel stringifyCell copies onto the shared coerceToString util (list + table column builders) - extract the column-unit resolver to Panels/utils/getColumnUnit; the table renderer and the editor's column options now share one implementation, aligning the editor onto the renderer's "empty entry = no unit" semantics - export a single TableRowData type from tableColumns (with the antd key) instead of two divergent local copies * refactor(dashboards-v2): clean up comments across ListPanel components * fix(dashboards-v2): drop duplicated list-pagination test block The `describe('list pagination')` block in usePanelQuery.test.tsx was duplicated byte-for-byte, tripping oxlint sonarjs(no-identical-functions) on the repeated rawResponse/withResponse helpers and failing lint CI. |
||
|
|
949d18f028 |
feat(dashboards-v2): panel editor foundation + qb/perses adapter (#11769)
* feat(dashboards-v2): pure-V5 perses query adapter and request builder * feat(dashboards-v2): panel query hook with pagination and time window * refactor(dashboards-v2): per-kind panel definitions and registry * feat(dashboards-v2): role and kind-gated panel actions with header chrome * feat(dashboards-v2): panel editor route with live preview and query builder Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(dashboards-v2): make the editor dirty-check immune to query re-serialization * fix(dashboards-v2): persist raw/list panels as a bare BuilderQuery * feat(dashboards-v2): optional footer slot below the query builder * refactor(dashboards-v2): render the editor preview through the shared panel body The editor preview duplicated PanelBody's loading/error/renderer state machine. Delegate to PanelBody so the preview is the production render path, differing only by panelMode (DASHBOARD_EDIT) and the forwarded server pager. PanelBody's panelMode and dashboardPreference become optional (the preview has no dashboard-wide preferences), and its error state now surfaces the backend message via panelStatusFromError instead of the raw axios "status code 4xx". * feat(dashboards-v2): richer panel status popover for errors and warnings Replace the plain status tooltip with a card: variant-coloured icon, the error/warning code and message, an optional Open Docs link, a MESSAGES count pill, and the per-item message list. Hosted in @signozhq/ui TooltipSimple with its padding/width cap stripped so the card owns its own layout. Bump the header actions gap so the status icon sits clear of its neighbours. * refactor(dashboards-v2): address panel-editor foundation PR review - fix failing lint: drop the unused Typography import in PanelStatusContent - drop redundant optional chaining on the required spec/plugin (usePanelQuery, PanelEditor index, HistogramPanel sections) - move ComparisonThresholdShape into types/threshold - derive PanelActionId from keyof PanelActionCapabilities - fold the per-kind header search flag into actions (drop PanelHeaderControls) - default PanelHeader searchTerm to '' - drive the editor's discard prompt through useConfirmableAction - trim over-verbose comments; PanelHeader test uses userEvent * refactor(dashboards-v2): trim comment noise and use JSDoc for function docs Reduce over-commenting flagged in review across the V2 dashboard code: remove comments that restate the code, shrink verbose blocks to a line, and keep only the non-obvious "why". Function/helper docs are written as JSDoc; inline implementation notes stay as line comments. * fix(dashboards-v2): harden list pagination against bad inputs Clamp the page size and offset to finite, positive values before deriving pageIndex/canNext so the pager can never produce NaN/Infinity/negative state, and ignore a non-positive setPageSize so the size state stays valid. canNext now uses `rowCount >= pageSize` to also cover an over-fetch. Add edge-case tests: empty/non-raw response, full vs partial page, nextCursor, goNext advancing the page, and a rejected zero page size. * refactor(dashboards-v2): localize the perses adapter's envelope casts The adapter bridges the generated query-envelope DTO (enum type, undiscriminated spec) and the hand-written QueryEnvelope (typed spec) the V1 mappers consume — nominally distinct types for the same wire shape, so a structural cast is unavoidable. Confine those casts to two named `*Envelopes` converters and a builder-query predicate, keep an explicit typed checkpoint for the composite spec, and correct the stale "Orval erases spec to unknown" comments. --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
8180436432 | chore: update code owner (#11821) | ||
|
|
ad243b88aa |
feat: send all data for trace list api (#10583)
* chore: send all data for trace list api * chore: add integration tests * chore: fix tests * chore: add comment Co-authored-by: Tushar Vats <tushar@signoz.io> * fix: retain existing behaviour * fix: add changes * fix: linting issues * fix: py-fmt * fix: restrict merging to only span data * fix: address comments * fix: address comments * fix: send parsed events and links * fix: remove unnecessary tests * fix: lint issues * fix: send all data for trace operators as well * fix: lint issues * fix: move tests to the same file * fix: tests * fix: lint * fix: comment * fix: lint --------- Co-authored-by: Tushar Vats <tushar@signoz.io> |
||
|
|
3369ed7172 |
chore: add flag for ai observability (#11806)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: add flag for ai observability * chore: add enable prefix |
||
|
|
a98b84c1cd |
feat(user): accept custom roles in user invite (#11802)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(user): accept custom roles in user invite * feat(user): use binding package * feat(user): more domain restrictions * feat(user): use suggestions * feat(user): use suggestions * feat(user): use pointer postable role |
||
|
|
4dda1e0ab5 |
feat(dashboards): views-first V2 dashboards list with filters, saved views, and tabbed new-dashboard modal (#11682)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(dashboard-v2): add persisted views store, types, and filter-query helpers * feat(dashboard-v2): add filter state hook and filter zone * feat(dashboard-v2): add views rail with save and dirty-state flow * feat(dashboard-v2): add list status bar with rail collapse * feat(dashboard-v2): add favorites and recently-viewed to dashboard rows * feat(dashboard-v2): add persisted visible-columns store * feat(dashboard-v2): add tabbed new-dashboard modal (blank / template / import) * feat(dashboard-v2): full-width skeleton loading state * feat(dashboard-v2): compose views, filters, and inline metadata into the list page * chore(dashboard-v2): remove superseded create dropdown and standalone modals * feat(dashboard-v2): add duplicate (clone) action to dashboard rows * refactor(dashboards-v2): move toPostableTags to utils next to its inverse * refactor(dashboards-v2): use signoz Button for view rows & delete action * refactor(dashboards-v2): rename filterStatesEqual to areFilterStatesEqual |
||
|
|
749943abe4 |
feat(dashboard-v2): runtime variable selection (#11646)
* feat(dashboard-v2): variable-selection store, dependency graph & sort helpers * feat(dashboard-v2): runtime variables bar & per-type selectors * feat(dashboard-v2): mount variables bar in dashboard toolbar |
||
|
|
4f51ee37ba | fix: modularize query range function (#11774) | ||
|
|
d5617657b5 |
fix(dashboard): clickhouse table panel collapses value columns onto query name (#11794)
* fix(dashboard): clickhouse table panel collapses value columns onto query name
A table/scalar panel backed by a ClickHouse SQL query rendered every
aggregation column with the header "A" (the query name) and the same value in
each, while only the group columns (e.g. service.name) showed correctly.
Root cause: the scalar-response column-naming utils derive a value column's
display name and row-data key from request-side aggregation metadata, which
only exists for builder_query envelopes. A clickhouse_sql query has none, so
getColName/getColId fell through to the query name for every value column.
Sharing one id ("A") collapsed all value columns onto a single row key, so the
last column written (total_requests) overwrote the rest.
The backend already returns correct data: readAsScalar names each ClickHouse
SELECT column with its real SQL alias and a unique aggregationIndex. This is a
frontend-only consumption fix.
Fix: when a column belongs to a clickhouse_sql query (determined from the
request's query type, not a name heuristic), name and key it by the response
column's real SQL alias. Builder queries are unchanged; formulas/promql keep
the legend || queryName fallback. Applied to both the V1 converter
(convertV5Response.ts, the live table-panel path) and the V2 path
(prepareScalarTables.ts).
* chore: minor type fix
|
||
|
|
5600576722 | chore: add search and override filters in pricing model list api (#11735) | ||
|
|
f84b818552 |
feat(authz): add unified role APIs (#11798)
* feat(authz): add unified role APIs * feat(authz): update openapi spec * feat(authz): restructure the chunked write to the openfga server * feat(authz): fix the order for minimal gitdiff * feat(authz): update openapi spec * feat(authz): fix the create API * feat(authz): better error messages |
||
|
|
4147c5c4bd |
refactor(alerts): move channels to alerts (#11641)
Some checks failed
build-staging / prepare (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
* refactor(sidenav): add support for routes with ?key=value * refactor(channels): move to be under alerts * test(private): add test to cover redirects of channels * chore(codeowners): move channels to pulse frontend * chore(sidenav): add todo to remove the menu from sidebar * test(jest): add transform ignore due to import of react-markdown * test(ai-assistant): fix redirect link of notification channels |
||
|
|
e1cb822091 |
chore(deps): bump @grafana/data and pin transitive deps to patched versions (#11796)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
- @grafana/data ^11.6.14 -> ^11.6.15 - http-proxy-middleware 4.0.0 -> 4.1.1 (dep + resolution) - form-data 4.0.4 -> 4.0.6 - tmp 0.2.4 -> 0.2.7 - add js-cookie ^3.0.7 resolution pin (forces react-use's transitive copy to a patched range) Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
b8567664da |
refactor(quick-filters): split checkbox into multiple files (#11768)
Some checks failed
build-staging / prepare (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
* refactor(quick-filters): extract checkbox value fetching into hook * refactor(quick-filters): extract checkbox query algebra into pure module * refactor(quick-filters): extract checkbox glue hooks * refactor(quick-filters): split checkbox renderers into components |
||
|
|
643aac4424 | fix(alerts): missing fields when duplicating via edit alert (#11767) | ||
|
|
2cf7ef93ea |
chore: send warning instead of error for unseen metrics and missing (… (#11754)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: send warning instead of error for unseen metrics and missing (metric, key) * chore: update integration test * chore: fix integration test * chore: fix test * chore: add unit test for missing key |
||
|
|
dba827ee33 |
feat(infra-monitoring): namespace+cluster group by for PVC monitoring, cluster group by for namespace monitoring (#11739)
* chore: deployments -> add default namespace group by * chore: added integration tests for statefulsets * chore: namespace group by for jobs * chore: namespace group by for daemonsets * chore: added group by clustername for all workloads and integration tests for the same * chore: fix py fmt for integration tests * chore: added group by namespace, cluster for pvcs * chore: added cluster name default group by for namespaces monitoring |
||
|
|
467a556062 |
feat(dashboard-v2): redesign public dashboard publish drawer (#11748)
* feat(dashboard-v2): redesign public dashboard publish drawer Rework the Publish tab to the status-strip design (Claude Design handoff): - a status strip with a lock/globe medallion, plain-language line and a Private/Public badge - a public-link field shown in both states — a dashed placeholder while private, the live URL with copy / open actions once published - an "Enable time range" switch + default-range select, and a quiet inline variables caveat - actions grouped in a footer (Publish / Unpublish + Update) Split each piece into its own folder with a co-located *.module.scss, drop the dead time-range constants in favour of the shared RelativeDurationOptions, and render the range dropdown without a portal (z-index + trigger width) so it shows correctly inside the settings drawer. * feat(dashboard-v2): fetch public dashboard meta once, globally Move the public-sharing GET out of the publish drawer: a shared usePublicDashboardMeta hook (keyed by dashboard id, license-gated, kept warm via staleTime) owns the request, the toolbar mounts it with the dashboard to drive the public-access badge, and the drawer's usePublicDashboard reads the same cache instead of issuing its own call. Mutations invalidate the key so all consumers refresh together. Also rename the variables Callout to Hint, and drop redundant font-family: Inter / font-weight: 400 from the publish-drawer styles (Inter is the inherited default). |
||
|
|
a8f6b8187e |
chore(release): bump to v0.129.0 (#11773)
Co-authored-by: primus-bot[bot] <171087277+primus-bot[bot]@users.noreply.github.com> |
||
|
|
03796f012f |
chore: bumping agent version to v0.0.13 (#11757)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
a06900bbff | chore: added fix for infinite query call on services page (#11755) | ||
|
|
b50933d622 |
chore(trace-details): remove flamegraph v2 API (#11629)
* chore: remove flamegraph v2 since we've moved to v4 now Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: remove orphaned helpers after v2 waterfall and flamegraph removal Drop GetSpansForTrace, cacheForTraceDetail, fluxIntervalForTraceDetail from clickhouseReader — all were only used by the deleted v2 handlers. Also remove the orphaned model.Span and model.Event types, and clean up the cacheForTraceDetail initialization from server.go. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: update ee/query-service NewReader call after v2 cleanup Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: format whitespacing --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
8bf649a3a5 |
feat(dashboards-v2): panel rendering system (pure-V5 data path, renderers, panel chrome) (#11639)
* feat(dashboards-v2): panel type system & shared chart utilities * feat(dashboards-v2): usePanelQuery data-fetching hook * feat(dashboards-v2): TimeSeriesPanel renderer * feat(dashboards-v2): BarChartPanel renderer * feat(dashboards-v2): HistogramPanel renderer * feat(dashboards-v2): PieChartPanel renderer * feat(dashboards-v2): panel plugin registry * feat(dashboards-v2): panel status popover (error/warning surfacing) * feat(dashboards-v2): panel chrome - header, body, interactions & grid wiring * chore(dashboards-v2): dashboards-list-v2 query-param sort/order adjustments * feat(dashboards-v2): number panel kind + registry entry * fix(dashboards-v2): cap bottom legend height at 30% of the panel The bottom-legend reservation was capped only at min(2 rows, 80px) with no relation to the container height, despite the helper's doc promising a %-of-container cap. On short grid panels the legend kept its full slice and the chart — the pie donut especially — collapsed to a sliver. - calculateChartDimensions now also caps the bottom legend at 30% of the container height (mirroring the RIGHT-legend width cap). - Drop the legend grid row-gap so the capped height isn't overrun. - Add the previously-missing tests for calculateChartDimensions, including the short-container cap. echo "--- commit 1 done ---" && git log --oneline -1 echo "--- remaining ---" && git status --short * fix(dashboards-v2): prevent pie donut and labels from clipping The donut used a flat radius = 0.35 * min(w,h) with leader labels anchored at 1.3 * radius, leaving only ~0.045 * size between the label anchor and the SVG edge — so on small panels the top/bottom labels (and a stray container padding under border-box) clipped. - getDonutGeometry now solves the radius back from the box half-extent minus a fixed label allowance, so the label anchor always lands a constant 22px inside the edge regardless of panel size — extracted as a pure, tested helper with a shared label-ratio constant (no drift with getArcGeometry) and a DonutGeometry type. - Align the pie legend wrapper padding with ChartLayout's. - Tests for getDonutGeometry (anchor stays in-box, derived radii, smaller axis wins, no negative radius). echo "--- commit 2 done ---" && git log --oneline -3 echo "--- remaining ---" && git status --short * refactor(dashboards-v2): address PR review feedback Tightening + structure changes from review of #11639: - types: make rendererProps `panel`/`data` required and `syncMode` non-optional (None is the off-state); `Panel.panel` required with orphan layout items guarded in SectionGrid; key the panel interaction map by PanelKind; require `requestPayload` in useGetQueryRangeV5. - panel chrome: split the unknown-kind path into UnsupportedPanelBody so PanelBody only runs with a resolved renderer; rename chartBody -> chartContainer; move PanelHeader/PanelBody into their own folders with dedicated scss (Panel.module.scss trimmed to .panel). - panel status: normalize query failures via convertToApiError (the generated client rejects with a raw AxiosError, so the old isAPIError guard never matched and dropped the backend code/message); drop an unnecessary useMemo; docs link -> Typography.Link. - registry: PascalCase aliases; Panels/index.ts -> registry.ts. - utils: extract selectionPreferences out of baseConfigBuilder; split chartAppearanceMappings into chartAppearance/{enumMaps,resolvers}; move each kind's buildConfig under utils/. - renderers: render NoData on an empty result set. - dashboards-list: drop redundant sort/order casts. echo "=== result ==="; git log --oneline -3; echo "--- working tree ---"; git status --short * refactor(dashboards-v2): use @signozhq/ui tooltip for panel status Replace the antd Popover in the panel header status indicator with @signozhq/ui TooltipSimple. Relies on the global TooltipProvider mounted in AppLayout; the PanelHeader test wraps renders in TooltipProvider since the radix tooltip needs that ancestor in isolation. * refactor(dashboards-v2): derive PanelKind from generated contract Type panel kinds off DashboardtypesPanelPluginKindDTO instead of a hand-written union, keeping the generated API contract as the single source of truth. getPanelDefinition and PANEL_KIND_TO_PANEL_TYPE now take PanelKind directly, dropping the `as PanelKind` casts at their call sites. Renderers drop the defensive optional chaining / `?? {}` fallbacks the render boundary already guarantees, and panelDef is renamed to panelDefinition for clarity. * chore: pr reviews fixes |
||
|
|
9150c2ac87 |
feat: introduce dashboard views for list dashboards page (#11465)
* feat: functional unique index in sql schema * fix: only ascii in regex * fix: use sync tags method in update * fix: use sync tags method in update * fix: correct the method name being called * chore: rename create method to createOrGet * chore: use tagtypestest package for mock store * chore: combine functional unique index with unique index * chore: move tag resolution to module * test: add unit tests for new idx type * feat: delete dashboard v2 API * chore: comment out tags unique index for now * chore: add a todo comment * chore: comment out unique index test * feat: add created at to tag relations * chore: comment out unique index test * chore: bump migration number * chore: remove uploaded grafana flag from metadata * Merge branch 'main' into nv/v2-dashboard-create * chore: revert idx generation to resolve conflicts * fix: use store.RunInTx instead of taking in sqlstore * fix: use binding package to get request * chore: move NewDashboardV2 to NewDashboardV2WithoutTags * chore: rename module to m * fix: add ctx needed in sqlstore * fix: remove sqlstore passage in ee pkg * chore: change dashboardData to dashboardSpec * feat: follow the metadata+spec key structure * feat: follow the metadata+spec key structure in open api spec * feat: v2 dashboard GET API (#11136) * feat: v2 dashboard GET API * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * chore: update api specs * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: fix build error * chore: revert all frontend changes * fix: remove public dashboard from get v2 call * chore: revert all frontend changes * fix: fix build errors post merge conflict resolution * feat: lock, unlock, create public, update public v2 dashboard APIs (#11167) * feat: lock, unlock, create public, update public v2 dashboard APIs * chore: update api specs * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * chore: revert all frontend changes * fix: fix build errors and remove v2 create/update public apis * chore: use v1 methods wherever possible * fix: use update v2 store method * chore: update frontend schema * chore: update frontend schema * chore: generate api specs * chore: generate api specs * feat: patch dashboard api (#11182) * feat: lock, unlock, create public, update public v2 dashboard APIs * feat: delete dashboard v2 API and hard delete cron job * feat: patch dashboard api * chore: update api specs * chore: update api specs * chore: update api specs * chore: remove delete related work * fix: add examples of structs for value param in param description * test: unit test fixes * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * test: key value tags in test * fix: build error in patch module method * fix: build error in Apply method * fix: use sync tags method in update * fix: fix build errors * fix: fix all patch application tests * chore: add more mapper methods * fix: fix build errors * chore: generate api specs * fix: update migration numbering * fix: add missing request struct in list api * fix: remove hasMore from list response * chore: bump migration number * fix: send total count in response + bug fixes * fix: add source for v2 dashboards * chore: incorporate source * chore: incorporate source in api spec * chore: incorporate source * fix: remove system dashboards from list v2 response * fix: add some required fields * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 api specs * fix: remove unused param in constructor * fix: improve api descriptions * fix: remove unneeded comment * chore: increase MaxTagsPerDashboard to 10 * fix: set display name in unmarshal json * chore: remove integration test for now (will add along with list api) * feat: add validation on dashboard name * test: fix build errors and tests based on name related changes * chore: bump migration number * chore: generate api specs * fix: fix tests based on name related changes * fix: dont include full data in list response * fix: add quotes around tag relation kind * chore: bump migration number * fix: fix post merge build and spec errors * fix: correct convertor method name * test: add unit tests for type conversions * chore: remove enum def of threshold comparison operator * feat: add flag to generate unique name in backend * chore: generate api specs * chore: make tags required in postable * fix: build error fix * chore: bump migration number * feat: introduce dashboard views for list dashboards page * fix: fix build error in test after merge conflict * fix: remove unused store method * fix: remove unused module methods * fix: use v1 store update method * fix: change data to spec in api param description * chore: add back accidentally removed tests * chore: update api spec * chore: bump migration number * feat: delete dashboard v2 API (#11299) * feat: delete dashboard v2 API * fix: fix post merge build and spec errors * fix: address review comments * chore: generate frontend api spec * fix: add missing name fetch in listv2 store method * fix: change title to name in api description * fix: add all error codes for new apis * test: change data to spec in unit tests * fix: remove join to public dashboard table in list call * fix: use valuer string for list order and sort * test: integration test and fixes found through it * chore: use same jsonpatch package as done in zeus * chore: remove JSONPatchDocument and use patchable everywhere * fix: make remove idempotent in patch * chore: separate file for patch types * chore: better error passage * fix: remove extra decodePatch calls * fix: fix post merge build and schema errors * fix: remove omitempty * chore: bump migration number * fix: remove user auditable * chore: dont pass email to create and update methods * chore: dont pass email to create and update methods * chore: regenerate api specs * chore: rearrange * fix: return better err * chore: add all err codes in api spec * chore: rearrange * fix: use must new org id * fix: proper error passage * chore: rename updateable to updatable * fix: use must new org id * fix: use must new org id * feat: include list of all dashboard tags in list api response * fix: remove wrong api description msg * fix: use must method for user id as well * chore: add nolint comment * fix: add missing image field in list response * chore: regenerate api specs * chore: regenerate api specs * fix: make GettableTag a defined type instead of an alias * fix: dont allow system dashboards to be deleted * fix: remove public filter from visitor * chore: use go sqlbuilder * fix: use ESCAPE literal in contains and like operators * fix: use correct perses package in list v2 file * feat: change pinned dashboard table to user dashboard preference table * fix: delete preferences on dashboard delete * test: add integration test for pinning * fix: wrap naked errors * fix: integration dashboards should not be deletable either * fix: remove org column in preferences and add foreign key to users table * chore: add fk from prefs to dashbaord table * chore: remove outer parenthesis removal function * test: add unit test to ensure that all reserved keys have handlers * fix: proper url for pin apis * fix: delete preferences on user deletion * test: address integration test comments * test: change limit * fix: revert the check in can delete * fix: remove unit test from ee package * fix: move list filter to impl to avoid db impl logic in types * chore: code movement * feat: add a pin free list dashboards api * fix: update api specs * fix: use request query in api defs for list apis * chore: explicitly mark request as nil in list apis * fix: remove extra noop assignment * chore: remove separate gettable view typedef * chore: rearrange structs * fix: cover errors, fix column type, add tests * test: add unit tests for dashboard view validations * fix: move view create/edit/delete to edit access * fix: move view create/edit/delete to edit access * fix: change url and fix api descriptions * chore: add query max length check for views * fix: wrong spelling for UpdatableDashboardView * fix: extract common validation logic between list api and saved views * test: add integration tests for dashboard views * test: add similar tests for dashboards as well * fix: dont trim name in views * fix: add integration test for trailing whitespace rejection * fix: return name required err for name with only spaces * test: fix python formatting * fix: generate api specs --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
78df13dabd |
perf: reuse label maps and index series by variable in formulas (#11529)
* perf: reuse label maps and index series by variable in formulas * perf: switch to simple worker pool * perf: use a pointer free backing array for result values --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
eb4b11295b |
feat: add clone dashboard API for perses dashboards (#11742)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: add clone dashboard API for perses dashboards * fix: allow integration dashboards to be cloned * test: add integration test for cloning of integration dashboards * test: fix lint in test * test: revert the integration dashboard test |
||
|
|
bdb0091c87 |
feat: use empty suggestions api for empty ui state of ai assistant (#11744)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: use empty suggestions api for empty ui state of ai assistant * feat: add useResolvePageType hook * feat: update resolver to use all from DTO * feat: update getAutoContexts and resolvePageType to omit auto-context for homepage and infra |
||
|
|
5198530056 |
chore(traces): remove legacy trace view toggle and redirect /trace-old to /trace (#11732)
* chore: remove legacy trace view redirect * refactor: review changes --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
6a4e694a34 |
fix: AI Assistant improvements (#11722)
* fix: wire open view and open channel flows * feat: show current alert name in context in alert details page * feat: links should open in new tab * fix: show Noz in dashboard edit panel view * fix: reduce size of fixed footer when assistant side panel is open * feat: streamline error handling with resolveAssistantErrorMessage utility * feat: hide suggestions and share in edit dashboard panel |
||
|
|
bd9a6cc17d | chore: bump cloud integration agent version to v0.0.12 (#11741) | ||
|
|
51f180453e |
feat(infra-monitoring): add default group by namespace name, cluster name for workloads. (#11716)
* chore: deployments -> add default namespace group by * chore: added integration tests for statefulsets * chore: namespace group by for jobs * chore: namespace group by for daemonsets * chore: added group by clustername for all workloads and integration tests for the same * chore: fix py fmt for integration tests |
||
|
|
2ad5cb19c3 | chore(sentry): bump packages to v10 & v5 for vite-plugin (#11723) | ||
|
|
5d711377ec |
feat: adding support for Azure DB services (#11679)
* feat: adding support for Azure SQL DB * refactor: adding missing metrics in data collected and panels in dash * feat: adding support for Azure SQL DB Managed Instances * feat: generating openapi spec * feat: adding nosql and cache services in azure integration |
||
|
|
c5d0fd8966 | chore(oxc): bump oxfmt and oxlint/tsgolint to 0.54 and 1.69/0.23 (#11724) | ||
|
|
ed04ff09ff |
chore(css-modules): add good practices for writing css module files (#11587)
* chore(css-modules): add good practices for writing css module files * fix(guide): add more guidelines based on notion doc * fix(pr): address pr comments |
||
|
|
e1e9d516ac |
chore: add firing alert count and system/k8s metric existance status (#11730)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
58b55c922d |
fix(openapi): omit content type for responses without a body (#11720)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
ServeOpenAPI's nil-response branch still passed WithContentType, so any route
with Response == nil but a ResponseContentType set (notably 204 No Content)
emitted a content block in the generated spec. Clients then try to decode an
empty body and fail — e.g. "unexpected end of JSON input" on
DELETE /api/v1/service_accounts/{id}.
Omit the content type when Response is nil. Regenerate docs/api/openapi.yml (18
bodyless responses drop their content block) and the frontend orval client.
Signed-off-by: grandwizard28 <vibhupandey28@gmail.com>
|
||
|
|
629ea3b8be |
feat: extend error responses with new error struct (#11542)
Some checks failed
build-staging / js-build (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: extend error responses with new error struct
* fix: enriched error for dashboard api
* fix: merge issues
* fix: reverted dashboards changes and add for cloud integrations
* fix: delete file
* fix: add back file
* fix: added a helper
* fix: removed invlaid referencess
* fix: generate openapi
* fix: keeping additional along with suggestion
* Revert "fix: keeping additional along with suggestion"
This reverts commit
|
||
|
|
287b60cbe6 |
feat(statsreporter): expose collected stats via GET /api/v1/stats (#11698)
* feat(statsreporter): expose collected stats via GET /api/v1/stats Extract per-org stats collection out of the analytics reporter into an always-on Aggregator (collector fan-out + telemetry-store counts) shared by the reporter and a new HTTP handler. The GET /api/v1/stats endpoint returns the caller's org stats regardless of whether scheduled reporting is enabled. * refactor(statsreporter): collect telemetry stats via the querier Move the trace/log/metric row-count and last-observed queries out of the stats aggregator and into the querier, which now implements statsreporter.StatsCollector. The aggregator becomes a pure collector fan-out and no longer depends on telemetrystore; the querier is wired in as one of the stats collectors. * chore: regenerate openapi spec and frontend client Backend docs/api/openapi.yml gains the GET /api/v1/stats (GetStats) operation; the Orval client gains a useGetStats hook and GetStats200 type. * chore: remove comment from querier Collect * fix(statsreporter): use MustNewUUID for org from claims Claims come from validated auth context, so the org UUID is guaranteed valid; drop the dead NewUUID error branch. * fix(flagger): use MustNewUUID for org from claims Claims come from validated auth context, so the org UUID is guaranteed valid; drop the dead NewUUID error branch. * docs(contributing): note MustNewUUID for IDs from claims * perf(querier): combine count and last-observed into one query per signal Each signal's COUNT(*) and max(timestamp) scan the same table, so fetch both in a single query — 3 queries instead of 6. Same emitted keys and empty-table guard. |
||
|
|
e206625e5f |
feat(dashboard-v2): public dashboard settings section (#11696)
* feat(dashboard-v2): add public dashboard settings section
Add a self-contained Public Dashboard settings section for the V2 dashboard
drawer, reusing the existing /dashboards/{id}/public endpoint via the generated
client (useGetPublicDashboard / useCreatePublicDashboard /
useUpdatePublicDashboard / useDeletePublicDashboard).
Broken into small components: a usePublicDashboard hook owning the query, the
create/update/delete mutations and the time-range form state; plus presentational
status, settings-form, URL, callout and actions pieces. Publishing a dashboard
exposes a shareable URL and lets the viewer default time range be configured.
* feat(dashboard-v2): wire public dashboard tab in settings drawer
Render the Public Dashboard section in the Publish tab in place of the
placeholder, and drop the now-unused SettingsTabPlaceholder util (the Publish tab
was its last consumer).
* fix: format failure
|
||
|
|
4f3b7647d3 |
feat(infra-monitoring): v2 daemonsets integration tests (#11442)
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: added all tests * chore: fix for surfacing meta for pods custom group by * chore: added nodes integration test suite * chore: namespaces integration tests * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: added integration tests for clusters * chore: formatting changed * chore: formatting changed * chore: formatting changed * chore: added volumes integration tests * chore: added deployments * chore: added tests * chore: added integration tests for jobs api * chore: added integration tests for v2 daemonsets api * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align pods integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_pods_filter - combine bad attr/grammar tests into parametrized test_pods_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_pods_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_nodes_filter - combine bad attr/grammar tests into parametrized test_nodes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_nodes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_namespaces_filter - combine bad attr/grammar tests into parametrized test_namespaces_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_namespaces_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_clusters_filter - combine bad attr/grammar tests into parametrized test_clusters_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_clusters_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_volumes_filter - combine bad attr/grammar tests into parametrized test_volumes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_volumes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align deployments integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_deployments_filter - combine bad attr/grammar tests into parametrized test_deployments_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_deployments_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align statefulsets integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_statefulsets_filter - combine bad attr/grammar tests into parametrized test_statefulsets_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_statefulsets_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align jobs integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_jobs_filter - combine bad attr/grammar tests into parametrized test_jobs_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_jobs_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align daemonsets integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_daemonsets_filter - combine bad attr/grammar tests into parametrized test_daemonsets_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_daemonsets_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine pods integration tests logically - merge happy_path into test_pods_accuracy (datasets structurally identical); drop unused pods_happy_path.jsonl - merge groupby namespace/deployment into parametrized test_pods_groupby - merge orderby invariant + correctness + by-pod-name into test_pods_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_pods_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine nodes integration tests logically - merge happy_path into test_nodes_accuracy; drop unused nodes_happy_path.jsonl - merge orderby invariant + correctness + by-node-name into test_nodes_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_nodes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine namespaces integration tests logically - merge happy_path into test_namespaces_accuracy; drop unused namespaces_happy_path.jsonl - merge orderby invariant + correctness + by-namespace-name into test_namespaces_orderby - fold offset-beyond-total into test_namespaces_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine clusters integration tests logically - merge happy_path into test_clusters_accuracy; drop unused clusters_happy_path.jsonl - merge orderby invariant + correctness + by-cluster-name into test_clusters_orderby - fold offset-beyond-total into test_clusters_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine volumes integration tests logically - merge happy_path into test_volumes_accuracy; drop unused volumes_happy_path.jsonl - merge orderby invariant + correctness + by-pvc-name into test_volumes_orderby - fold offset-beyond-total into test_volumes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine deployments integration tests logically - merge happy_path into test_deployments_accuracy; drop unused deployments_happy_path.jsonl - merge orderby invariant + correctness + by-deployment-name into test_deployments_orderby - fold offset-beyond-total into test_deployments_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine statefulsets integration tests logically - merge happy_path into test_statefulsets_accuracy; drop unused statefulsets_happy_path.jsonl - merge orderby invariant + correctness + by-statefulset-name into test_statefulsets_orderby - fold offset-beyond-total into test_statefulsets_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine jobs integration tests logically - merge happy_path into test_jobs_accuracy; drop unused jobs_happy_path.jsonl - merge orderby invariant + correctness + by-job-name into test_jobs_orderby - fold offset-beyond-total into test_jobs_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine daemonsets integration tests logically - merge happy_path into test_daemonsets_accuracy; drop unused daemonsets_happy_path.jsonl - merge orderby invariant + correctness + by-daemonset-name into test_daemonsets_orderby - fold offset-beyond-total into test_daemonsets_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in pods filter tests - regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1 sample pattern from pods_value_accuracy.jsonl (CI-proven expected values) - test_pods_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in nodes filter tests - regenerate nodes_filter_dataset.jsonl so every node mirrors the acc-n1 sample pattern from nodes_value_accuracy.jsonl (CI-proven expected values) - test_nodes_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in namespaces filter tests - regenerate namespaces_filter_dataset.jsonl so every namespace mirrors the acc-ns-1 sample pattern (2 pods) from namespaces_value_accuracy.jsonl - test_namespaces_filter now asserts namespaceCPU/namespaceMemory per record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in clusters filter tests - regenerate clusters_filter_dataset.jsonl so every cluster mirrors the acc-cluster-1 sample pattern (2 nodes) from clusters_value_accuracy.jsonl - test_clusters_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in volumes filter tests - regenerate volumes_filter_dataset.jsonl so every PVC mirrors the acc-pvc-1 sample pattern from volumes_value_accuracy.jsonl (CI-proven expected values) - test_volumes_filter now asserts all 6 volume fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in deployments filter tests - regenerate deployments_filter_dataset.jsonl so every deployment mirrors the acc-dep-1 sample pattern (2 pods) from deployments_value_accuracy.jsonl - test_deployments_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in statefulsets filter tests - regenerate statefulsets_filter_dataset.jsonl so every statefulset mirrors the acc-ss-1 sample pattern (2 pods) from statefulsets_value_accuracy.jsonl - test_statefulsets_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in jobs filter tests - regenerate jobs_filter_dataset.jsonl so every job mirrors the acc-job-1 sample pattern (2 pods) from jobs_value_accuracy.jsonl - test_jobs_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in daemonsets filter tests - regenerate daemonsets_filter_dataset.jsonl so every daemonset mirrors the acc-ds-1 sample pattern (2 pods) from daemonsets_value_accuracy.jsonl - test_daemonsets_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes groupby + pod-phase tests with structure - merge pod_phase_counts_list_mode + _no_pods_on_node into parametrized test_nodes_pod_phase_counts ((dataset, node, filter, expected) cases) - rename groupby_cluster -> test_nodes_groupby, parametrize over k8s.node.name + k8s.cluster.name; adds the node-name-in-groupBy branch (nodeName populated, condition derived) that hosts/pods both cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces groupby with structure - rename groupby_cluster -> test_namespaces_groupby, parametrize over k8s.namespace.name + k8s.cluster.name; adds the namespace-name-in-groupBy branch (namespaceName populated) that hosts/pods/nodes all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters groupby with structure - rename groupby_cloud_provider -> test_clusters_groupby, parametrize over k8s.cluster.name + cloud.provider; adds the cluster-name-in-groupBy branch (clusterName populated) that hosts/pods/nodes/namespaces all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes groupby with structure - rename groupby_namespace -> test_volumes_groupby, parametrize over k8s.persistentvolumeclaim.name + k8s.namespace.name; adds the pvc-name-in-groupBy branch (persistentVolumeClaimName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align deployments groupby with structure - rename groupby_namespace -> test_deployments_groupby, parametrize over k8s.deployment.name + k8s.namespace.name; adds the deployment-name-in-groupBy branch (deploymentName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align statefulsets groupby with structure - rename groupby_namespace -> test_statefulsets_groupby, parametrize over k8s.statefulset.name + k8s.namespace.name; adds the statefulset-name-in-groupBy branch (statefulSetName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align jobs groupby with structure - rename groupby_namespace -> test_jobs_groupby, parametrize over k8s.job.name + k8s.namespace.name; adds the job-name-in-groupBy branch (jobName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align daemonsets groupby with structure - rename groupby_namespace -> test_daemonsets_groupby, parametrize over k8s.daemonset.name + k8s.namespace.name; adds the daemonset-name-in-groupBy branch (daemonSetName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
76ab0f25c0 |
feat(dashboard-v2): consolidate dashboard detail header, toolbar & settings (#11713)
* feat(dashboard-v2): consolidate dashboard page header & breadcrumbs Replace DashboardHeader/DashboardBreadcrumbs with a single DashboardPageHeader (title + image + breadcrumbs) under components/DashboardPageHeader. * feat(dashboard-v2): consolidate dashboard detail toolbar Fold the old DashboardDescription (title/meta) into a DashboardPageToolbar with DashboardInfo (inline-editable title, tags, public/lock badges), DashboardActions and the settings drawer; drop the separate DashboardMeta/DashboardTitle pieces. * feat(dashboard-v2): rename General settings to Overview with shared settings card Rename the General settings tab to Overview, extract DashboardInfoForm and a reusable SegmentedControl, and restructure the settings drawer tabs onto the shared settings-card layout. Publish tab stays a placeholder. * feat(dashboard-v2): wire consolidated header & toolbar into the container Render DashboardPageHeader + DashboardPageToolbar from DashboardContainer and drop the removed header/description wiring. |
||
|
|
59501ce4a7 |
feat(infra-monitoring): v2 jobs integration tests (#11441)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: added all tests * chore: fix for surfacing meta for pods custom group by * chore: added nodes integration test suite * chore: namespaces integration tests * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: added integration tests for clusters * chore: formatting changed * chore: formatting changed * chore: formatting changed * chore: added volumes integration tests * chore: added deployments * chore: added tests * chore: added integration tests for jobs api * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align pods integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_pods_filter - combine bad attr/grammar tests into parametrized test_pods_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_pods_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_nodes_filter - combine bad attr/grammar tests into parametrized test_nodes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_nodes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_namespaces_filter - combine bad attr/grammar tests into parametrized test_namespaces_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_namespaces_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_clusters_filter - combine bad attr/grammar tests into parametrized test_clusters_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_clusters_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_volumes_filter - combine bad attr/grammar tests into parametrized test_volumes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_volumes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align deployments integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_deployments_filter - combine bad attr/grammar tests into parametrized test_deployments_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_deployments_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align statefulsets integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_statefulsets_filter - combine bad attr/grammar tests into parametrized test_statefulsets_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_statefulsets_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align jobs integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_jobs_filter - combine bad attr/grammar tests into parametrized test_jobs_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_jobs_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine pods integration tests logically - merge happy_path into test_pods_accuracy (datasets structurally identical); drop unused pods_happy_path.jsonl - merge groupby namespace/deployment into parametrized test_pods_groupby - merge orderby invariant + correctness + by-pod-name into test_pods_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_pods_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine nodes integration tests logically - merge happy_path into test_nodes_accuracy; drop unused nodes_happy_path.jsonl - merge orderby invariant + correctness + by-node-name into test_nodes_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_nodes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine namespaces integration tests logically - merge happy_path into test_namespaces_accuracy; drop unused namespaces_happy_path.jsonl - merge orderby invariant + correctness + by-namespace-name into test_namespaces_orderby - fold offset-beyond-total into test_namespaces_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine clusters integration tests logically - merge happy_path into test_clusters_accuracy; drop unused clusters_happy_path.jsonl - merge orderby invariant + correctness + by-cluster-name into test_clusters_orderby - fold offset-beyond-total into test_clusters_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine volumes integration tests logically - merge happy_path into test_volumes_accuracy; drop unused volumes_happy_path.jsonl - merge orderby invariant + correctness + by-pvc-name into test_volumes_orderby - fold offset-beyond-total into test_volumes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine deployments integration tests logically - merge happy_path into test_deployments_accuracy; drop unused deployments_happy_path.jsonl - merge orderby invariant + correctness + by-deployment-name into test_deployments_orderby - fold offset-beyond-total into test_deployments_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine statefulsets integration tests logically - merge happy_path into test_statefulsets_accuracy; drop unused statefulsets_happy_path.jsonl - merge orderby invariant + correctness + by-statefulset-name into test_statefulsets_orderby - fold offset-beyond-total into test_statefulsets_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine jobs integration tests logically - merge happy_path into test_jobs_accuracy; drop unused jobs_happy_path.jsonl - merge orderby invariant + correctness + by-job-name into test_jobs_orderby - fold offset-beyond-total into test_jobs_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in pods filter tests - regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1 sample pattern from pods_value_accuracy.jsonl (CI-proven expected values) - test_pods_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in nodes filter tests - regenerate nodes_filter_dataset.jsonl so every node mirrors the acc-n1 sample pattern from nodes_value_accuracy.jsonl (CI-proven expected values) - test_nodes_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in namespaces filter tests - regenerate namespaces_filter_dataset.jsonl so every namespace mirrors the acc-ns-1 sample pattern (2 pods) from namespaces_value_accuracy.jsonl - test_namespaces_filter now asserts namespaceCPU/namespaceMemory per record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in clusters filter tests - regenerate clusters_filter_dataset.jsonl so every cluster mirrors the acc-cluster-1 sample pattern (2 nodes) from clusters_value_accuracy.jsonl - test_clusters_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in volumes filter tests - regenerate volumes_filter_dataset.jsonl so every PVC mirrors the acc-pvc-1 sample pattern from volumes_value_accuracy.jsonl (CI-proven expected values) - test_volumes_filter now asserts all 6 volume fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in deployments filter tests - regenerate deployments_filter_dataset.jsonl so every deployment mirrors the acc-dep-1 sample pattern (2 pods) from deployments_value_accuracy.jsonl - test_deployments_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in statefulsets filter tests - regenerate statefulsets_filter_dataset.jsonl so every statefulset mirrors the acc-ss-1 sample pattern (2 pods) from statefulsets_value_accuracy.jsonl - test_statefulsets_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in jobs filter tests - regenerate jobs_filter_dataset.jsonl so every job mirrors the acc-job-1 sample pattern (2 pods) from jobs_value_accuracy.jsonl - test_jobs_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes groupby + pod-phase tests with structure - merge pod_phase_counts_list_mode + _no_pods_on_node into parametrized test_nodes_pod_phase_counts ((dataset, node, filter, expected) cases) - rename groupby_cluster -> test_nodes_groupby, parametrize over k8s.node.name + k8s.cluster.name; adds the node-name-in-groupBy branch (nodeName populated, condition derived) that hosts/pods both cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces groupby with structure - rename groupby_cluster -> test_namespaces_groupby, parametrize over k8s.namespace.name + k8s.cluster.name; adds the namespace-name-in-groupBy branch (namespaceName populated) that hosts/pods/nodes all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters groupby with structure - rename groupby_cloud_provider -> test_clusters_groupby, parametrize over k8s.cluster.name + cloud.provider; adds the cluster-name-in-groupBy branch (clusterName populated) that hosts/pods/nodes/namespaces all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes groupby with structure - rename groupby_namespace -> test_volumes_groupby, parametrize over k8s.persistentvolumeclaim.name + k8s.namespace.name; adds the pvc-name-in-groupBy branch (persistentVolumeClaimName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align deployments groupby with structure - rename groupby_namespace -> test_deployments_groupby, parametrize over k8s.deployment.name + k8s.namespace.name; adds the deployment-name-in-groupBy branch (deploymentName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align statefulsets groupby with structure - rename groupby_namespace -> test_statefulsets_groupby, parametrize over k8s.statefulset.name + k8s.namespace.name; adds the statefulset-name-in-groupBy branch (statefulSetName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align jobs groupby with structure - rename groupby_namespace -> test_jobs_groupby, parametrize over k8s.job.name + k8s.namespace.name; adds the job-name-in-groupBy branch (jobName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
3e51b9556e |
refactor(planned-maintenance): remove time bounds from recurrence (#11500)
Some checks failed
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / staging (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
* feat(alertmanager): migrate recurrence bounds to schedule level Promote startTime/endTime from a planned maintenance's nested recurrence up to the schedule level. For recurring maintenances the recurrence bounds were the source of truth; the recurrence struct loses these fields in the next step, so the values are moved while they can still be read. The migration operates on raw JSON for that reason. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * refactor(alertmanager): drop start/end bounds from Recurrence Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * refactor: code cleanup * fix: upcoming check for recurring maintenances * fix: remove recurrence.startTime/endTime usages * fix: use embedded timezone in start/end times Accept times in any timezone, but always convert them to the selected timezone. The conversion is required to correctly handle the recurring maintenances for timezones where DST is involved. * refactor: remove redundant code * fix: make startTime a required field * test: cover fixed schedule active window in IsActive Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test: cover recurring schedule active window in IsActive Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: add justification for unreachable code * fix: don't let one corrupt maintenance abort the migration * fix: don't let one corrupt maintenance break the list ListPlannedMaintenance now reads the schedule as raw text and parses each row individually, skipping and logging the bad ones so the rest survive. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix: tests to use UTC instead of utc * fix: return proper errors from schedule.Unmarshal * fix: copy schedule type to migration * chore: move tz conversion to checkX methods --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
abd4436388 |
fix(settings): trial banner causing the scroll of the sub-pages to be broken (#11684)
* fix(billing): fix bottom content clipped on free trial due to viewport height mismatch * fix(workspace): fix callout overflow and sign-out text color regression |
||
|
|
30f52ecb6d | fix(settings): guard against non-APIError in logs retention error state (#11685) | ||
|
|
629d24547c |
fix(infra-monitoring-volumes): add missing inodes columns (#11683)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* refactor(volumes): remove volume prefix * fix(volumes): add missing inode columns * fix(volumes): change to used from utilization |
||
|
|
080aae9567 |
fix: mark numeric columns as aggregation in scalar query response (#11593)
* fix: mark numeric columns as aggregation in scalar query response * fix: make py-fmt * fix: comments |
||
|
|
45a9183c82 |
fix(infra-monitoring-details): ensure events/traces uses timestamp adjusted by the timezone (#11644)
* refactor(timezone-formatter): expose type for format function * fix(infra-monitoring-details): ensure events/traces uses timestamp adjusted by the timezone |
||
|
|
76e7e88641 | fix(infra-monitoring-clusters): deployments desired should use latest instead of avg (#11681) | ||
|
|
1b7954faaf | fix(infra-monitoring-k8s-pods): working set memory should use space aggregation sum (#11680) | ||
|
|
6f79d6b18d |
test: use v1 dashboards list API in cleanup (#11688)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* test: check for response status in integration test before initiating cleanup * fix: use v1 list api in cleanup |
||
|
|
e57a9556e3 |
feat(traces): integrate flamegraph v3 API (#11648)
* feat: added new flamegraph v3 query hook * feat: change normalise timestamp value from backend * feat: remove references use from visual compute to find parentID * feat: api integration and type fixes * feat: test updates * feat: prevent flamegraph call till user pref arrive * fix: keep flamegraph span ts in milli like others * fix: remove fg span timestamp unit conversion Since it's changed in api response * feat: revert timestamp conversion to ms --------- Co-authored-by: Nikhil Soni <nikhil.soni@signoz.io> |
||
|
|
bf35748db5 |
feat(dashboard-v2): variables settings tab (#11645)
* feat(dashboard-v2): variable model, adapters & patch builder
Flat VariableFormModel + adapters between the nested envelope/plugin DTO union
(ListVariable{Query,Custom,Dynamic} / TextVariable) and the model, plus a
JSON-patch builder that replaces /spec/variables atomically. Pure, no UI.
* feat(dashboard-v2): variable editor form for all variable types
In-drawer master-detail editor reproducing the V1 VariableItem layout with
@signozhq components: segmented type selector, per-type bodies (Custom comma
values, Text default + constant, Query editor + test-run preview, Dynamic
signal + field autocomplete) and the shared preview / sort / multi-select /
ALL / default-value rows.
* feat(dashboard-v2): variables settings tab — list, CRUD & persistence
|
||
|
|
2781f73057 | chore: added labels for infra-monitoring method to drill down on clickhouse query_log queries (#11638) | ||
|
|
7eb0095133 |
fix: proper definition of user dashboard preferences (#11643)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix: proper definition of user dashboard preferences * fix: use org id in deletion methods of pref table * fix: make migration name fit regex * fix: make compile return empty sql instead of nil * fix: remove dashboard dependency from user module * test: remove cleanup fixture from integration test |
||
|
|
df26eb1c1d |
chore: make some fields required in perses replicated spec (#11612)
* chore: make some fields required in perses replicated spec * chore: build frondend spec * revert: revert accidental change * fix: make duration optional * chore: add todo for duration and refresh interval |
||
|
|
36334309bb |
feat(resource): add resource middleware (#11607)
* feat(resource): initial commit
* feat(resource): add related resources
* feat(resource): audit cleanup
* refactor(resource): set audit category on resource defs; drop MustNew/validate
- Set Category (access_control) on every service account and role ResourceDef
so audit events carry signoz.audit.action_category
- Remove MustNewResourceDef/MustNewResourcesDef and validate(); registration
via plain ResourceDef literals again. Validation to be revisited separately
* feat(audit): emit audit events only for mutating verbs
- Add coretypes.Verb.IsMutation() (create/update/delete/attach/detach)
- Audit skips read/list defs (they remain for authz); failed and denied
mutations still emit with Outcome=failure
* feat(audit): mirror attach/detach audit on both ends for role↔service account
Role def on SetRole/DeleteRole now carries Related=ServiceAccount so each
permission-checked end emits its own event (serviceaccount.attached to role
and role.attached to serviceaccount), matching the both-ends authz model.
* refactor(resource): co-locate resolved context in handler; slice-of-pointers accessor
Move the resolved-resource context plumbing (resolvedKey, accessors) out of
the resource middleware and into pkg/http/handler next to ResolvedResource, so
type and accessor live in one package (matching the authtypes/ctxtypes
convention) and consumers import a single package.
- Store []*ResolvedResource instead of *[]ResolvedResource; in-place response-id
finalization still works via the element pointers.
- ResolvedResourcesFromContext returns an error (errCodeResolvedResourcesNotFound)
instead of a bool; authz surfaces it, audit treats absence as a no-op.
- Drop the now-dead authz Check/CheckAll/AuthZCheckGroup helpers superseded by
CheckResources.
* refactor(resource): unify id resolution into a single phase-driven mechanism
Replace the two-shaped id mechanism (a resolved string plus a stashed
responseID extractor, decided by resolveID's magic tuple and a zero-value
sentinel) with one retained extractor whose phase decides when it runs.
- ResolvedResource/ResolvedRelated keep idExtractor (renamed from responseID);
it is run in its declared phase, never re-run.
- ResourceIDExtractor gains isPhase + runFor; ResolvedResource gains resolve,
called once per phase (request by the resource middleware, response by audit).
- resolveID and resolveRelated(ec) are gone; FinalizeResponseIDs collapses to a
single resolve(phaseResponse) call. Request and response resolution are now
symmetric.
* refactor(resource): split resourcedef.go along its logical seams
Break the ~320-line resourcedef.go into cohesive files within the handler
package (pure relocation, no behavior or API change):
- extractor.go — extraction: ExtractorContext, phases, extractors + constructors
- resourcedef.go — declaration: ResourceDef/ResourcesDef/RelatedResource/
ResourceSpec + their functions (resolveRequest, ResolveRequest)
and the selectors
- resolved_resource.go — resolved types + their functions (resolve,
newResolvedRelated, FinalizeResponseIDs, HasResponseIDs)
- resolved_context.go — context plumbing (resolvedKey + accessors)
Each file's imports narrow to its concern; mux/gjson are now confined to
extractor.go.
* refactor(resource): extract selectors into selector.go
Move SelectorFunc + WildcardSelector/IDSelector (and the errCode they use)
out of resourcedef.go into selector.go. Pure relocation, no behavior change:
resourcedef.go now holds only the route-author declaration types and narrows
its imports to audittypes + coretypes.
* refactor(resource): extract ResourceSpec into resource_spec.go
Move the sealed ResourceSpec interface out of resourcedef.go into its own
file. Pure relocation, no behavior change.
* refactor(resource): split ResourcesDef into resourcesdef.go
Move the fan-out ResourcesDef (struct + sealResourceSpec/resolveRequest) out
of resourcedef.go into its own file. resourcedef.go keeps ResourceDef, the
shared RelatedResource, and the ResolveRequest orchestrator. Pure relocation,
no behavior change.
* refactor(resource): move RelatedResource and ResolveRequest into resource_spec.go
Cluster the spec contract together: the shared RelatedResource type and the
ResolveRequest orchestrator (over []ResourceSpec) join the ResourceSpec
interface. resourcedef.go now holds only ResourceDef. Pure relocation, no
behavior change.
* refactor(resource): seal ResourceSpec via resolveRequest alone
Drop the redundant sealResourceSpec() marker method; the unexported
resolveRequest already prevents implementations outside the package.
* feat(resource): scaffold coretypes-based resolved model
Introduce the referenceable, coretypes-resident resource model (additive;
the existing ResourceDef path is untouched and the build stays green):
- coretypes: ExtractorContext + ExtractPhase + ResourceIDExtractor/
ResourceIDsExtractor (extractor machinery moved out of handler; handler keeps
only the mux/gjson constructors).
- coretypes: SelectorFunc (now (ctx, resource, id, orgID) to stay cycle-free) +
WildcardSelector/IDSelector.
- coretypes: ResolvedResource + ResolvedResourceWithTargetResource interfaces,
their concrete types with two-phase fill (request ids at construction,
response ids via ResolveResponse), and the resolved-context accessors.
- handler: the three explicit declaration types — BasicResourceDef,
AttachDetachSiblingResourceDef, AttachDetachParentChildResourceDef.
Wiring (defs -> ResolveRequest, middleware, route migration) follows next.
* refactor(resource): wire the coretypes resolved model end-to-end
Cut the resource middleware over to the coretypes-resident resolved model and
the explicit declaration types, replacing the generic ResourceDef/ResourcesDef.
- handler: ResourceDef is now a sealed interface (unexported resolveRequest)
implemented by BasicResourceDef / AttachDetachSiblingResourceDef /
AttachDetachParentChildResourceDef, all consolidated into resourcedef.go.
Removed the old generic defs, the handler-side resolved/selector/context
(moved to coretypes), and the dead AuditDef.
- coretypes: ActionCategory moved here; Category() exposed on the resolved
interface (declared on the def, read by audit; no kind-based derivation).
- middleware: authz does M+N absolute checks (source always, sibling target
too, parent-child child never) via the resolved selectors; audit type-switches
on the resolved interface to emit per resource / per relationship.
- authz forbidden message is now AWS-style: principal is not authorized to
perform <kind>:<verb> on resource "<id>".
- routes: service account + role routes migrated to the explicit defs;
roleSelector takes orgID.
Note: resourcedef_test.go (old API) removed; new tests to follow.
* feat(resource): instrument query-range with telemetry resource authz
Authorize /api/v5/query_range at the telemetry-resource level, derived from the
request body rather than a path/body id:
- coretypes: ResourceExtractor now yields []ResourceWithID (resource + id), and
TelemetrySignalSource maps each query's spec.signal+spec.source to a telemetry
resource (via TelemetryResourceForSignalSource) and reads a per-query id — one
entry per query, no de-duplication, so repeated signals each get their own
resource + id.
- handler: TelemetryResourceDef fans out one resolved resource per query through
NewResolvedResourceWithID; resolveRequest returns a slice to allow fan-out.
- The extractor model (types + constructors + ResourceExtractor) now lives wholly
in coretypes (handler/extractor.go removed); coretypes gains mux/gjson.
- querier route: ViewAccess -> CheckResources + the telemetry def (spec.name is a
placeholder id; the owner picks the real field).
Carries the in-progress removal of Verb.IsMutation and its audit mutation-gate,
so audit currently emits per resolved resource regardless of verb (to revisit).
* feat(resource): instrument planned-maintenance routes + tidy resolved id handling
- ruler.go: downtime_schedules routes move from ViewAccess/EditAccess to
CheckResources with resource defs — Basic for list/read/create/update/delete on
PlannedMaintenance, plus a sibling Attach (schedule <-> the rules in alertIds)
on create/update so both the schedule and each rule are authz-checked.
- coretypes: SourceIDs/TargetIDs return a single empty id when there are none, so
collection-level access lives in the resolved value; authz.checkResource drops
its empty-id shim and just iterates.
- readability: expand crammed multi-arg signatures and calls (checkResource,
NewResolvedResource/WithID, forbidden errors.Newf, telemetry mapping) to one
argument per line.
* refactor(resource): drop query-range/planned-maintenance instrumentation; mirror sibling audit
- Revert /api/v5/query_range and downtime_schedules routes to ViewAccess/EditAccess
and remove the telemetry-resource scaffolding that only query-range consumed
(TelemetryResourceDef, TelemetrySignalSource, TelemetryResourceForSignalSource,
ResourceExtractor/ResourceWithID, NewResolvedResourceWithID).
- audit: a sibling attach/detach now emits the event from both ends, matching the
both-ends authz model (parent-child stays one-directional).
- Strip non-essential doc/inline comments across the resource middleware files.
* refactor(coretypes): fold extractor/selector _func files into their concept files
- Merge extractor_func.go + extractor_context.go into extractor.go, and
selector_func.go into selector.go, matching the type.go/object.go/verb.go
convention of keeping a type with its constructors and helpers.
- Order each file const/var -> type -> func (also reorders action_category.go).
* feat(resource): capture response body only when an id is resolved from it
- Restore the capture gate lost in the coretypes move: ResolvedResource gains an
unexported hasResponsePhase(), and ShouldCaptureResponseBody(ctx) drives the
audit middleware so the body is buffered only when some resolved resource reads
an id out of it (e.g. a create), not for every resource-declared route.
- Add ResourceIDsExtractor.IsPhase (mirroring ResourceIDExtractor) and reuse it.
- Fold resolved_context.go into resolved.go.
---------
Co-authored-by: grandwizard28 <vibhupandey28@gmail.com>
|
||
|
|
cfcd58b341 |
feat(dashboards): serve V2 dashboard pages behind use_dashboard_v2 flag (#11642)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix(dashboard-v2): align list & patch code with the generated client
Match the now-upstream V2 client: PatchOpDTO (was JSONPatchOperationDTOOp),
ListedDashboardV2DTO as the list item, and ListSortDTO/ListOrderDTO casts on the
list params. No behaviour change — these files are still parked here.
* feat(dashboard-v2): serve V2 dashboard pages behind use_dashboard_v2 flag
Gate the dashboards list & detail entry points on useIsDashboardV2() — V1 falls
through when the flag is off (V1 detail logic moved into DashboardPage.tsx). Un-park
the V2 page directories in tsconfig so they typecheck and ship.
Also convert the // header comments in states.module.scss to /* */ — once the V2
list is wired into the import graph, vite compiles that stylesheet and the
backtick in the // comment crashed the CSS-modules parser ('Unclosed string').
* refactor(dashboard-v2): type list sort/order with the generated enums
Drop the local string-literal SortColumn/SortOrder unions and the `as` casts:
the nuqs query-state hooks now return DashboardtypesListSortDTO / ListOrderDTO
directly, and ListHeader/DashboardsList use the enum members.
|
||
|
|
45fedefbab |
fix(frontend): always show SigNoz version in sidebar header (#11596)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix(ui): missing version next to sidebar logo * fix(ui): missing version next to sidebar logo |
||
|
|
01ae688b58 |
fix(frontend): don't crash app when Web Speech API access throws (#11618)
Fix issue with Web Speech API. |
||
|
|
f4e1465c13 | feat(auth): add back to login CTA on reset password token error screen (#11634) | ||
|
|
b22eef6a65 |
feat: v2 list, delete, pin, unpin dashboards api (#11219)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix: compile error fix * fix: remove soft delete references * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * test: key value tags in test * fix: build error in patch module method * feat: method to build postable tags from tags * fix: build error in Apply method * chore: remove newline * fix: remove soft delete references * fix: build error fix * chore: embed StorableDashboard in listedRow * fix: visitor should follow new tag struct * fix: diff error codes for invalid keys and values * fix: correct pk in bun model for tag relations * fix: created and updated by schema * fix: use coretypes.Kind instead of defining entity type * fix: singular table name * chore: remove org ID from tag relation * feat: foreign key on tag id * feat: add SyncTags method that covers creation and linking * fix: remove entity type definition * fix: fix build errors in dashboard module * chore: bump migration number * chore: change entity id to resource id * fix: add org id filter in all list and delete queries * fix: remove user auditable * fix: add ID in tag relation * fix: fix build error * fix: fix build error * chore: bump migration number * fix: add len check on tags keys and values * fix: add regex for tags * chore: remove methods that shouldn't be exposed * fix: use sync tags in create api * feat: functional unique index in sql schema * fix: only ascii in regex * fix: use sync tags method in update * fix: use sync tags method in update * fix: correct the method name being called * chore: rename create method to createOrGet * chore: use tagtypestest package for mock store * chore: combine functional unique index with unique index * chore: move tag resolution to module * test: add unit tests for new idx type * chore: comment out tags unique index for now * chore: add a todo comment * chore: comment out unique index test * feat: add created at to tag relations * chore: comment out unique index test * chore: bump migration number * chore: remove uploaded grafana flag from metadata * Merge branch 'main' into nv/v2-dashboard-create * chore: revert idx generation to resolve conflicts * fix: use store.RunInTx instead of taking in sqlstore * fix: use binding package to get request * chore: move NewDashboardV2 to NewDashboardV2WithoutTags * chore: rename module to m * fix: add ctx needed in sqlstore * fix: remove sqlstore passage in ee pkg * chore: change dashboardData to dashboardSpec * feat: follow the metadata+spec key structure * feat: follow the metadata+spec key structure in open api spec * feat: v2 dashboard GET API (#11136) * feat: v2 dashboard GET API * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * chore: update api specs * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: fix build error * chore: revert all frontend changes * fix: remove public dashboard from get v2 call * chore: revert all frontend changes * fix: fix build errors post merge conflict resolution * feat: lock, unlock, create public, update public v2 dashboard APIs (#11167) * feat: lock, unlock, create public, update public v2 dashboard APIs * chore: update api specs * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * chore: revert all frontend changes * fix: fix build errors and remove v2 create/update public apis * chore: use v1 methods wherever possible * fix: use update v2 store method * chore: update frontend schema * chore: update frontend schema * chore: generate api specs * chore: generate api specs * feat: patch dashboard api (#11182) * feat: lock, unlock, create public, update public v2 dashboard APIs * feat: delete dashboard v2 API and hard delete cron job * feat: patch dashboard api * chore: update api specs * chore: update api specs * chore: update api specs * chore: remove delete related work * fix: add examples of structs for value param in param description * test: unit test fixes * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * test: key value tags in test * fix: build error in patch module method * fix: build error in Apply method * fix: use sync tags method in update * fix: fix build errors * fix: fix all patch application tests * chore: add more mapper methods * fix: fix build errors * chore: generate api specs * fix: update migration numbering * fix: add missing request struct in list api * fix: remove hasMore from list response * chore: bump migration number * fix: send total count in response + bug fixes * fix: add source for v2 dashboards * chore: incorporate source * chore: incorporate source in api spec * chore: incorporate source * fix: remove system dashboards from list v2 response * fix: add some required fields * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 api specs * fix: remove unused param in constructor * fix: improve api descriptions * fix: remove unneeded comment * chore: increase MaxTagsPerDashboard to 10 * fix: set display name in unmarshal json * chore: remove integration test for now (will add along with list api) * feat: add validation on dashboard name * test: fix build errors and tests based on name related changes * chore: bump migration number * chore: generate api specs * fix: fix tests based on name related changes * fix: dont include full data in list response * fix: add quotes around tag relation kind * chore: bump migration number * fix: correct convertor method name * test: add unit tests for type conversions * chore: remove enum def of threshold comparison operator * feat: add flag to generate unique name in backend * chore: generate api specs * chore: make tags required in postable * fix: build error fix * chore: bump migration number * fix: fix build error in test after merge conflict * fix: remove unused store method * fix: remove unused module methods * fix: use v1 store update method * fix: change data to spec in api param description * chore: add back accidentally removed tests * chore: update api spec * chore: bump migration number * feat: delete dashboard v2 API (#11299) * feat: delete dashboard v2 API * fix: fix post merge build and spec errors * fix: address review comments * chore: generate frontend api spec * fix: add missing name fetch in listv2 store method * fix: change title to name in api description * fix: add all error codes for new apis * test: change data to spec in unit tests * fix: remove join to public dashboard table in list call * fix: use valuer string for list order and sort * test: integration test and fixes found through it * chore: use same jsonpatch package as done in zeus * chore: remove JSONPatchDocument and use patchable everywhere * fix: make remove idempotent in patch * chore: separate file for patch types * chore: better error passage * fix: remove extra decodePatch calls * fix: use must new org id * fix: proper error passage * chore: rename updateable to updatable * fix: use must new org id * feat: include list of all dashboard tags in list api response * fix: remove wrong api description msg * fix: use must method for user id as well * chore: add nolint comment * fix: add missing image field in list response * chore: regenerate api specs * fix: make GettableTag a defined type instead of an alias * fix: dont allow system dashboards to be deleted * fix: remove public filter from visitor * chore: use go sqlbuilder * fix: use ESCAPE literal in contains and like operators * fix: use correct perses package in list v2 file * feat: change pinned dashboard table to user dashboard preference table * fix: delete preferences on dashboard delete * test: add integration test for pinning * fix: wrap naked errors * fix: integration dashboards should not be deletable either * fix: remove org column in preferences and add foreign key to users table * chore: add fk from prefs to dashbaord table * chore: remove outer parenthesis removal function * test: add unit test to ensure that all reserved keys have handlers * fix: proper url for pin apis * fix: delete preferences on user deletion * test: address integration test comments * test: change limit * fix: revert the check in can delete * fix: remove unit test from ee package * fix: move list filter to impl to avoid db impl logic in types * chore: code movement * feat: add a pin free list dashboards api * fix: update api specs * fix: use request query in api defs for list apis * chore: explicitly mark request as nil in list apis --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
4d3d1ef423 |
fix: add check for percentile aggregation for non-histogram metrics (#11387)
* fix: add check for percentile aggregation for non-histogram metrics * test: correct errors pkg in test file * fix: catch type related errors in querier * fix: remove comparison related tests --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
c775d7e398 |
chore: add discriminator on kind in perses spec (#11635)
* chore: add discriminator on kind in perses spec * chore: add discriminator to builder query spec * chore: update in query builder directly * docs: add info about discriminator in handler.md * fix: move back to restrictKindToOneValue * fix: move back to restrictKindToOneValue |
||
|
|
27603e09d0 |
feat(infra-monitoring): v2 statefulsets integration tests (#11440)
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: added all tests * chore: fix for surfacing meta for pods custom group by * chore: added nodes integration test suite * chore: namespaces integration tests * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: added integration tests for clusters * chore: formatting changed * chore: formatting changed * chore: formatting changed * chore: added volumes integration tests * chore: added deployments * chore: added tests * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align pods integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_pods_filter - combine bad attr/grammar tests into parametrized test_pods_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_pods_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_nodes_filter - combine bad attr/grammar tests into parametrized test_nodes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_nodes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_namespaces_filter - combine bad attr/grammar tests into parametrized test_namespaces_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_namespaces_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_clusters_filter - combine bad attr/grammar tests into parametrized test_clusters_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_clusters_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_volumes_filter - combine bad attr/grammar tests into parametrized test_volumes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_volumes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align deployments integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_deployments_filter - combine bad attr/grammar tests into parametrized test_deployments_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_deployments_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align statefulsets integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_statefulsets_filter - combine bad attr/grammar tests into parametrized test_statefulsets_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_statefulsets_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine pods integration tests logically - merge happy_path into test_pods_accuracy (datasets structurally identical); drop unused pods_happy_path.jsonl - merge groupby namespace/deployment into parametrized test_pods_groupby - merge orderby invariant + correctness + by-pod-name into test_pods_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_pods_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine nodes integration tests logically - merge happy_path into test_nodes_accuracy; drop unused nodes_happy_path.jsonl - merge orderby invariant + correctness + by-node-name into test_nodes_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_nodes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine namespaces integration tests logically - merge happy_path into test_namespaces_accuracy; drop unused namespaces_happy_path.jsonl - merge orderby invariant + correctness + by-namespace-name into test_namespaces_orderby - fold offset-beyond-total into test_namespaces_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine clusters integration tests logically - merge happy_path into test_clusters_accuracy; drop unused clusters_happy_path.jsonl - merge orderby invariant + correctness + by-cluster-name into test_clusters_orderby - fold offset-beyond-total into test_clusters_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine volumes integration tests logically - merge happy_path into test_volumes_accuracy; drop unused volumes_happy_path.jsonl - merge orderby invariant + correctness + by-pvc-name into test_volumes_orderby - fold offset-beyond-total into test_volumes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine deployments integration tests logically - merge happy_path into test_deployments_accuracy; drop unused deployments_happy_path.jsonl - merge orderby invariant + correctness + by-deployment-name into test_deployments_orderby - fold offset-beyond-total into test_deployments_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine statefulsets integration tests logically - merge happy_path into test_statefulsets_accuracy; drop unused statefulsets_happy_path.jsonl - merge orderby invariant + correctness + by-statefulset-name into test_statefulsets_orderby - fold offset-beyond-total into test_statefulsets_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in pods filter tests - regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1 sample pattern from pods_value_accuracy.jsonl (CI-proven expected values) - test_pods_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in nodes filter tests - regenerate nodes_filter_dataset.jsonl so every node mirrors the acc-n1 sample pattern from nodes_value_accuracy.jsonl (CI-proven expected values) - test_nodes_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in namespaces filter tests - regenerate namespaces_filter_dataset.jsonl so every namespace mirrors the acc-ns-1 sample pattern (2 pods) from namespaces_value_accuracy.jsonl - test_namespaces_filter now asserts namespaceCPU/namespaceMemory per record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in clusters filter tests - regenerate clusters_filter_dataset.jsonl so every cluster mirrors the acc-cluster-1 sample pattern (2 nodes) from clusters_value_accuracy.jsonl - test_clusters_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in volumes filter tests - regenerate volumes_filter_dataset.jsonl so every PVC mirrors the acc-pvc-1 sample pattern from volumes_value_accuracy.jsonl (CI-proven expected values) - test_volumes_filter now asserts all 6 volume fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in deployments filter tests - regenerate deployments_filter_dataset.jsonl so every deployment mirrors the acc-dep-1 sample pattern (2 pods) from deployments_value_accuracy.jsonl - test_deployments_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in statefulsets filter tests - regenerate statefulsets_filter_dataset.jsonl so every statefulset mirrors the acc-ss-1 sample pattern (2 pods) from statefulsets_value_accuracy.jsonl - test_statefulsets_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes groupby + pod-phase tests with structure - merge pod_phase_counts_list_mode + _no_pods_on_node into parametrized test_nodes_pod_phase_counts ((dataset, node, filter, expected) cases) - rename groupby_cluster -> test_nodes_groupby, parametrize over k8s.node.name + k8s.cluster.name; adds the node-name-in-groupBy branch (nodeName populated, condition derived) that hosts/pods both cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces groupby with structure - rename groupby_cluster -> test_namespaces_groupby, parametrize over k8s.namespace.name + k8s.cluster.name; adds the namespace-name-in-groupBy branch (namespaceName populated) that hosts/pods/nodes all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters groupby with structure - rename groupby_cloud_provider -> test_clusters_groupby, parametrize over k8s.cluster.name + cloud.provider; adds the cluster-name-in-groupBy branch (clusterName populated) that hosts/pods/nodes/namespaces all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes groupby with structure - rename groupby_namespace -> test_volumes_groupby, parametrize over k8s.persistentvolumeclaim.name + k8s.namespace.name; adds the pvc-name-in-groupBy branch (persistentVolumeClaimName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align deployments groupby with structure - rename groupby_namespace -> test_deployments_groupby, parametrize over k8s.deployment.name + k8s.namespace.name; adds the deployment-name-in-groupBy branch (deploymentName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align statefulsets groupby with structure - rename groupby_namespace -> test_statefulsets_groupby, parametrize over k8s.statefulset.name + k8s.namespace.name; adds the statefulset-name-in-groupBy branch (statefulSetName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
7b2882abde |
feat: show recent queries to user (#11523)
* feat: initial commit * refactor: recent query * refactor: move all components into one * refactor: queries * refactor: self review comments * refactor: css * refactor: comments * refactor: more comments * feat: add time feature * refactor : more changes * chore: remove comments * refactor: more code * chore: remove extra commentes * refactor: store in local storage * fix: update types * refactor: more changes * refactor: import issue * fix: lint * chore: update styling * fix: update query * feat: use source as well in query key * refactor: review changes * refactor: self review changes * refactor: more changes * fix: more refactor * refactor: make code much better * fix: minor refactor * refactor: review changes * refactor: getRecentHook and make logic simple * chore: drop useSaveRecentQuery from gridcard * refactor: run save logic on handleRunQuery * chore: remove space --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
30f1c2d92d |
feat(infra-monitoring): v2 deployments integration tests (#11437)
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: added all tests * chore: fix for surfacing meta for pods custom group by * chore: added nodes integration test suite * chore: namespaces integration tests * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: added integration tests for clusters * chore: formatting changed * chore: formatting changed * chore: formatting changed * chore: added volumes integration tests * chore: added deployments * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align pods integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_pods_filter - combine bad attr/grammar tests into parametrized test_pods_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_pods_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_nodes_filter - combine bad attr/grammar tests into parametrized test_nodes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_nodes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_namespaces_filter - combine bad attr/grammar tests into parametrized test_namespaces_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_namespaces_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_clusters_filter - combine bad attr/grammar tests into parametrized test_clusters_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_clusters_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_volumes_filter - combine bad attr/grammar tests into parametrized test_volumes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_volumes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align deployments integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_deployments_filter - combine bad attr/grammar tests into parametrized test_deployments_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_deployments_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine pods integration tests logically - merge happy_path into test_pods_accuracy (datasets structurally identical); drop unused pods_happy_path.jsonl - merge groupby namespace/deployment into parametrized test_pods_groupby - merge orderby invariant + correctness + by-pod-name into test_pods_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_pods_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine nodes integration tests logically - merge happy_path into test_nodes_accuracy; drop unused nodes_happy_path.jsonl - merge orderby invariant + correctness + by-node-name into test_nodes_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_nodes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine namespaces integration tests logically - merge happy_path into test_namespaces_accuracy; drop unused namespaces_happy_path.jsonl - merge orderby invariant + correctness + by-namespace-name into test_namespaces_orderby - fold offset-beyond-total into test_namespaces_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine clusters integration tests logically - merge happy_path into test_clusters_accuracy; drop unused clusters_happy_path.jsonl - merge orderby invariant + correctness + by-cluster-name into test_clusters_orderby - fold offset-beyond-total into test_clusters_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine volumes integration tests logically - merge happy_path into test_volumes_accuracy; drop unused volumes_happy_path.jsonl - merge orderby invariant + correctness + by-pvc-name into test_volumes_orderby - fold offset-beyond-total into test_volumes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine deployments integration tests logically - merge happy_path into test_deployments_accuracy; drop unused deployments_happy_path.jsonl - merge orderby invariant + correctness + by-deployment-name into test_deployments_orderby - fold offset-beyond-total into test_deployments_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in pods filter tests - regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1 sample pattern from pods_value_accuracy.jsonl (CI-proven expected values) - test_pods_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in nodes filter tests - regenerate nodes_filter_dataset.jsonl so every node mirrors the acc-n1 sample pattern from nodes_value_accuracy.jsonl (CI-proven expected values) - test_nodes_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in namespaces filter tests - regenerate namespaces_filter_dataset.jsonl so every namespace mirrors the acc-ns-1 sample pattern (2 pods) from namespaces_value_accuracy.jsonl - test_namespaces_filter now asserts namespaceCPU/namespaceMemory per record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in clusters filter tests - regenerate clusters_filter_dataset.jsonl so every cluster mirrors the acc-cluster-1 sample pattern (2 nodes) from clusters_value_accuracy.jsonl - test_clusters_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in volumes filter tests - regenerate volumes_filter_dataset.jsonl so every PVC mirrors the acc-pvc-1 sample pattern from volumes_value_accuracy.jsonl (CI-proven expected values) - test_volumes_filter now asserts all 6 volume fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in deployments filter tests - regenerate deployments_filter_dataset.jsonl so every deployment mirrors the acc-dep-1 sample pattern (2 pods) from deployments_value_accuracy.jsonl - test_deployments_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes groupby + pod-phase tests with structure - merge pod_phase_counts_list_mode + _no_pods_on_node into parametrized test_nodes_pod_phase_counts ((dataset, node, filter, expected) cases) - rename groupby_cluster -> test_nodes_groupby, parametrize over k8s.node.name + k8s.cluster.name; adds the node-name-in-groupBy branch (nodeName populated, condition derived) that hosts/pods both cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces groupby with structure - rename groupby_cluster -> test_namespaces_groupby, parametrize over k8s.namespace.name + k8s.cluster.name; adds the namespace-name-in-groupBy branch (namespaceName populated) that hosts/pods/nodes all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters groupby with structure - rename groupby_cloud_provider -> test_clusters_groupby, parametrize over k8s.cluster.name + cloud.provider; adds the cluster-name-in-groupBy branch (clusterName populated) that hosts/pods/nodes/namespaces all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes groupby with structure - rename groupby_namespace -> test_volumes_groupby, parametrize over k8s.persistentvolumeclaim.name + k8s.namespace.name; adds the pvc-name-in-groupBy branch (persistentVolumeClaimName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align deployments groupby with structure - rename groupby_namespace -> test_deployments_groupby, parametrize over k8s.deployment.name + k8s.namespace.name; adds the deployment-name-in-groupBy branch (deploymentName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
446dd4589f |
feat(infra-monitoring): v2 volumes integration tests (#11431)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: added all tests * chore: fix for surfacing meta for pods custom group by * chore: added nodes integration test suite * chore: namespaces integration tests * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: added integration tests for clusters * chore: formatting changed * chore: formatting changed * chore: formatting changed * chore: added volumes integration tests * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align pods integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_pods_filter - combine bad attr/grammar tests into parametrized test_pods_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_pods_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_nodes_filter - combine bad attr/grammar tests into parametrized test_nodes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_nodes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_namespaces_filter - combine bad attr/grammar tests into parametrized test_namespaces_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_namespaces_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_clusters_filter - combine bad attr/grammar tests into parametrized test_clusters_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_clusters_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_volumes_filter - combine bad attr/grammar tests into parametrized test_volumes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_volumes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine pods integration tests logically - merge happy_path into test_pods_accuracy (datasets structurally identical); drop unused pods_happy_path.jsonl - merge groupby namespace/deployment into parametrized test_pods_groupby - merge orderby invariant + correctness + by-pod-name into test_pods_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_pods_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine nodes integration tests logically - merge happy_path into test_nodes_accuracy; drop unused nodes_happy_path.jsonl - merge orderby invariant + correctness + by-node-name into test_nodes_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_nodes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine namespaces integration tests logically - merge happy_path into test_namespaces_accuracy; drop unused namespaces_happy_path.jsonl - merge orderby invariant + correctness + by-namespace-name into test_namespaces_orderby - fold offset-beyond-total into test_namespaces_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine clusters integration tests logically - merge happy_path into test_clusters_accuracy; drop unused clusters_happy_path.jsonl - merge orderby invariant + correctness + by-cluster-name into test_clusters_orderby - fold offset-beyond-total into test_clusters_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine volumes integration tests logically - merge happy_path into test_volumes_accuracy; drop unused volumes_happy_path.jsonl - merge orderby invariant + correctness + by-pvc-name into test_volumes_orderby - fold offset-beyond-total into test_volumes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in pods filter tests - regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1 sample pattern from pods_value_accuracy.jsonl (CI-proven expected values) - test_pods_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in nodes filter tests - regenerate nodes_filter_dataset.jsonl so every node mirrors the acc-n1 sample pattern from nodes_value_accuracy.jsonl (CI-proven expected values) - test_nodes_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in namespaces filter tests - regenerate namespaces_filter_dataset.jsonl so every namespace mirrors the acc-ns-1 sample pattern (2 pods) from namespaces_value_accuracy.jsonl - test_namespaces_filter now asserts namespaceCPU/namespaceMemory per record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in clusters filter tests - regenerate clusters_filter_dataset.jsonl so every cluster mirrors the acc-cluster-1 sample pattern (2 nodes) from clusters_value_accuracy.jsonl - test_clusters_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in volumes filter tests - regenerate volumes_filter_dataset.jsonl so every PVC mirrors the acc-pvc-1 sample pattern from volumes_value_accuracy.jsonl (CI-proven expected values) - test_volumes_filter now asserts all 6 volume fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes groupby + pod-phase tests with structure - merge pod_phase_counts_list_mode + _no_pods_on_node into parametrized test_nodes_pod_phase_counts ((dataset, node, filter, expected) cases) - rename groupby_cluster -> test_nodes_groupby, parametrize over k8s.node.name + k8s.cluster.name; adds the node-name-in-groupBy branch (nodeName populated, condition derived) that hosts/pods both cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces groupby with structure - rename groupby_cluster -> test_namespaces_groupby, parametrize over k8s.namespace.name + k8s.cluster.name; adds the namespace-name-in-groupBy branch (namespaceName populated) that hosts/pods/nodes all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters groupby with structure - rename groupby_cloud_provider -> test_clusters_groupby, parametrize over k8s.cluster.name + cloud.provider; adds the cluster-name-in-groupBy branch (clusterName populated) that hosts/pods/nodes/namespaces all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align volumes groupby with structure - rename groupby_namespace -> test_volumes_groupby, parametrize over k8s.persistentvolumeclaim.name + k8s.namespace.name; adds the pvc-name-in-groupBy branch (persistentVolumeClaimName populated) that the other endpoints all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
c0c9039428 |
chore(release): bump to v0.128.0 (#11633)
Co-authored-by: primus-bot[bot] <171087277+primus-bot[bot]@users.noreply.github.com> |
||
|
|
a014e9c0cb |
chore(trace-detail): waterfall v3 and v2 cleanup (#11609)
* chore: cleanup waterfall v3 api We've moved to v4 as part of memory allocation optimisation * chore: remove select all limit from waterfall request It was added for testing only and fine tuning the limit value * chore: update openapi specs * chore: remove waterfall v2 since we've moved to v4 now |
||
|
|
b898269ddc | chore(api): deprecate any hand-written api call (#11632) | ||
|
|
8fdad21a2e |
chore: bumping integration agent version to v0.0.11 (#11621)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
2e0d25479a |
feat(infra-monitoring): v2 clusters integration tests (#11430)
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: added all tests * chore: fix for surfacing meta for pods custom group by * chore: added nodes integration test suite * chore: namespaces integration tests * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: added integration tests for clusters * chore: formatting changed * chore: formatting changed * chore: formatting changed * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align pods integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_pods_filter - combine bad attr/grammar tests into parametrized test_pods_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_pods_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_nodes_filter - combine bad attr/grammar tests into parametrized test_nodes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_nodes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_namespaces_filter - combine bad attr/grammar tests into parametrized test_namespaces_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_namespaces_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_clusters_filter - combine bad attr/grammar tests into parametrized test_clusters_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_clusters_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine pods integration tests logically - merge happy_path into test_pods_accuracy (datasets structurally identical); drop unused pods_happy_path.jsonl - merge groupby namespace/deployment into parametrized test_pods_groupby - merge orderby invariant + correctness + by-pod-name into test_pods_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_pods_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine nodes integration tests logically - merge happy_path into test_nodes_accuracy; drop unused nodes_happy_path.jsonl - merge orderby invariant + correctness + by-node-name into test_nodes_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_nodes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine namespaces integration tests logically - merge happy_path into test_namespaces_accuracy; drop unused namespaces_happy_path.jsonl - merge orderby invariant + correctness + by-namespace-name into test_namespaces_orderby - fold offset-beyond-total into test_namespaces_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine clusters integration tests logically - merge happy_path into test_clusters_accuracy; drop unused clusters_happy_path.jsonl - merge orderby invariant + correctness + by-cluster-name into test_clusters_orderby - fold offset-beyond-total into test_clusters_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in pods filter tests - regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1 sample pattern from pods_value_accuracy.jsonl (CI-proven expected values) - test_pods_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in nodes filter tests - regenerate nodes_filter_dataset.jsonl so every node mirrors the acc-n1 sample pattern from nodes_value_accuracy.jsonl (CI-proven expected values) - test_nodes_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in namespaces filter tests - regenerate namespaces_filter_dataset.jsonl so every namespace mirrors the acc-ns-1 sample pattern (2 pods) from namespaces_value_accuracy.jsonl - test_namespaces_filter now asserts namespaceCPU/namespaceMemory per record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in clusters filter tests - regenerate clusters_filter_dataset.jsonl so every cluster mirrors the acc-cluster-1 sample pattern (2 nodes) from clusters_value_accuracy.jsonl - test_clusters_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes groupby + pod-phase tests with structure - merge pod_phase_counts_list_mode + _no_pods_on_node into parametrized test_nodes_pod_phase_counts ((dataset, node, filter, expected) cases) - rename groupby_cluster -> test_nodes_groupby, parametrize over k8s.node.name + k8s.cluster.name; adds the node-name-in-groupBy branch (nodeName populated, condition derived) that hosts/pods both cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces groupby with structure - rename groupby_cluster -> test_namespaces_groupby, parametrize over k8s.namespace.name + k8s.cluster.name; adds the namespace-name-in-groupBy branch (namespaceName populated) that hosts/pods/nodes all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align clusters groupby with structure - rename groupby_cloud_provider -> test_clusters_groupby, parametrize over k8s.cluster.name + cloud.provider; adds the cluster-name-in-groupBy branch (clusterName populated) that hosts/pods/nodes/namespaces all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
73c2c15200 |
feat: adding support for VMs in Azure integration (#11573)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: adding supoprt for virtual machines to azure one click integration * chore: generating openapi spec * chore: updating dashboard title |
||
|
|
34203c781f |
feat(traces): Noz button on trace detail page (#11624)
* feat: add noz ai button * feat: badge color fix * feat: revert badge change |
||
|
|
1ba9b90855 |
feat: adding assets and dashboards for azure app services (#11565)
* feat: adding assets and dashboards for azure app services * refactor: updating metric names * chore: openapi spec changes * chore: generating frontend types |
||
|
|
927951b67a |
fix(billing): fix cancel subscription flow failing silently for users without a default mail client (#11622)
* fix(billing): fix cancel subscription flow failing silently for users without a default mail client * fix(billing): refactor test case * fix(billing): added log event to the copy template and reopen button * fix(billing): test case refactor * fix(billing): use native <a> for mailto retry to maximize cross-browser reliability |
||
|
|
05ad8d113d |
chore(vite.config): ensure commits information for sentry (#11623)
* chore(vite.config): ensure commits information is added on new release * ci(build-staging): enable sentry on staging envs |
||
|
|
faad1e659a | feat: badge color fix (#11625) | ||
|
|
e10a9515ef |
feat(trace-details): add implementation for flamegraph building (part 2) (#11491)
* feat: add config for flamegraph
* Revert "chore: extract out flamegraph building logic for easier review"
This reverts commit
|
||
|
|
9ad37ad6e6 |
feat(metrics-explorer): fast path for get stats and get treemap when no filter (#11458)
* chore: added fastPath * chore: rearrange and readable * chore: build fix * chore: combining two functions into a common flow * chore: variable name update: * feat(metrics-explorer): fast path for get treemap in case of no filter (#11459) * chore: fastpath for treemap * chore: added fastpath function * chore: refactor fir common code * chore: refactor changes * chore: added tests for get stats and get treemap |
||
|
|
83b2cabbcd |
feat(infra-monitoring): v2 namespaces integration tests (#11429)
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: added all tests * chore: fix for surfacing meta for pods custom group by * chore: added nodes integration test suite * chore: namespaces integration tests * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: formatting changed * chore: formatting changed * chore: formatting changed * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align pods integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_pods_filter - combine bad attr/grammar tests into parametrized test_pods_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_pods_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_nodes_filter - combine bad attr/grammar tests into parametrized test_nodes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_nodes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_namespaces_filter - combine bad attr/grammar tests into parametrized test_namespaces_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_namespaces_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine pods integration tests logically - merge happy_path into test_pods_accuracy (datasets structurally identical); drop unused pods_happy_path.jsonl - merge groupby namespace/deployment into parametrized test_pods_groupby - merge orderby invariant + correctness + by-pod-name into test_pods_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_pods_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine nodes integration tests logically - merge happy_path into test_nodes_accuracy; drop unused nodes_happy_path.jsonl - merge orderby invariant + correctness + by-node-name into test_nodes_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_nodes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine namespaces integration tests logically - merge happy_path into test_namespaces_accuracy; drop unused namespaces_happy_path.jsonl - merge orderby invariant + correctness + by-namespace-name into test_namespaces_orderby - fold offset-beyond-total into test_namespaces_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in pods filter tests - regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1 sample pattern from pods_value_accuracy.jsonl (CI-proven expected values) - test_pods_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in nodes filter tests - regenerate nodes_filter_dataset.jsonl so every node mirrors the acc-n1 sample pattern from nodes_value_accuracy.jsonl (CI-proven expected values) - test_nodes_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in namespaces filter tests - regenerate namespaces_filter_dataset.jsonl so every namespace mirrors the acc-ns-1 sample pattern (2 pods) from namespaces_value_accuracy.jsonl - test_namespaces_filter now asserts namespaceCPU/namespaceMemory per record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes groupby + pod-phase tests with structure - merge pod_phase_counts_list_mode + _no_pods_on_node into parametrized test_nodes_pod_phase_counts ((dataset, node, filter, expected) cases) - rename groupby_cluster -> test_nodes_groupby, parametrize over k8s.node.name + k8s.cluster.name; adds the node-name-in-groupBy branch (nodeName populated, condition derived) that hosts/pods both cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align namespaces groupby with structure - rename groupby_cluster -> test_namespaces_groupby, parametrize over k8s.namespace.name + k8s.cluster.name; adds the namespace-name-in-groupBy branch (namespaceName populated) that hosts/pods/nodes all cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
922800ff98 | feat: adding support for Azure Container Apps (#11580) | ||
|
|
2d3772ef10 |
feat(infra-monitoring): v2 nodes integration tests (#11428)
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: added all tests * chore: fix for surfacing meta for pods custom group by * chore: added nodes integration test suite * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: formatting changed * chore: formatting changed * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align pods integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_pods_filter - combine bad attr/grammar tests into parametrized test_pods_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_pods_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_nodes_filter - combine bad attr/grammar tests into parametrized test_nodes_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_nodes_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine pods integration tests logically - merge happy_path into test_pods_accuracy (datasets structurally identical); drop unused pods_happy_path.jsonl - merge groupby namespace/deployment into parametrized test_pods_groupby - merge orderby invariant + correctness + by-pod-name into test_pods_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_pods_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine nodes integration tests logically - merge happy_path into test_nodes_accuracy; drop unused nodes_happy_path.jsonl - merge orderby invariant + correctness + by-node-name into test_nodes_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_nodes_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in pods filter tests - regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1 sample pattern from pods_value_accuracy.jsonl (CI-proven expected values) - test_pods_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in nodes filter tests - regenerate nodes_filter_dataset.jsonl so every node mirrors the acc-n1 sample pattern from nodes_value_accuracy.jsonl (CI-proven expected values) - test_nodes_filter now asserts the 4 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align nodes groupby + pod-phase tests with structure - merge pod_phase_counts_list_mode + _no_pods_on_node into parametrized test_nodes_pod_phase_counts ((dataset, node, filter, expected) cases) - rename groupby_cluster -> test_nodes_groupby, parametrize over k8s.node.name + k8s.cluster.name; adds the node-name-in-groupBy branch (nodeName populated, condition derived) that hosts/pods both cover Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
40e5cb4467 |
feat(infra-monitoring): v2 pods integration tests (#11424)
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: added all tests * chore: fix for surfacing meta for pods custom group by * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: formatting changed * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): align pods integration tests with review feedback - inline _post helper at call sites - combine filter operator tests into parametrized test_pods_filter - combine bad attr/grammar tests into parametrized test_pods_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_pods_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine pods integration tests logically - merge happy_path into test_pods_accuracy (datasets structurally identical); drop unused pods_happy_path.jsonl - merge groupby namespace/deployment into parametrized test_pods_groupby - merge orderby invariant + correctness + by-pod-name into test_pods_orderby ((column, record_field) x direction; sortedness now covered for all columns) - fold offset-beyond-total into test_pods_pagination page walk Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in pods filter tests - regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1 sample pattern from pods_value_accuracy.jsonl (CI-proven expected values) - test_pods_filter now asserts the 6 CPU/memory fields per filtered record Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test(infra-monitoring): drop dangling generator-script reference in pods tests pods_phases.jsonl comment referenced tests/gen_pods_datasets.py, which was never committed. Reword to describe the committed dataset instead. --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
b072095a9d |
feat: adding support for Azure AKS (#11615)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: adding support for Azure AKS * refactor: updating metric names in integration config * chore: generating OpenAPI spec * chore: adding note in overview * refactor: updating spatial aggregation and other names * refactor: updating reduceTo to empty value * refactor: updating title |
||
|
|
303908542a |
feat(infra-monitoring): v2 host endpoint integration tests (#11418)
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: added happy test * chore: added test 2 for accuracy and test 3 for missing metrics check * chore: added filter test 4 * chore: added 5th test for filterByStatus * chore: added group by tests * chore: pagination test added * chore: added validation tests * chore: added auth test * chore: fix for surfacing meta for pods custom group by * ci: register inframonitoring suite + ruff format 01_hosts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: added order by host.name test * refactor(infra-monitoring): address review comments on hosts integration tests - inline _post helper at call sites - combine filter operator tests into parametrized test_hosts_filter - combine bad attr/grammar tests into parametrized test_hosts_filter_invalid - convert orderby total-invariant nested loop to stacked parametrize - drop redundant test_hosts_auth (auth covered globally) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts groupby tests into parametrized test - merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into test_hosts_groupby parametrized on (dataset, group key, expected counts/values) - preserves all assertions incl hostName populated-vs-empty branch coverage Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts orderby tests into parametrized test - merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name into test_hosts_orderby parametrized on (column, record_field) x direction - each case asserts both the total/len invariant and sortedness; sortedness now covered for all metric columns, not just cpu - single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): combine hosts pagination tests - fold offset-beyond-total case into the test_hosts_pagination page walk (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total invariant covers the beyond-total page's total == K) - single seed instead of two Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy - happy_path and value_accuracy datasets were structurally identical (same 4 metrics, same sample counts, 2 hosts); one test now asserts shape/contract + exact metric values in a single seed/request - drop unused hosts_happy_path.jsonl Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(infra-monitoring): assert metric value accuracy in hosts filter tests - regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1 sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values) - test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't distort aggregation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor(infra-monitoring): scope filter expected values inside test_hosts_filter Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
f52ce461d0 |
feat: generalizes the Legend component so it can be reused by non‑uPlot charts, and adds a shared Pie (donut) chart built on top of it (#11583)
* refactor(uPlotV2): split Legend into presentational + uPlot controller Separate the legend into a presentational `Legend` (renders supplied items + delegated handlers, with search/copy/virtualization) and a `UPlotLegend` controller that wires it to the uPlot config via useLegendsSync/useLegendActions. This lets non-uPlot charts reuse the legend. ChartWrapper now renders UPlotLegend (behaviour unchanged for TimeSeries/Bar/Histogram). Also fixes the copy-button hover layout shift (reserve space, fade via opacity) and uses @signozhq/ui tooltips for legend items. * feat(charts): add shared Pie chart component Add a reusable @visx donut Pie chart (charts/Pie) that consumes the shared presentational Legend: chart/legend split via calculateChartDimensions, search/copy, hover-sync, slice hide/unhide (mirrors the uPlot legend) with localStorage persistence, leader labels and a centre total. Split into PieArc / PieCenterLabel / usePieInteractions for readability. Also renames the tooltip click payload TooltipClickData -> ChartClickData across the TooltipPlugin and chart prop types (the type describes any chart click, not just tooltips). * test(charts): add Pie chart + usePieInteractions tests Cover the shared Pie chart and its helpers/hook: - utils: scaled font size, arc geometry, colour lighten/fill dimming - usePieInteractions: marker toggle, label isolate/reset, hover focus, hidden-slice guard, localStorage persistence + rehydration - PieArc: leader-label threshold, label truncation, enter/leave/click - PieCenterLabel: numeric/unit split - Pie: no-data state, arc-per-slice rendering, legend, layout per position, hide-on-marker-click Adds a global ResizeObserver polyfill to jest.setup.ts (alongside the existing IntersectionObserver one) since visx's useTooltipInPortal requires it. * chore: pr review fixes * chore: pr review comments * chore: pr review comments |
||
|
|
2e8aa0f42d |
fix(sso): strip conditional google auth and role mapping fields from save payload (#11613)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
c688170a13 |
feat(trace-detail): add flamegraph v3 with optimized memory consumption (part 1) (#11462)
* feat: add types for flamegraph v3 in module structure * chore: remove limit from request payload It's a new api so doesn't need to be backward compatible * feat: add config for flamegraph * feat: add method to enrich selected spans * feat: add api and module for flamegraph v3 * feat: query full spans for smaller traces * chore: move exported methods to the top * chore: ignore nil assigment lint error * chore: extract out flamegraph building logic for easier review * chore: update openapi specs * chore: move flamegraph after aggregation to reduce diff * chore: remove un related changes to keep diff minimum * chore: avoid passing request type to module * feat: return selected fields only in flamegraph And reduce the no. of fields scanned from db * chore: make array fields required and non nullable * chore: update openapi specs * chore: mark all fields in response as required * refactor: switch to using group by instead of distinct on Since group by is faster is enough no. of threads are used * chore: remove service name root level field from flamegraph span * chore: update openapi specs * fix: update alias in order by of the query * chore: remove unnecessary nil check * fix: set empty array for missing data * chore: use single line for error creation * chore: mark response fields as required * chore: update openapi specs * chore: add test to verify the flamegraph query sql * chore: update openapi specs * chore: use orderbyasc instead of order by |
||
|
|
7844fc1fe1 |
fix(authn): include base path in SSO callback and error-redirect URLs (#11588)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix(authn): include base path in SSO callback and error-redirect URLs The SAML ACS URL and the OIDC/Google redirect URLs were built from the site URL host plus a hardcoded path (e.g. /api/v1/complete/saml), dropping the base path. When SigNoz is served under a sub-path (global.external_url with a path, e.g. https://example.com/signoz), the API is served at <prefix>/api/v1/complete/<provider>, so the identity provider was told to call back to a path without the prefix and hit a 404. Thread global.Config into the SAML/OIDC/Google callback providers and the session handler, and prepend global.Config.ExternalPath() to the callback paths and the SSO error redirect to /login. Root deployments are unchanged since ExternalPath() returns "" without a configured sub-path. * fix(authn): run callbackauthn suite with base path * refactor(tests): self-contained base-path fixture for callbackauthn Move the base-path setup out of the shared create_signoz factory and into a package-scoped signoz fixture in the callbackauthn suite's own conftest (same pattern as rootuser/conftest.py). When --base-path is set the fixture appends SIGNOZ_GLOBAL_EXTERNAL__URL and the url-config prefix locally; without it it behaves exactly like the global fixture. The shared factory and docker config are left untouched. * test(authn): add base-path SSO integration suite Adds a dedicated `basepath` integration suite that serves SigNoz under a hardcoded /signoz prefix (SIGNOZ_GLOBAL_EXTERNAL__URL) and exercises the SAML and OIDC happy-path logins end-to-end. Every SigNoz API call is issued under the prefix and the IdP callback (ACS / redirect URI) is registered with the prefix, so the flow only passes when the backend builds prefixed callback URLs. The shared TestContainerUrlConfig and create_signoz factory are left untouched. The suite's conftest shadows the same-named auth fixtures (create_user_admin, get_token, get_session_context, apply_license) with base-path-aware variants and reuses the Keycloak/browser fixtures, which are not under the base path. Google SSO is not covered: it requires the real accounts.google.com issuer and a real Google login, so it cannot run against the local Keycloak IdP; it shares the identical path.Join(ExternalPath, redirectPath) callback logic that SAML and OIDC validate. * revert: drop in-place base-path wiring from integration harness Removes the --base-path flag, TestContainerUrlConfig.base_path, the idp.py and 02_saml.py .get() changes, and the callbackauthn base-path conftest fixture. Base-path SSO is now covered by the dedicated `basepath` suite, so the shared harness (TestContainerUrlConfig, create_signoz, callbackauthn) is back to its original root-only form. * refactor(test): remove apply_license fixture * refactor(test): extract base-path-aware auth factories Extract the session-context / token / token-pair / admin-registration logic in fixtures/auth.py into reusable factory functions that take an optional base_path (token_getter, session_context_getter, tokens_getter, register_admin), with the fixtures delegating to them. Default base_path="" is byte-identical for existing callers. The basepath suite's conftest now reuses these factories with the /signoz prefix as thin one-line fixture overrides instead of duplicating the request logic. * refactor(test): give base-path admin registration a distinct cache key register_admin takes an optional cache_key (default "create_user_admin"); the basepath suite passes a distinct key so that under --reuse the admin marker cached against the signoz-base-path container is not restored for (or from) other suites' default signoz instance. |
||
|
|
e02da843f2 |
fix(infra-monitoring-charts): fixes for hosts/deployments/jobs/namespaces (#11599)
* fix(infra-monitoring-jobs): title of the chart misleading Ref: https://github.com/SigNoz/engineering-pod/issues/5211#issuecomment-4619888389 * fix(infra-monitoring-namespaces): wrong limit & using wrong filter for statefulsets Ref: https://github.com/SigNoz/engineering-pod/issues/5211#issuecomment-4619023361 * feat(infra-monitoring-hosts): add new chart based on operations time Ref: https://github.com/SigNoz/engineering-pod/issues/5211#issue-4578950064 * feat(infra-monitoring-hosts): add group by on chart for system disk io Ref: https://github.com/SigNoz/engineering-pod/issues/5211#issuecomment-4611797867 * fix(infra-monitoring-hosts): chart for disk operations using the wrong metric Ref: https://github.com/SigNoz/engineering-pod/issues/5211#issue-4578950064 * fix(infra-monitoring-deployments): little typo in the chart name * fix(volumes): ensure the name/type are standard based on the metric type |
||
|
|
0948a983c3 |
feat(dashboards): V2 dashboard — settings, configure drawer & inline title (#11581)
* refactor(dashboard-v2): name props interfaces by component (Props → <Component>Props) * feat(dashboard-v2): shared header chrome + confirm-delete dialog * feat(dashboard-v2): dashboard settings drawer — general, variables/publish tabs * feat(dashboard-v2): sections & panels — empty states, menus, theming, review fixes * feat(dashboard-v2): dashboard header — inline-editable title, actions menu * feat(dashboard-v2): container wiring + new-panel flow |
||
|
|
4f7ebd1ff1 |
chore(release): bump to v0.127.1 (#11606)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
Co-authored-by: primus-bot[bot] <171087277+primus-bot[bot]@users.noreply.github.com> |
||
|
|
15fbe4f788 |
fix(frontend): dropdown menu rendering behind antd drawer/modal (z-index regression) (#11604)
* feat: update dropdown menu content z-index to match antd base z-index * feat: align dropdown to start |
||
|
|
7da7fda283 |
chore(alertmanager): support custom receiver configs (#11473)
Some checks failed
build-staging / js-build (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore(alertmanager): support custom receiver configs * chore: update * chore: update types * chore: regenerate * chore: copy type and function |
||
|
|
9093b4c442 |
fix: service integration tests fix (#11598)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
97191eb7a2 |
chore: replace perses/perses with perses/spec and introduce kind enum values (#11559)
* chore: replace perses/perses with perses/spec and introduce kind enum values * fix: enforce query kind values * chore: generate frontend api spec * test: fix patch unit tests using correct query kind value * feat: add validation to query builder request type |
||
|
|
9222845ce8 |
feat(billing): migrate BillingUsageGraph from uPlotLib to uPlotV2 and added stacking (#11579)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(billing): migrate BillingUsageGraph from uPlotLib to uPlotV2 and added stacking * feat(billing): revamp billing page UI to match Settings Revamp designs * feat(billing): refactor and feedback fixes * feat(billing): test case fix and css refactor * feat(billing): css fix * feat(billing): migrate BillingContainer and BillingUsageGraph to CSS modules * feat(billing): feedback fixes |
||
|
|
b3b245ebc5 |
feat: adding get cloud integration service for account handler (#11497)
* feat: adding get cloud integration service for account handler * feat: adding integration test for new API endpoint * ci: fix py fmt lint * refactor: cloudfront integration service (#11570) Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> * fix: update tests --------- Co-authored-by: Gaurav Tewari <gauravtewari111@gmail.com> Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
9c9016d49e |
feat(dashboards): V2 dashboard — sections, drag-and-drop & panel management (#11544)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(dashboard-v2): session store — edit-context + persisted collapse * feat(dashboard-v2): patch-op builders (RFC-6902) for layouts & panels * feat(dashboard-v2): editable dashboard shell + within-section panel geometry * feat(dashboard-v2): section layout — reorder & collapse * feat(dashboard-v2): section lifecycle — add, rename, delete, migrate * feat(dashboard-v2): panel management — add, delete, move |
||
|
|
81eadac3a8 |
feat(trace-details): lazy aggregations + waterfall v4 cutover (#11556)
Some checks failed
build-staging / js-build (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: wire available colors on spans instead of aggregations from waterfall api * feat: integrate aggregation api * feat: integrate v4 waterfall * feat: dropdown style fix * feat: move to open api spec * feat: move to open api spec * feat: minor changes |
||
|
|
eec1c45e3f |
fix(trace-flamegraph): prevent layout hang on very wide traces (#11578)
* feat: algo change * feat: update test |
||
|
|
ce26458b9f |
feat(cloud-integrations): adding endpoint services metadata for account (#11563)
* feat: adding endpoint services metadata for account * fix: adding missing response writer in error * refactor(cloud-integrations): use account-scoped ListAccountServices endpoint when an account is connected (#11569) * fix: frontend changes for issue 4616 * fix: update frontend changes --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> --------- Co-authored-by: Gaurav Tewari <gauravtewari111@gmail.com> Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
7932917f5f |
refactor: service response changes and dashboardID handling (#11485)
* refactor: service response changes and dashboardID handling * refactor: removing unused enrichDashboardIDs func * revert: restore frontend files to main state * refactor: updating response * refactor: updating nullable tag * chore: adding required tags * chore: adding required tags for ServiceDashboard struct * refactor(integrations): align service-details UI with new cloud-integration API + disabled-dashboard state (#11547) * refactor: cloud integration service * fix: update schemas * fix: update schema * fix: minor fixes * refactor: review comments --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> --------- Co-authored-by: Gaurav Tewari <gauravtewari111@gmail.com> Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
4cf8125372 |
refactor(sentry-config): disable tracing & ensure correct environment (#11552)
* refactor(sentry-config): disable tracing & ensure correct environment * refactor(sentry-config): derive environment from build-time env var Replace the runtime hostname-based getCurrentEnvironment() with a build-time process.env.ENVIRONMENT value. The environment is injected once at build time via VITE_ENVIRONMENT, wired through the vite define block, and consumed directly by Sentry.init. Staging builds bake in 'staging' and enterprise builds bake in 'production'. * refactor(sentry-config): keep browserTracingIntegration for transaction tag Tracing stays disabled (tracesSampleRate: 0), but the integration is retained so the transaction tag remains available for routing. Ref: https://github.com/SigNoz/platform-pod/issues/2393#issuecomment-4603658055 * feat(sentry-config): set Sentry release from VITE_VERSION Set release in Sentry.init from process.env.VERSION (VITE_VERSION, default 'dev') and pin the @sentry/vite-plugin upload release to the same value so sourcemaps resolve. Plumb VITE_VERSION through build-enterprise & build-staging (make info-version) and gor-signoz (tag). * fix(sentry-config): align Sentry.init indentation and set VITE_ENVIRONMENT for gor-signoz * fix(sentry-config): require VITE_VERSION for sourcemap upload Refuse to register the Sentry vite plugin without an explicit VITE_VERSION, and drop the 'dev' fallback for both the plugin release name and process.env.VERSION so a sourcemap upload can never happen without a matching release. --------- Co-authored-by: grandwizard28 <vibhupandey28@gmail.com> |
||
|
|
959e32b6f3 | chore(codeowners): move openapi schema generation ownership to backend (#11585) | ||
|
|
d3304af0ed |
chore: removed workspace suspended page's text for data retention (#11501)
* feat: removed workspace locked and suspended page's text for data retention * chore: reverted changes to workspacelocked file |
||
|
|
df7ef3cdb5 |
feat: v2 dashboard update, lock, unlock, and patch API (#11481)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: follow proper unmarshal json method structure * feat: v2 create dashboard API * fix: only return name of a tag in dashboard response * fix: use existing tag's casing if new tag is a prefix of an existing tag * fix: go lint fix * fix: more dashboard request validations * chore: separate method for validation * fix: module should also validate postable dashboard * test: integration tests for create API * test: integration test fixes * chore: use existing mapper * fix: remove extra spec from builder query marshalling * fix: merge conflicts * feat: v2 dashboard GET API * feat: v2 dashboard update API * fix: add allowed values in err messages * fix: remove extra (un)marshal cycle * fix: return 500 err if spec is nil for composite kind w/ code comment * fix: no need for copying textboxvariablespec * fix: wrap errors * chore: no v2 subpackage * fix: no v2 package and its consequences * fix: no v2 package and its consequences * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * fix: merge fixes * fix: query-less panels not allowed * feat: consolidate tag module and tagtypes changes from downstream branches * chore: update api specs * chore: update api specs * fix: allow only 1 query in a panel * test: unit test fixes * feat: method to fetch tags for multiple entries at once * test: fix mock interface in test * feat: move tags to key:value pairs model * feat: entity type column in tags * fix: pass entity type in create many * feat: reserved DSL key validation for tags * feat: new module for tags * chore: merge conflicts error fixing pt 1 * fix: lint fix regarding nil, nil return in test file * chore: change where tag module is instantiated * fix: add back api endpoint * chore: generate api spec * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: extend bun in joinedRow * fix: compile error fix * fix: remove soft delete references * feat: method to build postable tags from tags * fix: diff error codes for invalid keys and values * fix: correct pk in bun model for tag relations * fix: created and updated by schema * fix: use coretypes.Kind instead of defining entity type * fix: singular table name * chore: remove org ID from tag relation * feat: foreign key on tag id * feat: add SyncTags method that covers creation and linking * fix: remove entity type definition * fix: fix build errors in dashboard module * chore: bump migration number * chore: change entity id to resource id * fix: add org id filter in all list and delete queries * fix: remove user auditable * fix: add ID in tag relation * fix: fix build error * fix: fix build error * chore: bump migration number * fix: add len check on tags keys and values * fix: add regex for tags * chore: remove methods that shouldn't be exposed * fix: use sync tags in create api * feat: functional unique index in sql schema * fix: only ascii in regex * fix: use sync tags method in update * chore: rename create method to createOrGet * chore: use tagtypestest package for mock store * chore: combine functional unique index with unique index * chore: move tag resolution to module * test: add unit tests for new idx type * chore: comment out tags unique index for now * chore: add a todo comment * chore: comment out unique index test * feat: add created at to tag relations * chore: comment out unique index test * chore: bump migration number * chore: remove uploaded grafana flag from metadata * Merge branch 'main' into nv/v2-dashboard-create * chore: revert idx generation to resolve conflicts * fix: use store.RunInTx instead of taking in sqlstore * fix: use binding package to get request * chore: move NewDashboardV2 to NewDashboardV2WithoutTags * chore: rename module to m * fix: add ctx needed in sqlstore * fix: remove sqlstore passage in ee pkg * chore: change dashboardData to dashboardSpec * feat: follow the metadata+spec key structure * feat: follow the metadata+spec key structure in open api spec * feat: v2 dashboard GET API (#11136) * feat: v2 dashboard GET API * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * chore: update api specs * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: fix build error * chore: revert all frontend changes * fix: remove public dashboard from get v2 call * chore: revert all frontend changes * fix: fix build errors post merge conflict resolution * feat: lock, unlock, create public, update public v2 dashboard APIs (#11167) * feat: lock, unlock, create public, update public v2 dashboard APIs * chore: update api specs * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * chore: revert all frontend changes * fix: fix build errors and remove v2 create/update public apis * chore: use v1 methods wherever possible * fix: use update v2 store method * chore: update frontend schema * chore: update frontend schema * chore: generate api specs * chore: generate api specs * feat: patch dashboard api (#11182) * feat: lock, unlock, create public, update public v2 dashboard APIs * feat: delete dashboard v2 API and hard delete cron job * feat: patch dashboard api * chore: update api specs * chore: update api specs * chore: update api specs * chore: remove delete related work * fix: add examples of structs for value param in param description * test: unit test fixes * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * test: key value tags in test * fix: build error in patch module method * fix: build error in Apply method * fix: use sync tags method in update * fix: fix build errors * fix: fix all patch application tests * chore: add more mapper methods * fix: add source for v2 dashboards * chore: incorporate source * chore: incorporate source in api spec * chore: incorporate source * fix: add some required fields * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 api specs * fix: remove unused param in constructor * fix: improve api descriptions * fix: remove unneeded comment * chore: increase MaxTagsPerDashboard to 10 * fix: set display name in unmarshal json * chore: remove integration test for now (will add along with list api) * feat: add validation on dashboard name * test: fix build errors and tests based on name related changes * fix: correct convertor method name * test: add unit tests for type conversions * chore: remove enum def of threshold comparison operator * feat: add flag to generate unique name in backend * chore: generate api specs * chore: make tags required in postable * fix: build error fix * fix: fix build error in test after merge conflict * fix: remove unused store method * fix: remove unused module methods * fix: use v1 store update method * fix: change data to spec in api param description * chore: add back accidentally removed tests * fix: address review comments * chore: generate frontend api spec * chore: use same jsonpatch package as done in zeus * chore: remove JSONPatchDocument and use patchable everywhere * fix: make remove idempotent in patch * chore: separate file for patch types * chore: better error passage * fix: remove extra decodePatch calls * fix: use must new org id * fix: proper error passage * chore: rename updateable to updatable --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
f4ede36d3e |
fix: ui issues in Trace and logs (#11564)
* fix: ui migration issues * fix: minor issue --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
fa7d941266 |
fix: time not being updated issue in domainlist and traces (#11460)
* fix: time not being updated issue in domainlist and traces * refactor: make a hook * chore: more refactor * fix: test cases * fix: test cases * refactor: code * fix: add test cases * fix: test cases --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
fdb22e6669 |
test(alerts): add tests for list alerts & triggered alerts (#11554)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* test(alerts): add tests for triggered and list alerts page * test(alerts): add tests for list alerts and triggered alerts * test(fireEvent): replace by userEvent |
||
|
|
95adbc31cc |
chore(dashboard): remove obsolete Sentry query-range timeout warning (#11576)
Removes the useEffect that captured a Sentry warning when a widget's query range was not called within 120s, along with the now-unused queryRangeCalledRef and the @sentry/react import in GridCard. Closes SigNoz/engineering-pod#5217 |
||
|
|
c5288fc1ea | fix(dashboards): variables can be undefined when create new dashboard (#11155) | ||
|
|
86e71151d7 |
fix: remove widget filter references when a dashboard variable is deleted (#11270)
* fix: the query being updated after deleting the variables
* fix: use exact variable string match when removing clauses on delete
Passing `true` to removeKeysFromExpression removed the first clause whose
value contained any `$`, which corrupted expressions when two variables
shared the same filter attribute (e.g. $env and $env_region both backed
by deployment.environment). Switching to the exact variable string
(`$${variableName}`) ensures only the deleted variable's clause is removed.
Also adds 9 targeted edge-case tests covering shared-key variables,
variable-name boundary ($env vs $environment), mixed literal/variable
clauses, multi-value array filter items, clickhouse_sql, idempotency,
empty widgets, and unrelated-variable no-ops.
* fix: refined the deletiong process
* fix: adding toast
* fix: resolved comments
* fix: updated the tests and moved func to utils
|
||
|
|
4fce33e2b3 |
chore: add metric for waterfall monitoring (#11557)
Some checks failed
build-staging / js-build (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: add metric for waterfall monitoring
Gauge for config limit and counter to count large traces
* chore: use traces instead of tracedetail in metric name
* chore: try removing high cardinality attributes
* chore: use typed argument in logs
* chore: add another metric to get idea of trace sizes
* chore: change config namespace to trace instead of tracedetail
To make it consistant with metric namespaces
* chore: add unit to the windowed response count metric
* chore: use metrics names as per otel conventions
* chore: use constants for metric attributes
* refactor: return error on metric creation failure
* Revert "refactor: return error on metric creation failure"
This reverts commit
|
||
|
|
a0ae4dfd05 |
feat(dashboards): V2 dashboard details — base scaffolding (#11543)
* feat(dashboard-v2): route entry — DashboardPageV2 fetches dashboard, gates loading/error * feat(dashboard-v2): presentational container — compose description & sections layout * feat(dashboard-v2): breadcrumbs + header chrome * feat(dashboard-v2): dashboard description — title, meta, actions, rename * feat(dashboard-v2): read-only panels & sections layout |
||
|
|
a0b14e0835 |
fix: do not show errors for non-existent cost meter metrics (#10843)
* fix: show warning for non-existent cost meter metrics * chore: lint fix by removing unused list * chore: py fmt add new line * chore: missing newline between tests * fix: no warnings or errors for internal metrics * fix: pylint fix by adding new line * fix: lint fix in test |
||
|
|
987844dbc8 |
refactor(types): tighten MetricQueryRangeSuccessResponse shape (#11562)
Replaces the `SuccessResponse<...> & { warning?: Warning; meta?: ExecStats }`
intersection with a single interface that extends SuccessResponse and declares
warning + meta on its own — no stitched intersection. Also types `params` as
`QueryRangeRequestV5` (was `unknown`), so callers can drop the redundant
`as QueryRangeRequestV5` casts.
Knock-on updates: 13 consumers switched from the raw
`SuccessResponse<MetricRangePayloadProps, unknown>` shape to the new
`MetricQueryRangeSuccessResponse`; 3 prod casts removed;
convertV5ResponseToLegacy and getTimeRange tightened their accept-params types.
|
||
|
|
e0ad7e487a |
chore(release): bump to v0.127.0 (#11558)
Co-authored-by: primus-bot[bot] <171087277+primus-bot[bot]@users.noreply.github.com> |
||
|
|
af72a4118b |
fix: resolve UX regressions across dashboards, metrics and alerts pages after component migration (#11546)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix: resolve UX regressions across dashboards, metrics and alerts pages after component migration - NewSelect: make the @signozhq checkbox label fill the row (min-width: 0) so long option text truncates with an ellipsis; size Only/Toggle buttons to the resting row height so hover no longer grows the row - PlannedDowntime: reset field-label styles bleeding into the migrated RadioGroup option labels and add spacing between options - Page-level contrast, spacing, alignment and icon-size fixes across dashboard settings, metrics explorer, alert rules, routing policies, auto-refresh and the time picker * fix(multiselect): surface clear icon and remove dropdown double-scroll - add .ant-select-clear color override so the multiselect clear (x) icon is visible on the dark selector (the single-select had it, multiselect didn't) - raise the dropdown max-height so the react-virtuoso list (<=300px) plus the header/footer fits, leaving the list as the single scroller instead of the list and the container both scrolling - StatsCard: drop the unnecessary !important on .count-label color * fix: success colors |
||
|
|
dc6a1d0a4e |
fix: skip resource filter if it exceeds a threshold (#11524)
* fix: skip resource filter if it exceeds a threshold * fix: test cleanup * fix: test cleanup * fix: more cleanup * fix: tests |
||
|
|
2e60ab0f81 |
fix(logs): dedupe body/timestamp columns in explorer picker (#11553)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix: duplicate body issue * fix: update test |
||
|
|
29ed44a8ce | fix(sso): send empty object when clearing group/domain mappings on save (#11550) | ||
|
|
76ee298605 |
feat(logs/traces): migrate column picker UI to FieldsSelector (#11516)
* feat: field selector migrated to telemetry field key * feat: move floating panel to field selector * feat: sync columns state in logs * feat: sync columns state in traces * feat: logs field migration integrate * feat: traces field migration integrate * feat: minor refactor * feat: tests updated * feat: move to key from name on fields for logs and traces * feat: update tests * feat: update tests |
||
|
|
218f8269dd | fix: donot close suggestion on typing period (#11490) | ||
|
|
e8effa5b3f |
feat: [traces] time aware dynamic field mapper (#11234)
* feat: [traces] time aware dynamic field mapper * fix: minor changes * fix: get keys after modifying the selectkeys * fix: more updated * fix: lint * fix: address comments * fix: tests * fix: tests --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
ca5ff7f617 |
fix(web): update web settings config (#11548)
* fix(web): update web settings config * fix(web): add test case for config settings |
||
|
|
a487b311bc |
fix(metrics-explorer): handle in case .data is undefined (#11527)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
6473066193 | fix(metrics-explorer): handle in case .atributes is undefined (#11528) | ||
|
|
fb0d34ae35 |
feat(auth): validate reset password token on page load before showing form (#11522)
* feat(auth): validate reset password token on page load before showing form
* fix(auth): distinct error copy for expired vs invalid token; skip 401 rotation on verify endpoint
* fix(auth): use endsWith for orval-generated endpoint guards in interceptorRejected
* Revert "fix(auth): use endsWith for orval-generated endpoint guards in interceptorRejected"
This reverts commit
|
||
|
|
ba684acba3 | fix(create-alert-v2): tooltip not showing due to pointer-events none (#11489) | ||
|
|
184724003a |
chore: remove query status (#11476)
* chore: remove confusing query status * chore: remove extra things --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
a4d3f10da8 | chore(codeowners): add pulse for alerts and infra monitoring pages (#11508) | ||
|
|
a71ac2ada6 |
fix: add adjustkeys in trace operator cte builder (#11349)
* fix: add adjustkeys in trace operator cte builder * fix: more fixes * fix: cleanup * fix: move tests to trace operator file * fix: address comments * fix: lint issues --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
0963ff08cd | feat(web): disable all integrations by default (#11539) | ||
|
|
e43aeb8e24 |
fix: add references in waterfall response (#11536)
* fix: add references in waterfall response * chore: update openapi specs * chore: mark reference a non nullable field |
||
|
|
9074208b09 | feat: added trace events (#11538) | ||
|
|
571e23910e |
feat(ai-assistant): show descriptive Noz hover tooltip on all entry points (#11526)
Noz launched under early access and its three entry points (header button,
floating trigger, sidebar nav item) previously showed a bare "Noz" tooltip,
which does not educate users who don't yet recognize the name. Replace it with
a shared descriptive tooltip ("Noz, your AI teammate") sourced from a single
constant so the surfaces never drift.
- Add NOZ_TOOLTIP_TITLE in components/Noz/Noz.constants.ts
- Header button and floating trigger read the constant
- Add optional tooltip field to SidebarItem; NavItem wraps the whole row in a
Tooltip (non-pinnable items only, to avoid nesting with the pin tooltip)
- Move the trigger's Noz icon to the Button prefix slot to match the codebase
convention for icon-only buttons
|
||
|
|
5e94f7ac6e |
feat(trace-details): Add API endpoint & module for trace aggregations (#11452)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: add endpoint & module for trace aggregations * chore: use v1 for aggregations api * chore: update openapi specs * feat: add implementation for aggregation store * chore: use query builder for count by field * chore: remove support for aggregations on attributes Only supporting resource fields for now, since this is not user input but hard coded client experience * chore: extract out inner query as cte * chore: again extract out inner query * chore: move end_ns computation to first cte for simplicity * chore: use notEmpty function instead of having * fix: type cast issue in sum function * chore: use query builder for duration query as well * chore: add tests for trace store sql * chore: remove unnecessary column checks * chore: format the expected sql queries * fix: formating was breaking test * fix: change import and remove formating from sql * chore: remove formating from store impl as well * fix: mark required fields as required * fix: explicitly mark nullable false for required field * fix: mark required fields in response as well |
||
|
|
387ad06c2d |
fix: tag container styles in qb (#11503)
Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
72ff433c20 |
feat(logs/traces): streamline column state — selectColumns becomes canonical source (#11426)
Some checks failed
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
* feat: field selector migrated to telemetry field key * feat: move floating panel to field selector * feat: sync columns state in logs * feat: sync columns state in traces |
||
|
|
587f518599 | refactor(infra-monitoring): removed primary filters deprecated prop (#11505) | ||
|
|
bfc50ee9c3 |
chore: use distinct fingerprint in resource filter (#11521)
* chore: use distinct fingerprint in resource filter * fix: use group by instead of distinct |
||
|
|
4b08ba1330 | fix: qb warnings (#11518) | ||
|
|
557a7120df |
feat: v2 dashboards list page (#11404)
* feat: add useIsDashboardV2 hook
* feat(dashboards-list-v2): page shell
* feat(dashboards-list-v2): loading / error / empty / no-results state components
* feat(dashboards-list-v2): SearchBar input component
* feat(dashboards-list-v2): CreateDashboardDropdown (new / import JSON entry)
* feat(dashboards-list-v2): DashboardRow + per-row ActionsPopover with v2 delete
* feat(dashboards-list-v2): ListHeader with sort/order + Configure Metadata trigger
* feat(dashboards-list-v2): JSON import modal (Monaco editor + sample)
* feat(dashboards-list-v2): Configure Metadata modal + persisted visible-columns store
* feat(dashboards-list-v2): wire list to v2 API with pagination, URL state, debounced search
* chore: park v2 dashboard pages until backend lands on main
* refactor(dashboards-list-v2): extract lastUpdatedLabel into utils
Dedupe the relative-time formatter that was copied into both DashboardRow
and ConfigureMetadataModal. Single source in DashboardsListPageV2/utils.ts.
* refactor(dashboards-list-v2): group state components under states/
Move EmptyState, ErrorState, LoadingState, and NoResultsState under
components/states/. They're a coherent family (interchangeable view
branches in the list orchestrator) and grouping them sets up shared
styling extraction next.
Pure relocation — git mv preserves history; only DashboardsList.tsx's
imports change.
* refactor(dashboards-list-v2): extract shared state wrapper styles
Pull the dashed-border card layout, body text, and learn-more CTA into
states/states.module.scss. EmptyState, ErrorState, and NoResultsState
now compose from the shared base and only declare what differs
(padding, gap, color, font-weight). LoadingState is a different shape
(skeleton stack) and stays untouched.
Cascaded properties are byte-equivalent — pure de-duplication.
* refactor(dashboards-list-v2): port to @signozhq/ui primitives
Replace antd Button/Input usages and bespoke <button> rows with the
@signozhq/ui equivalents across the four review-flagged surfaces:
- EmptyState "Learn more" → Button variant="link" color="primary"
- ErrorState "Retry" → Button variant="outlined" color="secondary"
with prefix icon; drops the sub-pixel .retryButton overrides in
favour of the variant's tokenized layout.
- ErrorState "Contact Support" → Button variant="link" color="primary"
- SearchBar Input → signoz Input (data-testid → testId)
- ActionsPopover rows → Button variant="ghost" color="secondary"
(color="destructive" for Delete) with prefix icons
- ActionsPopover trigger → Button size="icon" variant="ghost"
The signoz button variant handles the icon-slot alignment that the
removed .actionItem styling reimplemented manually, so the bulk of
ActionsPopover SCSS is deleted. A minimal .menuItem class still
left-aligns + fills the popover row, and .deleteDivider keeps the
hairline separator above the destructive action.
Popover itself stays on antd — migrating to @signozhq/ui/dropdown-menu
is deferred (same TODO as CreateDashboardDropdown).
* style(dashboards-list-v2): use font tokens across new SCSS
Replace literal font-size/weight values across the V2 page SCSS with
the shared design-token custom properties already used elsewhere:
- 14px → var(--font-size-sm)
- 12px → var(--font-size-xs)
- 400 → var(--font-weight-normal)
- 500 → var(--font-weight-medium)
- 600 → var(--font-weight-semibold)
ErrorState.module.scss was tokenized alongside its .retryButton
removal in the previous commit. Three literals remain because they
have no clean token equivalent: 11px (sub-token), 8px (avatar
initial), and 12.805px (sub-pixel artifact from a Figma export,
a separate concern).
* style(dashboards-list-v2): replace sub-pixel padding in CreateDashboardDropdown
Round 5.937px / 11.875px / 1.484px to clean integer pixel values
(6px / 12px / 2px). The sub-pixel values were the "trial-and-error"
artifact reviewer flagged — likely a Figma scaling round-trip.
Difference is sub-pixel and not visible on any standard DPR.
* feat(dashboards-list-v2): treat search input as DSL with explicit submission
What the user types is what gets sent to the API as the `query`
param — no more wrapping the input in a synthesized
`name CONTAINS '…' or description CONTAINS '…'` clause.
This gives users the full DSL surface (name, description, created_by,
created_at, updated_at, locked, public, source, tag-key equality)
instead of the name+description CONTAINS approximation.
Submission is explicit (Enter, blur, or a return-key icon button
in the input's suffix slot) so an in-progress DSL string never
hits the API mid-typing. On error, the toolbar (search + create)
stays visible above the ErrorState so users can edit and retry
without losing their place.
- Drop buildSearchDSL helper and the 300ms debounce.
- Pass searchInput.trim() to the API; empty input clears filter.
- SearchBar gains onSubmit (Enter / blur / suffix click).
- Move ErrorState below the toolbar in DashboardsList layout.
- Sync local input from searchString on URL changes (back/fwd).
- Placeholder updated to hint at DSL syntax.
Trade-off: a bare "foo" no longer matches anything; users now need
to type "name CONTAINS 'foo'". This is the new UX.
* fix(dashboards-list-v2): tighten ActionsPopover button styling
- Drop variant="ghost" on the three non-destructive row buttons so
they pick up the signoz Button default.
- Use <Divider /> from @signozhq/ui above the destructive Delete
button instead of a bespoke .deleteDivider class.
- Drop the surrounding .content padding and the now-unused
.deleteDivider rule. Keep .menuItem for left-alignment + width.
* fix(dashboards-list-v2): surface DSL parse errors on 400 responses
When the BE rejects the search query with a 4xx, show the server-
provided detail (e.g. `invalid filter query: unsupported expression
"asdas" — every term must be of the form \`key OP value\``) instead
of the generic "Something went wrong" panel.
- ErrorState gains optional httpStatus + errorMessage props.
For 4xx it renders a two-line layout (title + cleaned detail)
and drops the Retry button (retrying the same bad query won't
help). Contact Support stays.
- Add formatQueryErrorMessage util: strips the "invalid filter
query:" prefix that the FE title already implies, and rewrites
backtick-quoted format hints to use double quotes.
- DashboardsList extracts status + message via toAPIError and
passes them through. Search toolbar remains visible above the
error, so the user can fix and resubmit.
* chore: fix lint error due to rebase
|
||
|
|
11eb6e112b |
feat: rename AI Assistant to Noz and introduce Noz component with hov… (#11510)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
* feat: rename AI Assistant to Noz and introduce Noz component with hover animation * fix(ai-assistant): render Noz empty-state icon at true brand color The .emptyIcon wrapper around the large empty-state Noz mascot applied opacity: 0.85. Since opacity composites against the background, the brand red (#E5484D) measured as #E96469 over the light panel and #C53F44 over the dark panel instead of its true value. Removed the opacity so the mascot keeps #E5484D in both themes. --------- Co-authored-by: makeavish <makeavish786@gmail.com> |
||
|
|
0d035ef57d |
feat(tanstack-text): add support for forwardRef (#11464)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
|
||
|
|
72dd544288 |
Revert "refactor: replace antd Tabs with @signozhq/ui Tabs (#11392)" (#11507)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
This reverts commit
|
||
|
|
53b2b2f017 |
fix(telemetrystore): fix clickhouse connection-pool slot leak (acquire conn timeout) (#11506)
* fix(telemetrystore): upgrade clickhouse-go to v2.44.0 to fix connection-pool slot leak clickhouse-go v2.43.0 introduced connection-pool slot leaks triggered by context cancellation: acquire() failed to release the pool slot when idle.Get returned a cancellation error (ClickHouse/clickhouse-go#1759), and batch.Close() never released the connection when closeQuery() failed on a cancelled context (ClickHouse/clickhouse-go#1795). Both leak slots until the pool is exhausted and every query fails with 'acquire conn timeout'. Both are fixed in v2.44.0. v2.44.0 adds HasData() to the driver.Rows interface, which the test mock did not implement. Swap the mock to the SigNoz fork github.com/SigNoz/clickhouse-go-mock v0.14.0, which implements HasData() and tracks v2.44.0. * feat(telemetrystore): emit clickhouse connection-pool metrics Register OTel observable gauges that report the clickhouse connection-pool stats from driver.Stats() on each collection cycle: signoz.telemetrystore.connection.{open,idle,max_open,max_idle}. Plotting open against max_open makes pool saturation (and leaks like the one fixed in the previous commit) directly observable in Prometheus. |
||
|
|
b568f3e5cb | chore(ci): remove unused frontend build variables (#11504) | ||
|
|
516e490567 |
fix: different color in badge (#11492)
Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
407d969cd3 |
feat(user): add support for token verification (#11496)
* feat(user): add support for token validation * feat(user): update openapi specs * feat(user): update verify endpoint * feat(user): use binding package * feat(user): update openapi specs |
||
|
|
fa3ab0c197 | chore(oxlint): disable max-params, jsdoc, and more rules for tests (#11467) | ||
|
|
457ceb8fe7 |
feat(alerts): rewrite list alerts & triggered alerts to use new table (#11277)
* feat(tanstack-table): add showPageSize flag and callbacks to pagination * chore(signozhq/ui): bump to v0.0.19 * feat(components): added shared components for alerts * feat(hooks): add shared hooks for alerts * feat(time-utils): add little helper to get elapsed time in ms * feat(alerts-components): add badge map colors * feat(list-alerts): rewrite page to use new table component (#11276) * feat(triggered-alerts): rewrite page to use new table component (#11260) * feat(triggered-alerts): rewrite page * chore(triggered-alerts): move reason tooltip content to own component * chore(pr-comments): address PR comments * chore(lint): fix signozhq/ui imports * refactor(alerts): removed stats card * refactor(alerts): move table to use pagination instead of infinity load * refactor(alerts): remove extra columns & add back info tooltip * refactor(alerts): disable move columns * refactor(alerts): cleanup dead components * refactor(alerts): standardize errors and empty states * refactor(alerts): missing pagination class on group * fix(tanstack): preserve page from URL on refresh page * refactor(alerts): ensure no empty has correct colors * refactor(alerts): remove barrel imports * fix(alerts): missing including error empty state * fix(alerts): ensure the params are removed on page change * fix(alerts): address comments related to UI/UX * feat(tanstack): add auto page size * fix(alert): use calculated page size * fix(alerts): address tiny issues in ui * fix(tests): label column tests * fix(actions-menu): ensure callbacks are memoized * fix(alerts): ensure tabs reset the url state (#11380) * fix(pr): address issue with expand button * fix(list-alerts): reduce size of state/severity, add line clamp for table * fix(triggered-alerts): reduce size of state/severity, add line clamp for table * fix(expanded-alerts): remove min-height when no page * fix(triggered-alerts): increase row height for triggered alerts * fix(list-alerts-triggered-alerts): reset page to 1 when change search * fix(use-url-search): add missing test case for clear search |
||
|
|
1928de7452 | feat(web): gate sentry and pylon init behind boot settings flags (#11498) | ||
|
|
c6b2fe47d5 |
feat(web): add support for sentry and pylon (#11495)
Some checks failed
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
* feat(web): add support for sentry and pylon * feat(web): add support for sentry and pylon * feat(web): add support for sentry and pylon * feat(web): removed bootdata.ts and maintaining websettings as single source of truth * feat(web): update the example.yaml --------- Co-authored-by: SagarRajput-7 <sagar@signoz.io> |
||
|
|
1d6fa6e507 |
feat: extend error fields (#11228)
* fix: extended error fields * fix: remove stale comment * fix: removed retry policy enum and added example * fix: generate openapi * fix: stale comments |
||
|
|
910645516d |
chore: remove cloud integration service cascade delete constraint (#11480)
* chore: remove cloud integration service cascade delete constraint * refactor: manually recreate table |
||
|
|
edc1278769 |
fix(querybuilder): return PreparedWhereClause by value so warnings propagate when clause is empty (#11395)
* fix: propage dropped warnings from where clause visitor * fix: added integration test * fix: make py-fmt * fix: remove stale comment |
||
|
|
da1b09c479 |
refactor: replace antd Tabs with @signozhq/ui Tabs (#11392)
* refactor: replace antd Tabs with @signozhq/ui Tabs Migrates Tabs usage from antd to the @signozhq/ui Tabs component across dashboard settings, integration details, metrics application, pipelines, trace detail, and workspace-locked pages. API differences (activeKey → value, defaultActiveKey → defaultValue, TabsProps['items'] → TabItemProps[]) are updated to match the new component. * refactor: enhance RouteTab component with new styling and functionality |
||
|
|
1f406823d8 |
refactor(frontend): migrate plain antd Input to @signozhq/ui/input (#11401)
* chore: refactor input * chore: remove markdown * chore: update markdown * fix: minior comments for input * chore: remove comments --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
f626380b1a |
fix(infra-monitoring): align v2 custom queries' bounds with QBv5 querier step adjustment (#11397)
* chore: updated logic and use centralized function in the module * chore: filter metric groups * chore: filter metric groups * chore: formula correction * chore: added step flooring note * chore: comment correction * chore: comment correction * chore: removed function * chore: renamed variables * chore: fix for surfacing meta for pods custom group by * chore: added todo and note * chore: added changes based on comments --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
fe8283e4de |
refactor(query-builder): removed unused query component (#11486)
Some checks failed
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
|
||
|
|
4366d6fd96 | fix(divider): mismatch on margin/colors (#11488) | ||
|
|
a8f5bdf256 |
chore(release): bump to v0.126.1 (#11487)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
Co-authored-by: primus-bot[bot] <171087277+primus-bot[bot]@users.noreply.github.com> |
||
|
|
2f102ee3f5 |
fix: ensure timestamp is always in ms (#11483)
Co-authored-by: Tushar Vats <tushar@signoz.io> |
||
|
|
0a3717e0d8 |
chore: migrate antd Tag to badge (#11421)
* chore: migrate antd Tag to badge * fix: test snapshot * fix: remove accidently added files * chore: resolve comments, bump ui package version, update snapshot * refactor: cleanup query chip component * chore: rename files * fix: remove committed pnpm_store file |
||
|
|
fd413d336d |
fix: ClickHouse 25.12.5 Trace Operator query analyzer fail due to dangling CTE (#11268)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix: trace raw export e2e * chore: separate e2e test file * chore: file rename * chore: fmtlint * fix: remove specific of timestamp * chore: fmt python * chore: remove comments * fix: alias all core columns * fix: return spans from * revert: double select * revert: build list query * chore: comments and test * revert: unused test * chore: tests updated * chore: fmt py * chore: fmt py * fix: integration tests * fix: tests rewritten * fix: replace JOIN with IN * test: wip rewrite integration tests better * fix: tests are better * fix: use pytest param * chore: fix the comments * fix: py fmt * chore: added length checks * chore: import functions from querier |
||
|
|
7b892ee1fc |
chore(meterreporter): document jitter config in example.yaml (#11482)
* chore(meterreporter): document jitter config in example.yaml * chore(meterreporter): fix stale ResolvedJitter reference in Jitter doc comment * chore: fix comment --------- Co-authored-by: Karan Balani <29383381+balanikaran@users.noreply.github.com> |
||
|
|
31e4012fe5 |
refactor: replace antd Checkbox with @signozhq/ui Checkbox (#11396)
* refactor: replace antd Checkbox with @signozhq/ui Checkbox (batch 1) Migrates mechanical checkbox callsites from antd to @signozhq/ui/checkbox: - Trace/Filters/Panel/.../Common/Checkbox.tsx - NewWidget/LeftContainer/ExplorerAttributeColumns.tsx - AnomalyAlertEvaluationView.tsx - QuickFilters/FilterRenderers/Checkbox/Checkbox.tsx - NewSelect/CustomMultiSelect.tsx - RolesSelect/RolesSelect.tsx - TraceDetailsV3/.../SpanPercentilePanel.tsx API mapping: checked -> value, defaultChecked -> defaultValue, onChange(e) where e.target.checked is read -> onChange(checked) where checked is CheckedState. Dropped antd-only props (type="checkbox", rootClassName -> className, form-value `value=` semantics). RolesSelect wraps the checkbox in a div to host pointerEvents:none since style is not in CheckboxProps. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * refactor: drop antd CheckboxChangeEvent in checkbox callsites (batch 2) Two callsites that read e.target.checked via antd's CheckboxChangeEvent type now receive the CheckedState (boolean | 'indeterminate') directly from @signozhq/ui Checkbox's onChange. - TopNav/AutoRefreshV2/index.tsx — onChangeAutoRefreshHandler signature changes; derives boolean checked from CheckedState. - TracesExplorer/Filter/SectionContent.tsx — onCheckHandler likewise; also swap data-testid -> testId since SigNoz UI Checkbox wraps the input in a div that exposes testId. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * refactor: migrate complex antd Checkbox callsites to @signozhq/ui (batch 3) Handles the four callsites that needed shape changes, not just renames: - RegionSelector — collapses separate `checked` + `indeterminate` props into a single `value: true | false | 'indeterminate'` (SigNoz UI uses CheckedState, not two props). - InteractiveQuestion — replaces `<Checkbox.Group>` (no SigNoz UI equivalent) with a plain `<div>` of individual `<Checkbox>`s that push/pull from the existing `selected: string[]` state on each toggle. - GridCardLayout/types.ts + CustomCheckBox — drops the antd-only `CheckboxChangeEvent` type from the `checkBoxOnChangeHandler` signature and removes the `ConfigProvider` theme override that previously colored each chart-legend checkbox to match its series. The dynamic per-series color is now injected via the SigNoz UI Checkbox's exposed CSS variables (`--checkbox-checked-background`, `--checkbox-border-color`) applied through a wrapper `<span style={…}>`. After this commit `grep -rE "from 'antd'.*Checkbox" frontend/src` and `grep -rE "CheckboxChangeEvent" frontend/src` both return zero matches. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test: adapt checkbox assertions to SigNoz UI Checkbox DOM The SigNoz UI Checkbox renders <button role="checkbox" data-state="…"> via Radix instead of antd's <input type="checkbox">. Four test suites queried the old DOM and broke after the migration. - TracesExplorer.test.tsx — getByTestId returns the wrapper div now (the SigNoz UI Checkbox exposes testId on the wrapper, not the button). Querying the inner [role="checkbox"] and asserting data-state. - DynamicVariableDefaultBehavior.test.tsx, PanelManagement.test.tsx, getChartManagerColumns.test.tsx — replace querySelector( 'input[type="checkbox"]') with [role="checkbox"], and .checked / toBeChecked() with toHaveAttribute('data-state', 'checked'). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: add min-height to checkbox value section --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
71cb97f52f |
chore: migrate antd divider to signozhq/ui divider (#11474)
* chore: migrate antd divider to signozhq/ui divider * fix: remove divider from routing policies |
||
|
|
11f1789dea |
refactor(frontend): migrate plain antd dropdown to @signozhq/ui/dropdown (#11400)
* chore: migrate dropdown * fix: self review changes * fix: side nav issue * fix: another bug * chore: migration from antd * fix: failing test * fix: lint * chore: self review comments * fix: add dropdown to list * chore: remove internal docs * chore: save antd file * fix: lint * fix: lint * chore: remove ox lint * fix: dropdown --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
1a97e90117 |
feat: replace Radio components with ToggleGroup in various components (#11391)
* refactor: replace Radio components with ToggleGroup in various components * refactor: replace ToggleGroup with ToggleGroupSimple * fix: update theme selection tests to use role-based queries * feat: add styles for add-on tab title alignment and spacing |
||
|
|
939f0d7a05 |
feat(trace-detail-v3): new soft colour palette for waterfall + flamegraph (#11468)
Replace the V3 trace colour system with the new soft 28-colour palette from the design guide. Deterministic per group value (reuses existing hashFn), theme-adaptive via darkenHex (bright base in dark mode, darkened variant in light), and reserves #FC4E4E for errors. Covers waterfall + flamegraph bars, labels, event dots, connectors, service dots, hover cards and analytics breakdown. Heat/depth modulation intentionally left out for v1. |
||
|
|
9d1c27cb57 | fix: added utility functions to calculate minimum step intervals and time ranges (#11447) | ||
|
|
07ce2d341c |
chore: preserve order of pipelines between memory_limiter and batch (#11461)
* chore: var names changed * fix: preserve order of pipelines between memory_limiter and batch * revert: test name * fix: remove old pipelines * revert: var name change * fix: changing the order; set user before custom |
||
|
|
08e723fd53 | chore(agents): add more instructions for code quality (#11466) | ||
|
|
c074d09842 |
chore: migrate Avatar from antd to signozhq/ui Avatar (#11478)
* chore: migrate Avatar from antd to signozhq/ui Avatar * fix: pipelines to use badge instead of avatar * chore: add avatar to no-antd components |
||
|
|
c68f237a8a |
feat: v2 create and get dashboard API (#11125)
* feat: openapi spec generation * test: script to generate test dashboard data in a sql db * test: fixes in dashboard perf testing data generator * test: perf test script for both sql flavours * test: data column in perf tests should match real data * test: much bigger json for data column * chore: comment clean up * chore: separate file for perses replicas * test: more descriptive test file name * chore: move plugin maps to correct file * chore: comment cleanup * test: add tests for spec wrappers * chore: better file names * chore: better file name * chore: too many comments * fix: js lint errors * fix: dot at the end of a comment * chore: better error messages * fix: strict decode variable spec as well * fix: remove textbox plugin from openapi spec * chore: renames and code rearrangement * chore: better comment to explain what restrictKindToLiteral does * chore: cleaner comment * chore: cleaner comment * chore: cleaner comment * chore: better method name * chore: cleanup testing code * chore: code movement * chore: code movement * chore: code movement * chore: go lint fix (godot) * chore: code movement * chore: cleanup comments * chore: better method name extractKindAndSpec * test: test for drift detection mechanics * feat: define tags module for v2 dashboard creation * feat: enum for entity type that other modules can register * chore: follow proper unmarshal json method structure * feat: v2 create dashboard API * fix: only return name of a tag in dashboard response * fix: use existing tag's casing if new tag is a prefix of an existing tag * fix: go lint fix * fix: more dashboard request validations * chore: separate method for validation * fix: module should also validate postable dashboard * test: integration tests for create API * test: integration test fixes * chore: use existing mapper * fix: remove extra spec from builder query marshalling * fix: merge conflicts * fix: add allowed values in err messages * fix: remove extra (un)marshal cycle * fix: return 500 err if spec is nil for composite kind w/ code comment * fix: no need for copying textboxvariablespec * fix: wrap errors * chore: no v2 subpackage * fix: no v2 package and its consequences * fix: no v2 package and its consequences * fix: query-less panels not allowed * feat: consolidate tag module and tagtypes changes from downstream branches * fix: allow only 1 query in a panel * test: unit test fixes * feat: method to fetch tags for multiple entries at once * test: fix mock interface in test * feat: move tags to key:value pairs model * feat: entity type column in tags * fix: pass entity type in create many * feat: reserved DSL key validation for tags * feat: new module for tags * chore: merge conflicts error fixing pt 1 * fix: lint fix regarding nil, nil return in test file * chore: change where tag module is instantiated * fix: add back api endpoint * chore: generate api spec * fix: extend bun in joinedRow * feat: method to build postable tags from tags * fix: diff error codes for invalid keys and values * fix: correct pk in bun model for tag relations * fix: created and updated by schema * fix: use coretypes.Kind instead of defining entity type * fix: singular table name * chore: remove org ID from tag relation * feat: foreign key on tag id * feat: add SyncTags method that covers creation and linking * fix: remove entity type definition * fix: fix build errors in dashboard module * chore: bump migration number * chore: change entity id to resource id * fix: add org id filter in all list and delete queries * fix: remove user auditable * fix: add ID in tag relation * fix: fix build error * chore: bump migration number * fix: add len check on tags keys and values * fix: add regex for tags * chore: remove methods that shouldn't be exposed * fix: use sync tags in create api * feat: functional unique index in sql schema * fix: only ascii in regex * chore: rename create method to createOrGet * chore: use tagtypestest package for mock store * chore: combine functional unique index with unique index * chore: move tag resolution to module * test: add unit tests for new idx type * chore: comment out tags unique index for now * chore: add a todo comment * chore: comment out unique index test * feat: add created at to tag relations * chore: comment out unique index test * chore: bump migration number * chore: remove uploaded grafana flag from metadata * Merge branch 'main' into nv/v2-dashboard-create * chore: revert idx generation to resolve conflicts * fix: use store.RunInTx instead of taking in sqlstore * fix: use binding package to get request * chore: move NewDashboardV2 to NewDashboardV2WithoutTags * chore: rename module to m * fix: add ctx needed in sqlstore * fix: remove sqlstore passage in ee pkg * chore: change dashboardData to dashboardSpec * feat: follow the metadata+spec key structure * feat: follow the metadata+spec key structure in open api spec * feat: v2 dashboard GET API (#11136) * feat: v2 dashboard GET API * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * chore: update api specs * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: fix build error * chore: revert all frontend changes * fix: remove public dashboard from get v2 call * chore: update frontend schema * chore: generate api specs * fix: add source for v2 dashboards * chore: incorporate source * fix: add some required fields * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 api specs * fix: remove unused param in constructor * fix: improve api descriptions * fix: remove unneeded comment * chore: increase MaxTagsPerDashboard to 10 * fix: set display name in unmarshal json * chore: remove integration test for now (will add along with list api) * feat: add validation on dashboard name * fix: correct convertor method name * test: add unit tests for type conversions * chore: remove enum def of threshold comparison operator * feat: add flag to generate unique name in backend * chore: generate api specs * chore: make tags required in postable * test: fix unit tests referring to > threshold operator * fix: use must new uuid for org id |
||
|
|
e75a0b59d6 |
fix(rules): use alertmanager external URL for related logs/traces and generator URL (#11413)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat(rules): use alertmanager external URL for related logs/traces and generator URL Plumbs SIGNOZ_ALERTMANAGER_SIGNOZ_EXTERNAL__URL through the rule manager so the host portion of related_logs / related_traces come from configured external URL instead of the frontend window.location captured at rule-creation time. Frontend-supplied source URL is retained as a fallback when the env var has not been set so existing self-hosted deployments keep working. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(rules)!: drop frontend source URL fallback for related logs/traces and generator URL Always derive the host portion of the rule generator URL and the related_logs / related_traces annotations from SIGNOZ_ALERTMANAGER_SIGNOZ_EXTERNAL__URL. Self-hosted deployments that have not set the env var will see the default (http://localhost:8080) in alert notifications, which makes the need to configure it surface clearly. Revert this commit to restore the prior fallback behavior. Refs SigNoz/engineering-pod#5055 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor: simplify ExternalURLHost * chore: use alert overview url for generator url * refactor(rules): source external URL via alertmanager.Config() instead of plumbing through main Address PR feedback (therealpandey): expose a Config() accessor on the alertmanager.Alertmanager interface and consume the external URL from it inside signozruler.NewFactory. This drops the *url.URL parameter that was previously threaded through cmd/community/server.go, cmd/enterprise/server.go, and pkg/signoz/signoz.go. Also switch BaseRule.GeneratorURL to *url.URL.JoinPath + Query so the URL is composed correctly when the external URL carries a base path (e.g. https://signoz.example.com/signoz) and ruleId is properly query-encoded, as suggested in review. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor: expose alertmanagerserver.Config * refactor: rename "linksTo" to "paramsFor" --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
6dfceeaf04 |
fix(deps): upgrade idna to 3.16 to fix CVE-2026-45409 (#11479)
Specially crafted inputs to idna.encode() could bypass the CVE-2024-3651 fix and cause denial-of-service. Patched in idna >= 3.15. |
||
|
|
69806d7dc4 |
feat(authz): upgrade OpenFGA from v1.11.2 to v1.14.1 (#11475)
* feat(authz): upgrade OpenFGA from v1.11.2 to v1.14.0 Upgrade OpenFGA and its companion packages: - github.com/openfga/openfga v1.11.2 -> v1.14.0 - github.com/openfga/api/proto v0.0.0-20250909 -> v0.0.0-20260319 - github.com/openfga/language/pkg/go v0.2.0-beta.2.0.20251027 -> v0.2.0-beta.2.0.20251202 This picks up security fixes (CVE-2026-34972 BatchCheck, CVE-2026-33729 Check caching), ListObjects deadlock fixes, and pipeline performance improvements. Breaking change in v1.14.0: the PostgreSQL storage code now passes int32 for the changelog.operation column instead of the protobuf enum type used in v1.11.2. SigNoz migration 054 created this column as TEXT, causing "unable to encode 0 into text format for text (OID 25)" errors. Migration 090 fixes all OpenFGA table schema mismatches from 054: - changelog: drop and recreate with operation INTEGER (was TEXT) and corrected condition_name (TEXT) / condition_context (BYTEA) types that were swapped - tuple (PG only): alter condition_name BYTEA->TEXT and condition_context TEXT->BYTEA to match OpenFGA's expected schema * chore: suppress deprecated AsyncInsert lint warning clickhouse-go/v2 v2.43.0 (pulled in as transitive dep from the OpenFGA upgrade) deprecated AsyncInsert in favor of WithAsync(). Suppress the staticcheck warning for now. * fix(authz): remove tuple condition column alter from migration 090 The TEXT -> BYTEA cast fails without an explicit USING clause which sqlschema.AlterColumn does not support. Since SigNoz does not use FGA conditions (columns are always NULL), defer this fix. * chore: add TODO for AsyncInsert deprecation Tracked in https://github.com/SigNoz/engineering-pod/issues/5093 * feat(authz): bump OpenFGA from v1.14.0 to v1.14.1 Picks up bug fixes and performance improvements: - Reduced heap allocations in ListObjects - Improved cache key generation performance - Fixed AuthZEN discovery metadata host-header poisoning - Server shutdown timeout configuration |
||
|
|
8da9535c80 |
chore: breakdown query range function (#11211)
* chore: breakdown query range function * fix: move unexported helper functions to end of file --------- Co-authored-by: Yunus M <myounis.ar@live.com> |
||
|
|
99866a91e4 |
feat(ai-assistant): base route, auth-retry streaming, and rate-limit UX (#11457)
* feat: update routing and permissions for AI Assistant feature * feat: ai assistant routing, mid-execution auth recovery * chore: remove local overrides |
||
|
|
f94fa7db89 |
feat(trace-details): added clear filter button in trace details header + UI restructure (#11345)
* feat: setup types and interface for waterfall v3 v3 is required for udpating the response json of the waterfall api. There wont' be any logical change. Using this requirement as an opportunity to move waterfall api to provider codebase architecture from older query-service * refactor: move type conversion logic to types pkg * chore: add reason for using snake case in response * fix: update span.attributes to map of string to any To support otel format of diffrent types of attributes * fix: remove unused fields and rename span type To avoid confusing with otel span * refactor: convert waterfall api to modules format * chore: add same test cases as for old waterfall api * chore: avoid sorting on every traversal * fix: remove unused fields and rename span type To avoid confusing with otel span * fix: rename timestamp to milli for readability * fix: add timeout to module context * fix: use typed paramter field in logs * feat: api integration * feat: add limit * feat: minor change * feat: supress click * chore: generate openapi spec for v3 waterfall * feat: fix test * feat: fix test * feat: lint fix * feat: span details ux * feat: analytics * feat: add icons * feat: added loading to flamegraph and timeout to webworker * feat: sync error and loading state for flamegraph for n/w and computation logic * feat: auto scroll horizontally to span * feat: show total span count * feat: disable anaytics span tab for now * feat: add span details loader * feat: prevent api call on closing span detail * fix: remove timeout since waterfall take longer * fix: use int16 for status code as per db schema * fix: update openapi specs * feat: make filter and search work with flamegraph * feat: filter ui fix * feat: remove trace header * feat: new filter ui * feat: setup types and interface for waterfall v3 v3 is required for udpating the response json of the waterfall api. There wont' be any logical change. Using this requirement as an opportunity to move waterfall api to provider codebase architecture from older query-service * refactor: move type conversion logic to types pkg * chore: add reason for using snake case in response * fix: update span.attributes to map of string to any To support otel format of diffrent types of attributes * fix: remove unused fields and rename span type To avoid confusing with otel span * refactor: convert waterfall api to modules format * chore: add same test cases as for old waterfall api * chore: avoid sorting on every traversal * fix: remove unused fields and rename span type To avoid confusing with otel span * fix: rename timestamp to milli for readability * fix: add timeout to module context * fix: use typed paramter field in logs * chore: generate openapi spec for v3 waterfall * fix: remove timeout since waterfall take longer * fix: use int16 for status code as per db schema * fix: update openapi specs * feat: api integration * feat: automatically scroll left on vertical scroll * feat: reduce time * feat: set limit to 100k for flamegraph * feat: show child count in waterfall * fix: align timeline and span length in flamegraph and waterfall * feat: fix flamegraph and waterfall bg color * feat: show caution on sampled flamegraph * feat: api integration v3 * feat: disable scroll to view for collapse and uncollapse * feat: setup types and interface for waterfall v3 v3 is required for udpating the response json of the waterfall api. There wont' be any logical change. Using this requirement as an opportunity to move waterfall api to provider codebase architecture from older query-service * refactor: move type conversion logic to types pkg * chore: add reason for using snake case in response * fix: update span.attributes to map of string to any To support otel format of diffrent types of attributes * fix: remove unused fields and rename span type To avoid confusing with otel span * refactor: convert waterfall api to modules format * chore: add same test cases as for old waterfall api * chore: avoid sorting on every traversal * fix: remove unused fields and rename span type To avoid confusing with otel span * fix: rename timestamp to milli for readability * fix: add timeout to module context * fix: use typed paramter field in logs * chore: generate openapi spec for v3 waterfall * fix: remove timeout since waterfall take longer * fix: use int16 for status code as per db schema * fix: update openapi specs * refactor: break down GetWaterfall method for readability * chore: avoid returning nil, nil * refactor: move type creation and constants to types package - Move DB/table/cache/windowing constants to tracedetailtypes package - Add NewWaterfallTrace and NewWaterfallResponse constructors in types - Use constructors in module.go instead of inline struct literals - Reorder waterfall.go so public functions precede private ones * refactor: extract ClickHouse queries into a store abstraction Move GetTraceSummary and GetTraceSpans out of module.go into a traceStore interface backed by clickhouseTraceStore in store.go. The module struct now holds a traceStore instead of a raw telemetrystore.TelemetryStore, keeping DB access separate from business logic. * refactor: move error to types as well * refactor: separate out store calls and computations * refactor: breakdown GetSelectedSpans for readability * refactor: return 404 on missing trace and other cleanup * refactor: use same method for cache key creation * chore: remove unused duration nano field * chore: use sqlbuilder in clickhouse store where possible * feat: dropdown added to span details * feat: fix color duplications * feat: no data screen * feat: old trace btn added * feat: minor fix * feat: rename copy to copy value * feat: delete unused file * feat: use semantic tokens * feat: use semantic tokens * feat: add crosshair * feat: fix test * feat: disable crosshair in waterfall * feat: fix colors * feat: minor fix * feat: add status codes * feat: load all spans in waterfall under limit * feat: uncollapse spans on select from flamegraph * feat: style fix * feat: add service name * feat: open in new tab * feat: add trace details header * feat: add trace details header styles * feat: add trace details header styles * feat: minor changes * feat: floating fields set * feat: filters init * feat: filter toggle added * feat: fix color * fix: scroll to span in frontend mode * feat: delete waterfall go * feat: minor change * feat: minor change * feat: lint fix * feat: analytics spans * feat: color by field * feat: save color by pref in user pref * feat: migrate v2 pinned attr * feat: preview fields * feat: minor refactors * feat: minor refactors * feat: v3 behind feature flag * feat: minor refactors * feat: packages remove * feat: packages remove * feat: remove common component * feat: remove antd component usage * feat: leaf node indent fix * feat: fix mouse wheel in json view * feat: update signoz ui * feat: remove feature flag * feat: fixed the waterfall span hover card * feat: fix hidden filters * feat: trace details always visible * feat: correct status code * fix: pagination calls in waterfall * feat: fix failing test * feat: show error count * feat: fix waterfall child sibling indent * feat: change how we show span hover data in waterfall * feat: fix logs in span details styles * feat: minor fixes * feat: make trace id copyable * feat: add status message to highlight section * feat: persist user choosing old view * feat: add more fields in color by * feat: add llm as fast filter * feat: show api error correctly * feat: update test cases * feat: revert route change * feat: revert route change * feat: replace antd btns * feat: allow removing all fields in preview * feat: send selected span when flamegraph is sampled * feat: only scroll when span is not in view * feat: auto expand on highlight errors * feat: move analytics panel * feat: additional check * feat: minor fix * feat: minor fix * feat: dont use antd button and tooltip * feat: dont use antd button and tooltip * feat: update icons * feat: minor change * feat: minor change * feat: move to zustand * feat: update test cases * feat: update border color * feat: add icons * feat: support filter on parent keys * feat: add links to non filterable keys * feat: minor fix * feat: use pinned attributes accross views * feat: update tests * feat: hide v3 * feat: migrate to css modules * feat: fix minor style * feat: fix test * feat: enable new trace details * feat: remove unnecessary waterfall api calls if span already in the list * feat: minor change * feat: add clear filter * feat: realign trace details filters * feat: restructure trace details header * feat: minor fix * feat: update tests * feat: update tests --------- Co-authored-by: Nikhil Soni <nikhil.soni@signoz.io> |
||
|
|
aa96ec6fe9 |
chore(release): bump to v0.126.0 (#11472)
Co-authored-by: primus-bot[bot] <171087277+primus-bot[bot]@users.noreply.github.com> |
||
|
|
9d36031d4e |
chore(frontend): add agents/claude markdown file (#11463)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
|
||
|
|
dd3e743b2e |
feat(meterreporter): add jitter to meter collection cycles (#11451)
* feat(meterreporter): jitter first run and per-tick to spread Zeus load * feat(meterreporter): log tick scheduling, reports, backfill and collector failures * fix(meterreporter): make jitter defaults track Interval via sentinel * refactor(meterreporter): drop redundant >=0 guards in jitter validation * fix(meterreporter): log jitter delays as duration strings, not nanoseconds * feat(meterreporter): emit delay_ns alongside delay string for graphing * refactor(meterreporter): collapse jitter to single knob with 2h default * refactor(meterreporter): drop spec reference from ResolvedJitter comment * refactor(meterreporter): extract default jitter literal to local variable * refactor(meterreporter): merge jitter helper into Config.NewJitter * chore: move info logs to debug * chore: remove debug logs --------- Co-authored-by: Karan Balani <29383381+balanikaran@users.noreply.github.com> |
||
|
|
a60d87c51b |
chore: add name column in dashboards table for v2 dashboards (#11456)
* chore: add name column in dashboards table for v2 dashboards * chore: empty commit to rerun tests * chore: empty commit to rerun tests |
||
|
|
727bb586b0 |
feat(ai-assistant): polish composer UX and add Cmd+K entry (#11362)
* feat(ai-assistant): polish composer UX and add Cmd+K entry
- ChatInput textarea auto-grows up to 200px (was locked at 2 rows) so
long prompts aren't trapped in a scrolling porthole; default rows
bumped 2 → 3.
- Composer container shows an accent-primary focus ring via
:focus-within so the active state is visible.
- Cmd+K palette surfaces an "Open AI Assistant" entry, gated on
useIsAIAssistantEnabled() and emitting Opened with source: 'cmdk'.
* fix(ai-assistant): a11y, scroll, and routing polish
Address a punch list of UX/a11y bugs surfaced while auditing the AI
Assistant:
- Stop auto-scroll fighting the user during streaming. VirtualizedMessages
now tracks atBottom via Virtuoso's atBottomStateChange and bails the
manual scrollTo when the user has scrolled away.
- Resolve dynamic-route templates in getRouteKey so /ai-assistant/:id
picks up the new AI_ASSISTANT title entry instead of falling through to
the default browser title.
- Give the icon-only message actions (copy / thumbs up-down / regenerate)
real aria-labels, and aria-pressed reflecting vote state.
- Convert context-picker rows from divs to buttons. Categories become a
proper tablist with roving tabindex and ArrowUp/ArrowDown navigation;
entities use aria-pressed for toggle semantics. SCSS resets native
button defaults and adds focus-visible outlines.
- Enforce required clarification fields. Submit is disabled until every
required field is filled, and handleSubmit bails early to guard the
keyboard-Enter bypass.
* fix(ai-assistant): move focus to new tab on context picker arrow keys
The roving-tabindex pattern stalled because state updated but DOM focus
stayed on the original button — whose closure had the old category — so
subsequent arrow keys never advanced past the second tab. Added refs to
each tab and call `.focus()` on the newly-active one after state update.
* fix(ai-assistant): scroll regression on user send and focus polish
- VirtualizedMessages: when the user is scrolled up and sends a new
message, force-anchor to the bottom so they see their own send and
the assistant's follow-up. Previous bailout kept them stranded.
- Composer: move the :focus-within highlight from the outer .input
wrapper onto .composer so the action footer (Add Context / mic /
send) isn't visually inside the focus ring.
- Context picker: drop the :focus-visible outlines on category and
entity buttons; the existing :hover + .active / .selected styles
carry the focus story.
* fix(ai-assistant): complete tablist semantics and cross-pane keyboard nav
Finish the context picker tablist pattern and extend keyboard navigation
into the entity panel so arrow keys carry the user all the way to a
selection without reaching for the mouse.
- Tabs get `id` + `aria-controls`; the right pane becomes a real
`role="tabpanel"` with `id` + `aria-labelledby` pointing back at the
active tab.
- Add `Home` / `End` to the tablist; add `ArrowRight` to cross from the
active tab into the entity list.
- Add `ArrowUp` / `ArrowDown` / `Home` / `End` cycling within the entity
list, and `ArrowLeft` to cross back to the active tab.
* docs(app-layout): note that ROUTES order matters for ambiguous templates
* fix(ai-assistant): reset scroll anchor on conversation switch
Key `VirtualizedMessages` by `conversationId` so atBottomRef,
lastSeenUserMessageIdRef, and Virtuoso's internal scroll position
all reset together — otherwise a "scrolled up" state from the
previous conversation could block auto-scroll for the next one's
incoming stream.
* fix(app-layout): add titles for dynamic-template routes
After `getRouteKey` started matching `:param` templates (
|
||
|
|
1e326159b0 |
feat(tracedetail): add waterfall api with memory optimisations (#11450)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: add store methods for minimal trace fetch * feat: break down waterfall module to handle large spans Handling large traces in two steps to avoid high memory allocation * refactor: keep the waterfall changes in new api version This is to avoid the contract change in existing v3 * chore: avoid unnecessary diffs * refactor: move conversion logic to types * chore: update openapi specs * refactor: use sqlbuider for queries * chore: fix comment * chore: avoid passing request type to module * refactor: avoid passing whole summary object around * chore: remove trace_id from querying since its already known * chore: remove unused reference column from query * chore: update openapi specs |
||
|
|
ceb1b4871b |
feat: trace based filters for logs, supporting aggregations as well (#11394)
* feat: trace based filters for logs, supporting aggregations as well * fix: update comments * fix: cleanup query from tests * fix: address comments * fix: address comments --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
d48a238e15 |
chore: broke down drilldown navigate into a saperate hook (#11070)
* chore: broke down drilldown navigate into a saperate hook * chore: fmt fix |
||
|
|
2ca6ff7719 |
test: added test for crosshair series highlight changes (#11015)
* chore: added changes for crosshair sync for tooltip * chore: minor cleanup * chore: updated the core structure * chore: updated the types * chore: minor cleanup * feat: added changes for sereis highlighting on crosshair sync * test: added test for crosshair series highlight changes * chore: pr review fixes * chore: handled other cases of groupby * chore: updated tests |
||
|
|
0671c5f416 |
feat: installed integration dashboards migration to DB (#11415)
* chore: added migration setup * feat(sqlmigration): add integration_dashboards table (migration 079) Adds the `integration_dashboards` relations table that stores the integration-specific identity for dashboards provisioned from cloud or builtin integrations. Columns: id, org_id, dashboard_id, provider, slug, created_at, updated_at. Includes a unique index on dashboard_id. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(sqlmigration): backfill cloud integration dashboards to DB (migration 080) One-time idempotent migration that provisions dashboard rows for all orgs with existing cloud integration services where metrics are enabled. Each dashboard is inserted into the `dashboard` table with source="integration" and locked=true, and a companion row is added to `integration_dashboards` with provider="cloud_integrations" and slug="{provider}-{service}-{dashboard}" (e.g. aws-alb-overview). Idempotency is enforced by checking (org_id, provider, slug) on integration_dashboards before each insert. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(sqlmigration): clean up stale 079 artifacts, add 079 schema migration Remove the pre-rename 079_migrate_cloud_integration_dashboards.go and 079_cloud_integration_dashboards/ directory that were left behind when the backfill migration was renumbered to 080. Add the missing 079_add_integration_dashboards.go (schema-only migration creating the integration_dashboards table) which provider.go already references. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: adding comment for fk * refactor: renaming table name * refactor: rename and restructure cloud integration dashboard migration types * chore: file rename * refactor: dashboard creation and listing flow change * refactor: removing loose strings * refactor: adding DeleteBySource on dashboard module * refactor: review changes and update service flow change * refactor: simplify comments * ci: lint staticcheck fix * refactor: renaming migration and adding integration tests * ci: py fmt lint fixes * feat: adding ListSharedServices store method * ci: golangci-lint fix * feat(integrations): persist installed integration dashboards in DB Provisions dashboard DB rows when an integration is installed and deprovisions them on uninstall. Adds a backfill migration (087) for users with already-installed integrations. Removes the on-the-fly filesystem serving path from http_handler in favor of the standard dashboard module. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: changing dashboard ID and other cleanup * chore: update code structure for better readability and maintainability * refactor: removing deprecated cloud integrations and merging integration types * refactor: renaming migration files and removing deprecated tests * refactor: using BunDBCtx method instead * ci: fix py fmt lint --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
33b455406a |
feat: right dock span details (#11427)
* feat: right dock span details * feat: reorder options * feat: style fix * feat: refactor resize boc |
||
|
|
804ea2a7f8 |
feat: alert template processor + integration in notifiers (#10750)
Some checks failed
build-staging / prepare (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
* chore: custom notifiers in alert manager * chore: lint fixs * chore: fix email linter * chore: added tracing to msteamsv2 notifier * feat: alert manager template to template title and notification body * chore: updated test name + code for timeout errors * chore: added utils for using variables with $ notation * chore: exposed templates for alertmanager types * feat: added preprocessor for alert templater * chore: hooked preProcess function in expandTitle and body, added labels and annotations in alertdata * chore: fix lint issues * chore: added handling for missing variable used in template * feat: converted alerttemplater to interface and updated tests * refactor: added extractCommonKV instead of 2 different functions * test: fix preprocessor test case * feat: added support for and in templating * chore: lint fix * chore: renamed the interface * chore: added test for missing function * refactor: test case and sb related changed * refactor: comments and test improvements * chore: lint fix * chore: updated comments * feat: added basic html markdown templater * chore: updated newline to markdown format * feat: slack blockkit renderer using goldmark * test: added test for html rendering * feat: integrated slack blockit in markdownrenderer package and removed plaintext format * chore: updated br with new line in test and logs added * refactor: alert manager templater * feat: added no-op formatter in markdown rederer * chore: return missing variables as sorted list * feat: alert notification processor * chore: refactor notification processor and send processor in ReceiverIntegrations * chore: return isDefaultTemplated true even in case of blank default template * feat: updated email notifier * feat: update ms team notifier with notification processor * refactor: ms teams notifier * chore: msteams note * feat: added notification processor in opsgenie notifier * feat: added notification processor in slack notifier * feat: added notification processor in pagerduty notifier * chore: added IsCustomTemplated helper function in result struct * feat: added notification processor in webhook notifier * chore: updated alertmanagernotify package with updated notifier signature * feat: slack mrkdwn renderer * feat: added new format in markdown renderer * test: simplify TestRenderSlackMrkdwn * test: add new test cases for Slack MRKDWN rendering * feat: updated slack notifier with slack mrkdwn format * fix: webhook notifier update annotations before preparing data * fix: added handling for labels and annotations with `.` and `-` * fix: handled <no value> in templated response * test: added test in notification procesor for no value * refactor: review comments * refactor: lint fixes * chore: updated licenses for notifiers * chore: updated email notifier from upstream * chore: lint fixes * feat: added no value extension to render <no value> in html * feat: email rendering with custom template in notification processor * chore: integration of custom templating in rule manager * chore: added action links to email and slack notifiers * chore: fix linter and merge conflict issues * feat: added `Literal` for CompareOperator and MatchType and expose from ruleManager * chore: error logging + NoOp type definition * feat: return single templating result from with flag for template type * fix: variables with symbols in template * feat: slack mrkdwn renderer * feat: custom raw html renderer to escape <no value> * chore: integrated slack mrkdwn renderer and added NoOp formatter * fix: email template directory for notification processor * chore: remove static templates from pagerduty notifications * chore: removed notifier test files * fix: concurrent rendering in markdown renderer * refactor: changes as per internal review * chore: lint issue * chore: removed special handling for softline break * refactor: removed logger as markdown renderer dependency * refactor: changed markdown renderer from interface to package-level functions * refactor: changes as per internal review * chore: removed notification processor * chore: updated webhook notifier to send templated title and body in notification * refactor: msteams skip logs and traces as factsset, slack code refactor * chore: remove private annotations from pagerduty notifier * chore: updated email template based on new template struct * chore: update receiver integrations * chore: outdated comment * chore: move to templates/alertmanager * chore: address comments * chore: add example for templates --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
a3a7fc4081 |
feat(planned-downtime): explicit toggle for all vs specific alert rules (#11272)
* feat(planned-downtime): explicit toggle for all vs specific alert rules
Replace the implicit "empty alert list silences everything" behavior
with a Radio toggle ("All alert rules" / "Specific alert rules") so
users can't accidentally silence every alert by forgetting to select
rules. The list view now displays an explicit "All alert rules" tag
instead of a dash for schedules that silence everything.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* chore: remove redundant messaging
* chore: reuse existing variable
* chore: fix typo
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
|
||
|
|
3c8c318925 | chore(upgrade-signoz): removed upgrade.signoz.io url (#11449) | ||
|
|
bb471848cc |
chore: feature flag for dashboard v2 (#11339)
* chore: feature flag for dashboard v2 * fix: fix alignment * chore: add flag to v1 api as well |
||
|
|
bd55e70882 |
feat(boot-settings): runtime enable/disable control for PostHog and Appcues (#11416)
* feat(boot-settings): move SDK config from build-time env vars to runtime boot data injection * feat(boot-settings): scope runtime injection to posthog/appcues enabled flags only * feat(boot-settings): refactor code * feat(boot-settings): refactor code * feat(boot-settings): use generated WebSettings types for BE↔FE contract |
||
|
|
6cf22e98dd |
feat(planned-downtime): scope maintenance windows to label expressions (#11186)
* add maintenanceMuteStage to move planned maintenance to alertmanager Rules previously skipped rule.Eval() entirely during maintenance windows. This change moves suppression to MaintenanceMuter, injected as a Stage in the alertmanager notification pipeline. Now rules always evaluate and everys suppression is handled by alertmanager. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: wrap routing pipeline once instead of per-route injection Replace the per-route-entry loop with a single MultiStage wrap so maintenance suppression runs once per dispatch group before routing. * refactor: move maintenance mute stage into custom pipelineBuilder Copy notify.PipelineBuilder locally so we can inject mms between the silence stage and the receiver stage (GossipSettle → Inhibit → TimeActive → TimeMute → Silence → mms → Receiver), matching the correct suppression order the team requires. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: add license header to pipeline_builder.go Copied code originates from Apache-2.0 licensed Prometheus Alertmanager; add dual copyright + SPDX identifier following the repo's convention. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: replace SPDX tag with full Apache 2.0 license boilerplate The full license text is unambiguously compliant with Apache 2.0 Section 4(a), which requires giving recipients "a copy of this License". Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: pass MaintenanceMuter directly to pipelineBuilder Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: remove dead orgID param from task constructors Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * rename buildReceiverStage -> createReceiverStage * refactor: replace maintenanceMuteStage with notify.NewMuteStage MaintenanceMuter already satisfies types.Muter, and pipelineBuilder has its own pb.metrics, so the hand-rolled maintenanceMuteStage wrapper is redundant. Use notify.NewMuteStage(pb.muter, pb.metrics) directly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: hoist MuteStage construction out of the receiver loop MuteStage holds no per-receiver state, so one instance shared across all receivers is sufficient — matching how is/ss are handled upstream. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: always initialize maintenanceStore; remove nil guards Tests now use a real sqlrulestore-backed MaintenanceMuter instead of passing nil. With nil no longer a valid input, remove the nil guards in server.go and pipeline_builder.go. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: move MaintenanceMuter to Server and pass it to pipelineBuilder.New - Remove muter from pipelineBuilder struct and newPipelineBuilder(); pass it as a parameter to New() instead, consistent with inhibitor/silencer - Store muter on Server so GetAlerts can call Mutes() alongside the inhibitor and silencer, ensuring maintenance-suppressed alerts show the correct muted status in API responses Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * remove redundant MemMarker wrapper * feat: surface maintenance-suppressed alerts via mutedBy in GetAlerts Alerts suppressed by an active maintenance window were being correctly muted in the notification pipeline but appeared as state=active in the v2 GetAlerts response, since MaintenanceMuter.Mutes had no marker side-effect (unlike inhibitor/silencer). Add MaintenanceMuter.MutedBy returning the matching window IDs, and plumb a mutedByFunc callback through NewGettableAlertsFromAlertProvider into AlertToOpenAPIAlert. The upstream v2 API forces state=suppressed when mutedBy is non-empty, so the frontend's existing state-based rendering picks it up without further changes. Use the dedicated mutedBy field rather than SilencedBy to avoid violating the "complete set of silence IDs" contract that anything querying silences by ID would rely on. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * code cleanup * refactor: move maintenance (planned downtime) to alertmanager packages Types move from pkg/types/ruletypes/ to pkg/types/alertmanagertypes/: - maintenance.go, recurrence.go, schedule.go (+ tests) Store impl moves from pkg/ruler/rulestore/sqlrulestore/ to pkg/alertmanager/alertmanagerstore/sqlalertmanagerstore/. Maintenance windows mute alerts, so they belong with alertmanager rather than the rule types. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * test: add unit tests for MaintenanceMuter Covers Mutes/MutedBy semantics (empty label, rule match, empty-RuleIDs matches-all, future windows, multi-window) and the result cache (single-fetch within TTL, stale-cache fallback on store error, re-fetch after expiry, concurrency safety). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Update schema changes * Re-add marker * fix NewMaintenanceStore in tests * Go lint fixes * test: use mockery-generated mock for MaintenanceStore in muter tests Replace hand-written fakeMaintenanceStore with a mockery-generated MockMaintenanceStore, consistent with the alertmanagertest pattern. Also adds MaintenanceStore to .mockery.yml so the mock stays in sync. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: regenerate mocks via make gen-mocks Picks up new MockHandler for the Handler interface in pkg/alertmanager and regenerates MockMaintenanceStore with canonical mockery formatting. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * cleanup test * test: add e2e muting tests for maintenance window behaviour * Add label expression support to planned downtime Alert instances can now be scoped by label expression (e.g. env == "prod"), scoping suppression below the rule level. A window with no rule IDs and a label expression silences any alert whose labels match, regardless of which rule fired it; when rule IDs are also present, the expression is evaluated only within the matched rules. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Remove redundant || undefined from labelExpression assignment * Move label expression evaluation into ShouldSkip ShouldSkip now owns all three suppression checks in sequence: rule ID match → schedule active → label expression. IsActive passes nil labels so the expression check is skipped (no instance labels available for UI status). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * remove redundant LabelSet->map conversion * implement Down migration to drop label_expression column * fix lset type and update openapi spec * fix(tests): resolve envprovider env isolation, factory name length, and ShouldSkip signature Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * remove unused function `evaluateLabelExpression` * chore: rename label expression to scope * test(maintenance): add tests for scope label expression filtering Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(e2e): verify scope-based maintenance muting in alertmanager flow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Use `AND` instead of `&&` Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> * fix(maintenance): consolidate label-set-to-env conversion to avoid expr panic Move ConvertLabelSetToEnv to alertmanagertypes so both the maintenance scope evaluator and the route-policy evaluator share one implementation. Dotted label keys (e.g. kubernetes.node) are expanded into nested maps, preventing the expr-lang panic that occurs when one key is a prefix of another. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(planned-downtime): use clickable learn more link in scope tooltip * chore(sqlmigration): renumber add_scope_to_planned_maintenance to 086 078 collided with add_sa_managed_role_txn; bumped to the next free number and reordered registration after add_source_to_dashboard (085). * refactor(maintenance): extract scope expression eval and surface errors - Move ConvertLabelSetToEnv and EvalScopeExpression into expression.go with companion tests in expression_test.go. - EvalScopeExpression now returns (bool, error) instead of swallowing compile/run failures and non-bool outputs; ShouldSkip logs the error via slog.Default() and falls back to not suppressing (safety-first). - Update test fixtures to the SQL-style operator form (`=`, AND, OR) matching the placeholder and reviewer suggestions. * chore: use `=` instead of `==` in expressions * fix(maintenance): satisfy forbidigo/sloglint in scope eval - Replace fmt.Errorf with pkg/errors Wrapf/Newf using a new ErrCodeInvalidScopeExpression code. - Use slog ErrorContext (with context.Background()) instead of Error to satisfy sloglint. * perf(maintenance): fold prefix-conflict detection into ConvertLabelSetToEnv ConvertLabelSetToEnv now returns (env, conflict). The rulebased provider drops its O(n^2) pre-scan and logs based on the flag, restoring the previous O(n*d) cost while keeping the shared helper. * chore: add docs URL for invalid scope * refactor: don't log in types package * remove down migration --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
39957d322f |
fix(planned-downtime): remove unused timezone dep from useMemo hooks (#11448)
The startTimeText and endTimeText useMemo hooks did not reference timezone in their callback bodies, so including it in the dependency arrays caused unnecessary recomputations whenever the timezone form field changed. |
||
|
|
d1f143f675 |
feat(web): add support for generating web settings types (#11445)
* feat(web): add support for generating settings type * feat(web): add support for generating settings type * feat(web): add support for generating settings type * refactor: rename generate settings to generate config web-settings - Rename cmd/settings.go to cmd/genconfig.go - Restructure command as `generate config web-settings` - Move schema output to docs/config/web-settings.json - Update frontend script to generate:config:web-settings - Update CI checks to match new command names - Strip Web prefix from generated JSON Schema definitions |
||
|
|
1355b13504 |
chore: added changes to migrate slider component from antd to signozhq/ui (#11411)
* chore: added changes to migrate slider component from antd to signozhq/ui * chore: package update * chore(jest): allow copy-text-to-clipboard through transformIgnorePatterns |
||
|
|
22d6d5248f |
feat(ai-assistant): collapse thinking + tool-call steps into one row (#11361)
* feat(ai-assistant): collapse thinking + tool-call steps into one row Long sequences of thinking and tool-call rows in the chat were noisy and pushed the actual answer below the fold. ActivityGroup folds any run of consecutive thinking + tool events behind a single "Worked through N steps" summary that expands on click. While streaming, the trailing group reads "Working… · Xs · N steps" with a live elapsed-time tick that re-stamps on approval/clarification resume. ThinkingStep now reads "Thinking…" while live and "Thought for a few seconds" once done. Liveness is derived purely from render position (trailing item in a trailing live group); persisted history blocks default to not-live so they render the same wording without depending on server-stored timing. * refactor(ai-assistant): tighten ActivityGroup after review - Bare-render lone activity items: a single thinking or tool step no longer renders as "Worked through 1 step" — the underlying chevron is enough disclosure. - Memoize the group partition in MessageBubble and StreamingMessage so store updates that don't touch the message's blocks/events don't churn the underlying step children. - Bump the elapsed-timer tick from 500ms to 1000ms (display is integer-second precision) and suppress the elapsed token until ≥ 1s. - Add aria-expanded + aria-controls on the disclosure button and rename the SCSS keyframe to activityGroupPulse to avoid a global collision. - Document the same-instance invariant ActivityGroup's timer relies on in groupStreamingEvents. * refactor(ai-assistant): apply PR review feedback on ActivityGroup - Reuse formatTime() from utils/timeUtils for the elapsed-time label instead of a local formatter. - Tighten the isLive JSDoc on ActivityGroup and ThinkingStep so the doc only captures the non-obvious "why" (timer re-stamp on resume; vague copy because the API doesn't persist precise timing). * refactor(ai-assistant): unify activity rows under ActivityGroup Drop the bare-render shortcut for single-item activity groups and route every "what the agent did" row through ActivityGroup. The summary now adapts to the item count and kind — single-item groups read "Thinking… / Thought for a few seconds" or the tool's display text instead of the awkward "Worked through 1 step", and single-item expansion renders the underlying content body directly (no second chevron disclosure). Extracts ThinkingContent / ToolCallContent body sub-components and a small thinkingLabel / getToolDisplayLabel helper so ActivityGroup can reuse them without duplicating markup. * refactor(ai-assistant): apply ActivityGroup review feedback - Rename common CSS module class names to scoped variants (.group → .activityGroup, .header → .activityHeader, etc.) so matches against module classes carry intent and don't collide with future styles in adjacent files. - Swap the disclosure <button> for a <div> with onClick — drops the signoz Button component option since its action-button defaults (focus ring, base padding, hover background) visually regressed the quiet full-width row. Matches the existing ThinkingStep / ToolCallStep disclosure pattern. - Drop the useId + aria-controls plumbing; with the disclosure collapsed inline beneath the header, the id wasn't carrying semantic weight beyond what aria-expanded already provides. - Thread stable id fields through ActivityItem and the RenderGroup types so list keys come from typed data rather than the loop index. Persisted tool blocks key off the server-assigned toolCallId; streaming items and thinking blocks key off their position in the append-only source array. |
||
|
|
fdbdbf27a8 |
chore: added changes to migerate alert chart component to new charts (#11308)
* chore: added changes to migerate alert chart component to new charts * chore: minor changes * chore: minor changes * chore: pr review changes * chore: minor refactor |
||
|
|
f47f1ad92b |
Remove unused field from waterfall response (part 1 of memory opt) (#11337)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: remove unused field from waterfall v3 * chore: update openapi specs * chore: remove debug statements |
||
|
|
3ffb5bd43b |
feat(web): add support web settings (#11444)
* feat(web): add support web settings in index.html * feat(web): remove settings from global config * feat(web): fix openapi schemas * feat(web): fix formatting issues * feat(web): fix formatting issues * feat(web): remove frontend script changes * feat(web): remove the redundant test * feat(web): update defaults |
||
|
|
67324edb7e |
feat: opamp integration signozspanmapper (#11335)
* feat: opamp integration signozspanmapper * fix: update go.mod * fix: minor changes * fix: keep action as a part of source * fix: update go.mod * fix: address comments * fix: revert changes |
||
|
|
9ba57d323d |
refactor: merge tracedetail typse with spantypes (#11417)
* refactor: merge tracedetail typse with spantypes * chore: update openapi specs |
||
|
|
09f4ba33c9 | fix: handle body json for default view (#11443) | ||
|
|
832930239e |
refactor: cloud integration dashboards migration to DB (#11382)
Some checks failed
build-staging / prepare (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
* chore: added migration setup * feat(sqlmigration): add integration_dashboards table (migration 079) Adds the `integration_dashboards` relations table that stores the integration-specific identity for dashboards provisioned from cloud or builtin integrations. Columns: id, org_id, dashboard_id, provider, slug, created_at, updated_at. Includes a unique index on dashboard_id. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(sqlmigration): backfill cloud integration dashboards to DB (migration 080) One-time idempotent migration that provisions dashboard rows for all orgs with existing cloud integration services where metrics are enabled. Each dashboard is inserted into the `dashboard` table with source="integration" and locked=true, and a companion row is added to `integration_dashboards` with provider="cloud_integrations" and slug="{provider}-{service}-{dashboard}" (e.g. aws-alb-overview). Idempotency is enforced by checking (org_id, provider, slug) on integration_dashboards before each insert. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(sqlmigration): clean up stale 079 artifacts, add 079 schema migration Remove the pre-rename 079_migrate_cloud_integration_dashboards.go and 079_cloud_integration_dashboards/ directory that were left behind when the backfill migration was renumbered to 080. Add the missing 079_add_integration_dashboards.go (schema-only migration creating the integration_dashboards table) which provider.go already references. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: adding comment for fk * refactor: renaming table name * refactor: rename and restructure cloud integration dashboard migration types * chore: file rename * refactor: dashboard creation and listing flow change * refactor: removing loose strings * refactor: adding DeleteBySource on dashboard module * refactor: review changes and update service flow change * refactor: simplify comments * ci: lint staticcheck fix * refactor: renaming migration and adding integration tests * ci: py fmt lint fixes * feat: adding ListSharedServices store method * ci: golangci-lint fix * refactor: code cleanup * chore: revert changed due to js lint * refactor: test assertion changes * refactor: using bindparam for sql generation * chore: migrate integration dashboards json to v5 (#11419) --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
f2a18e8b6c |
fix(trace-details): make back button reliably return to previous in-app page (#11414)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix: back button issue * chore: add unit test * fix : test cases --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
4da5673e12 |
chore: migrate antd Progress to signoz ui component (#11398)
* chore: migrate antd ProgressBar to signoz ui component * fix: homepage progress bar leaking section, resolve comments * fix: remove stripe animation from progress bars in api monitoring section * revert: accidental unrelated files |
||
|
|
c3db819d8e |
chore: update code owners for dashboard v2 and e2e (#11412)
* chore: update code owners for dashboard and e2e * chore: update code owners order |
||
|
|
c83578f211 |
chore: stats collection for logspipeline (#11409)
* feat: logspipeline statscollector * fix: collect total and enabled * chore: update metric name |
||
|
|
04a4d3fe32 |
fix(date-time-selection-v2): out of sync query params (#11399)
* fix(date-time-selection-v2): out of sync query params * chore(get-current-search-params): explain why we have that file * fix(pr): address comments |
||
|
|
27dc996fd8 |
chore(integrations): make dot-metrics dashboards canonical, remove IsDotMetricsEnabled flag (#11406)
IsDotMetricsEnabled always returns true so the _dot.json variants were always served. Replace each non-dot dashboard JSON with the dot content, delete the _dot.json files, and remove the dead flag-check logic from HydrateFileUris. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
83b25f3e9a |
fix(authdomain): sso enabled toggle value from nested config (#11402)
* fix(authdomain): read ssoEnabled from nested config path in enforce SSO column * test(authdomain): assert enforce SSO toggle reflects nested config.ssoEnabled * test(authdomain): drop unnecessary Switch mock --------- Co-authored-by: Karan Balani <29383381+balanikaran@users.noreply.github.com> |
||
|
|
67e4c4611c |
refactor: replace Ant Design Switch with Signoz UI Switch across mult… (#11223)
* refactor: replace Ant Design Switch with Signoz UI Switch across multiple components * fix: update snapshot of failing test * feat: update snapshot * refactor: update imports to use Signoz UI Switch from the new path across multiple components * refactor: update banned components to use Signoz UI imports for Typography and Switch * refactor: replace Ant Design Switch with Signoz UI Switch |
||
|
|
7274421895 | chore: fga ui feedbacks (#11403) |