Skip to content

design: standalone portable observability for Dispatch #1237

Closed

Description

@joryirving

Design only: define Dispatch observability independently of Courier and of any operator's monitoring environment.

Boundaries

Dispatch owns work-supply and task lifecycle truth. It must remain useful with any worker client or without Courier. No dependency on Courier telemetry, phases, dashboards, release cadence, or mandatory shared identifiers. Optional connector/operator correlation is composition, not coupling.

Scope

  • Inventory actual queue, assignment, hand-out/claim/acknowledgement, lease, settlement, admission/dependency, grooming, and failure states in current code. Do not assume every queue uses the same lease model.
  • Specify queue depth/age by bounded state and lane; assignment versus active execution; hand-out, acknowledgement, settlement and reclaim outcomes; dependency/admission withholding; operational exhaustion versus genuine human decisions.
  • Separate settled/closed work, awaiting review, stale claims, blocked dependencies, and genuine human decisions. An empty PR-fix listing does not prove no assigned issue work exists.
  • Catalogue signals, units, timestamp/reset semantics, bounded dimensions, privacy constraints, and missing/unknown states. Avoid arbitrary repo/task IDs, credentials, and error strings as metric labels.
  • Design a standalone dashboard and backend-neutral alert conditions. Cover stale ownership, failure to hand out eligible work, unavailable upstream evidence, and normal inactivity; specify recovery and operator actions.
  • Describe optional Prometheus/VictoriaMetrics and OTel-based integration approaches without assuming Grafana or Alertmanager. OTel carries telemetry; dashboard/evaluator choices remain explicit.

Acceptance

An independently usable signal/state catalogue, dashboard view specification, alert catalogue, and integration matrix, with healthy/idle/degraded examples for a non-Courier consumer. Identify current instrumentation and unknowns; exporter/dependency choices require a later decision.

Non-goals

No implementation, requeues, claim release, worker credential changes, dashboard/rule assets, deployments, or home-ops configuration. Courier's independent counterpart is misospace/courier#289; that link is informational, not a prerequisite.

Activity

  1. joryirving commented on Oct 13, 2026

    @joryirving
    ContributorAuthor

    Implementation handoff (2026-10-13)

    Existing durable claim-lifecycle event work #1202 / #1203 is related but NOT duplicated. These issues are implementation work, not a request to add code to docs-only PR #1239. Closing #1237 on design merge must not close #1252/#1255.

  2. added and removed
    status/in-reviewPull request or human review is in progress.
    on Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions