Skip to content

[grafana] Opportunity funnel panel: queued aggregated as total, dropped broken out by stage — incomparable series #280

@obchain

Description

@obchain

Refs #54

Location

deploy/grafana/charon.json — Panel 7 (opportunities queued vs dropped)

Queries

Queued: sum(rate(charon_executor_opportunities_queued_total{...}[1m]))
Dropped: sum by (stage) (rate(charon_executor_opportunities_dropped_total{...}[1m]))

Problem

The queued query aggregates all instances into a single series (no by (stage)). The dropped query breaks out by stage label. The panel renders one line for queued and multiple lines for dropped — they are not directly comparable because queued is a total while dropped is per-stage.

A correct funnel visualization requires either both series at the same aggregation level or both as totals. The current configuration makes it impossible to visually interpret stage-level loss rates against the total intake.

Impact

Operators will misread the opportunity funnel. The core diagnostic value of the panel (understanding where opportunities are being dropped) is obscured by the aggregation mismatch.

Suggested Fix

Either:

  1. Change the queued query to sum by (stage) with a static stage label (stage="queued") for structural symmetry, OR
  2. Add a second queued series broken down (queued total and per-stage dropped on the same axes), OR
  3. Split Panel 7 into two sub-panels: total rate comparison and drop-by-stage breakdown.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinglayer:devopsCI / deploy / infra / telemetrypriority:p1-coreCore MVP scopestatus:readyScoped and ready to pick uptype:featureNew capability or deliverable

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions