Changelog
Introducing the SigNoz MCP Server
SigNoz now has an MCP server that lets AI assistants like Cursor, VS Code / GitHub Copilot, Claude, Codex, Gemini, and others query your observability data through natural language. You can search logs, query metrics, inspect traces, list alerts, and work with dashboards directly from your AI coding tool.
SigNoz Cloud users can connect to a hosted MCP endpoint directly from Settings, with client-specific setup steps and copyable configuration snippets. Self-hosted users can run the MCP server locally via binary, Docker, or by building from source. You can also explore ready-to-use workflows in the MCP use cases guide.
Better Graph Tooltips
Dashboard chart tooltips can now be pinned using a keyboard shortcut. While hovering over Time Series, Bar, or Histogram panels, users can press the P key to lock the tooltip in place and inspect values without keeping the cursor fixed on the chart.
The tooltip UI now shows clearer Live/Pinned states, contextual hints for available actions, and an Unpin action. The footer has also been polished to better distinguish drilldown and pinning interactions.
Deploy SigNoz Under a Custom URL Path
Self-hosted SigNoz deployments can now be served from a custom URL path, such as https://example.com/signoz/, instead of requiring a root domain. This gives teams more flexibility when deploying SigNoz behind reverse proxies, ingress controllers, or shared internal domains.
The external URL can be configured through the SIGNOZ_GLOBAL_EXTERNAL__URL environment variable, while the default remains unchanged for existing deployments. Once configured, SigNoz uses the custom path consistently across the application without requiring an image rebuild.
Please see the corresponding documentation for more details.
Bug Fixes
- Dashboard Bar and Time Series panels now render correctly when
groupBydata is missing, fixing crashes seen in panels created through LLM/MCP workflows. - Unsupported ClickHouse and PromQL query types have been disabled for Anomaly Detection alerts.
- Several edge cases in the Alerts and Planned Downtime frontend flows, such as stale loading states, have been resolved.
- Operations on deleted service accounts now return a proper
404 Not FoundHTTP response instead of501 Not Implemented.
Maintenance
- Frontend internals were streamlined with remaining
xstateusage replaced with plain React state and local dispatch helpers, light-mode specific styles cleaned up, and unused code deleted. - The Trace Waterfall API was moved into the Trace Detail module, with improvements to handling of large traces, caching, and error resilience.
- Alerts and Planned Downtime frontend flows were migrated to generated clients, reducing custom API adapter code and improving consistency in error handling.
- Integration and E2E test infrastructure was consolidated under a shared
pytestproject with common fixtures, local backend-based E2E runs, and updated CI workflows. oxlintandoxfmtwere added as frontend linter and formatter respectively, speeding up the developer feedback loop.- The OpenTelemetry Collector was bumped to stable
v0.144.3.
Better Visibility into Member Invites
Member management has been improved with clearer invite expiry visibility, making it easier for admins to see whether an invite link is still valid before sharing or regenerating it.
Clearer License Information in Workspace Settings

Workspace Settings now includes a dismissible informational callout on the license row, helping clarify how license details differ from Identity & Access management credentials.
Faster Queries Without Resource Filters
Queries that run without a resource filter are now more efficient. This improves performance when you're exploring telemetry across all services or infrastructure instead of narrowing to a specific resource up front.
Improved AWS Integrations
AWS integration setup is now more reliable, fixing issues with connection status checks, S3 bucket reset behavior, and account or region changes during configuration. The integrations module has also been refactored with a strong focus on AWS, making these flows easier to maintain over time.
Bug Fixes
- Alert creation from dashboard panels now works correctly for non-builder query types.
- Styling regressions introduced during the AWS integration refactor have been fixed, including semantic token issues in affected UI surfaces.
- The
HAVINGfilter in the Query Builder V2 now emits a validNOT INoperator, fixing cases where selecting this operator produced malformed queries.
Maintenance
- Alerting and rule-management internals have been consolidated further, with AlertManager, Ruler, and planned maintenance handlers moved into
signozapiserverand tighter OpenAPI validation added for rules and downtimes. - The AlertManager backend has been extended to support templating and custom notifier flows, laying the groundwork for future alert customization.
- The frontend design token system has been moved toward semantic tokens, improving consistency across the UI and reducing styling drift.
- Frontend asset management has been hardened, with assets migrated to
src/assetsand new lint rules added to prevent unsupported asset references. - Infrastructure Monitoring internals for Hosts and Kubernetes have been consolidated into shared list and detail components, improving consistency and making these views easier to maintain.
- Unused or deprecated internals have been cleaned up, including unused trace cache settings and other obsolete code paths.
Bug Fixes
- Routing policy expressions that reference undefined variables no longer fail validation. Variables can now be left undefined without blocking the expression from being saved.
- Queries using
hasAllorhasAnyfilter operators now pass the value argument correctly, fixing cases where these filters returned incorrect results. - Deleted service accounts now return a proper unauthenticated error code instead of a generic failure when their API key is used.
Maintenance
- The OpenTelemetry Collector has been upgraded to v0.144.3-rc.4.
- Cloud integration modules have been refactored with updated query parameter support and removal of deprecated underscore-prefixed attribute dashboards.
- SQLite connection max lifetime is now configurable, improving connection management under sustained load.
- Frontend onboarding data sources have been migrated from JSON to TypeScript, and asset imports now use the
@alias for cleaner path resolution. - ClickHouse queries sent from dashboard panels are now obfuscated in telemetry to avoid leaking sensitive query content.
Adds Service Accounts
Service accounts now live alongside team members in your workspace and support role-based access control. Each service account is assigned a single role and can authenticate using API keys. The previous API Keys page has been deprecated in favor of this new system. All the existing API keys have been migrated to service accounts.
Role assignment for both team members and service accounts has also been simplified to a single-role model, each identity now holds exactly one role, replacing the previous multi-role selection.
Auto-Expand in Trace Waterfall
Expanding a span in the trace detail waterfall now automatically pre-expands 5 levels of nested children. Previously, each level had to be expanded individually with a separate click, making it tedious to drill into deeply nested traces. Now a single click reveals the full call hierarchy up to 5 levels deep, so you get to the span you're looking for much faster.
Pretty-Print JSON in Log Details
When you copy an attribute value from the log detail view, JSON values are now automatically pretty-printed for readability instead of being copied as a single compressed line.
Bug Fixes
- The host list in Infrastructure Monitoring now correctly shows refresh status, and refresh interval queries no longer overlap with each other.
- Dormant metrics in the query range API now return a warning instead of an error, preventing unnecessary failures when querying metrics that haven't reported recently.
- Alert rules history no longer crashes when
relativeTimeis empty. - Dashboard variables with special characters now fall back to the raw parameter if
decodeURIComponentfails - The
havingexpression in the query builder now validates correctly before execution. - Empty
not()filter expressions are now handled gracefully instead of producing query errors.
Maintenance
- Cmd+click (or Ctrl+click) now works on all clickable items across the app, opening them in a new tab as expected.
- Deprecated v3/v4 rule format support and the v1 Metrics Explorer code have been removed.
- JSON Path indexing is now enabled for JSON log bodies, improving query performance on structured log data.
Export Trace Data

You can now export raw trace data directly from the Traces page. A new download button on the trace detail view lets you export trace data in CSV or JSONL format. The export supports both simple filters and advanced composite queries, so you can narrow down exactly the data you need before downloading.
YAML Configuration File Support
SigNoz now accepts a --config flag for loading configuration from YAML files. You can pass multiple files (--config base.yaml --config override.yaml) where later files override earlier ones, and environment variables always take the highest precedence. This replaces the previous deprecated --config flag that was used only for the Prometheus config path.
Bug Fixes
- Filtering traces by trace ID in the list view no longer returns duplicate spans or results from outside the selected time window. Previously, the trace_summary timerange override was applied incorrectly across query buckets, causing repeated and out-of-range results.
- Logs pipeline filters now correctly resolve manually entered attribute names that are not present in the filter suggestion dropdown. Previously, entering a field like
ddtags Existsby hand would misclassify it as a column rather than an attribute, causing downstream processors such as regex parsers to fail silently. - The normalize pipeline now runs first in the processing chain, ensuring consistent field formatting before other pipelines execute.
- PromQL queries that exceed the execution deadline now return a 504 Gateway Timeout instead of a misleading 400 Bad Request. The PromQL engine timeout is also now configurable via the
prometheus.timeoutsetting (default: 2m). - Charts on the Volume Details page in Infrastructure Monitoring now display proper legend labels instead of "undefined."
- Domain rows in External APIs now show a pointer cursor on hover, indicating they are clickable.
- Time series charts with isolated data points surrounded by null values on both sides render those points correctly instead of dropping them.
- Deleting an alert rule or planned maintenance entry that has associated dependencies no longer fails with a foreign key constraint error.
- Agent configurations no longer get stuck in the "In Progress" state indefinitely.
- Users with the Editor role can now access gateway APIs as expected.
- Checkout and billing errors now surface the actual downstream error message in the UI instead of a generic failure.
Maintenance
Patch release with internal fixes. No user-facing changes.
Zoom Out in Explorer Pages
The Logs, Traces, and Metrics explorer pages now have a zoom-out button next to the time picker. A single click steps your time range out through a fixed ladder (15m → 45m → 2hr → 7hr → 21hr → 1d → 2d → 3d → 1w → 2w → 1 month), making it easy to widen context during an investigation without opening the time picker. The range stays centered on your current window when possible, and snaps to "now" when the expanded range would exceed the current time.
Sectioned Panel Settings

The panel settings sidebar in the dashboard widget editor now groups configuration options into clearly labeled, collapsible sections. Related settings like axis, legend, and thresholds are organized together, making it easier to find and adjust visualization options without scrolling through a flat list.
Bug Fixes
- The custom domain settings card (Cloud) no longer shows a confusing plan name label. The card now displays the workspace name and a copiable license key in the footer, and no longer renders empty space when no custom domain is configured.
- Querying a histogram metric that has not received data within the selected time range now returns a "not found" error with diagnostic details (including when the metric was last seen) instead of a generic "something went wrong" message.
- Switching a dashboard panel type from time series to table now loads the table data correctly. The right-side settings panel in edit mode is also scrollable again.
- Dashboard variables now retain their selected values when navigating back from the widget editor and when toggling between view and edit modes.
- Creating a new Slack notification channel no longer fails with a "no global Slack App URL set" error. This affected users who signed up before v0.115.0 and did not have an existing Slack channel configured.
- The default color for log severity_text entries (when no severity key is present) now uses a theme-appropriate background color, resolving poor contrast in dark mode.
Auto-Generated Chart Legends from Group By
Chart legends in Query Builder now auto-populate based on your active group by fields. Each series is labeled with the values of the dimensions you're grouping by, so multi-series charts are easier to read without manually writing legend format strings.
Dedicated Members Page in Settings

Team member management has moved out of the SSO settings page into its own dedicated Members page. You can view all members and pending invites in a single table, edit a member's name, role, or password from a side drawer, and send new invitations without leaving the Members section.
Reorganized Settings Navigation
The settings sidebar now groups pages into labeled sections: "Identity & Access" and "Authentication." The account dropdown in the bottom-left corner has also been updated with icons and a cleaner layout, and Keyboard Shortcuts has moved there from the help menu. The "General" settings page is now called "Workspace" and "Account Settings" is now called "Account."
Bug Fixes
- Quick filters now correctly highlight active selections when query keys include prefixes like
resource.service.name. - Opening the widget editor on dashboards imported from partially formed or LLM-generated JSON no longer crashes the threshold selector.
- Dashboard panel creation no longer fails when the underlying API response is unavailable; all panel types now handle missing data gracefully.
- Updating a dashboard variable no longer throws a crash caused by an attempt to modify read-only state.
- The filter dropdown on the trace waterfall view no longer overlaps the search bar when the browser is zoomed in.
- API calls made after a token refresh now correctly retry using the updated token across all pages.
- A planned downtime notification with a malformed description no longer crashes the Planned Downtime page.
- The app layout now uses the correct timer cleanup function, preventing potential issues in non-standard JavaScript environments.
- The selected y-axis unit in Logs, Meter, and Traces explorers is now preserved across reloads, back/forward navigation, and shared links.
Maintenance
- Dashboard panels with auto-refresh enabled no longer accumulate stale query cache entries in memory over time, preventing browser tab crashes on long-running dashboards.
Bug Fixes
- Editing the time range by typing directly into the custom time picker now applies your changes when closing the popover, instead of silently discarding them.
- PromQL-based dashboard panels no longer display internal attributes like
__name__andfingerprintin query results. - Reverted the quick filters migration introduced in v0.114.0 to resolve issues it caused.
Maintenance
- Tooltip pinning has been reworked to support clicking on a data point across time series, bar, and histogram charts to keep the tooltip visible while inspecting values.
Custom Domain Settings Moved to General Settings

Custom domain settings are now consolidated into the General Settings page. The workspace URL on the home page now shows only your new custom domain, removing the confusion between default and custom hosts.
Bug Fixes
Dashboards
- Charts no longer leak memory due to canvas elements persisting across component re-mounts.
- Legend color picker now responds correctly under rapid interactions, and chart tooltips no longer leak memory on re-render.
- Dynamic variables that depend on textbox variables now load correctly even when the textbox value is empty.
Metrics Explorer
- Multiple queries using the same metric with no unit set are now correctly rendered as separate charts instead of being forced into one.
- Metric selection in the query builder now properly responds to blur and keyboard shortcuts (Cmd+Enter), fixing cases where aggregation options would not update after selecting a metric.
- Cmd+Enter now works in the summary tab, and key values can be expanded in full instead of loading five at a time.
- The most recently seen unit is now used instead of an arbitrary one, fixing incorrect unit labels on histogram count metrics.
- Errors are now surfaced to the user instead of failing silently.
Other
- Spatial aggregation queries are now validated before execution, preventing silently incorrect results from invalid configurations.
Maintenance
- SigNoz's frontend build system has been migrated from Webpack to Vite, reducing build times from 83 seconds to 10 seconds.
- Frontend bundle size has been further reduced by lazy-loading the syntax highlighter, moving antd-table-saveas-excel out of the main bundle, switching the Service Map to a lighter dependency, and caching the Intl number formatter.