Repository navigation
Feature Proposal: State Timeline Panel Type #11689
Replies: 2 comments 3 replies
|
How does it work here? |
|
Update: I've reworked the implementation on PR #12608 to fit the current v2 (Perses-based, v5-query) dashboard architecture, following @ahrefabhi's review. Posting the design decisions here so we can settle them before the PR is reviewed in depth. What changed since the proposalThe original proposal said "frontend only, no backend changes." That turned out to be incorrect for the current architecture. In v2, a panel kind is a Perses plugin whose spec lives in the backend ( Summary of the implementation:
Decisions I'd like your input onThese are the choices I made to keep the port minimal. Two of them are genuine design calls, not mechanical ports:
TestingUnit tests cover the v5-retargeted transform, the band-threshold evaluator, the time-axis tick logic, and legend interpolation. The property-based and component/render tests from the earlier version were not ported — several of them tested the old operator-based threshold algorithm and the v1 registration path, which no longer exist. I can add property-based tests for the band semantics if you'd like that level of coverage. Happy to adjust any of the above — especially #1 — before you spend review time on the PR. |


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Problem
When monitoring service health status across multiple services, the current panel types don't work well:
Grafana solves this with its "State Timeline" panel — a compact swim-lane visualization where each series is a horizontal row with color-coded segments over time. SigNoz currently has no equivalent.
Proposed Solution
A new panel type (
state_timeline) that renders grouped time-series data as horizontal swim-lane rows with configurable value-to-color mappings:State Timeline mockup — each row is a service, color indicates status over time (green = passed, yellow = intermittent, red = failed)

Each row represents a service. Green = passed, yellow = intermittent, red = failed. Time flows left to right.
Key behaviors:
≥ 0.999→ Green (Passed)0.001 – 0.999→ Yellow (Intermittent)≤ 0.001→ Red (Failed)Use cases:
Why This Matters
This is a common pattern for infrastructure and CI/CD monitoring. Many users migrating from Grafana expect this visualization. The current workaround (one panel per service) doesn't scale beyond 5-10 services.
Technical Scope
frontend/src/container/state_timelineWillingness to Contribute
I'm happy to implement this and submit a PR if the team is interested. I'd appreciate guidance on:
All reactions