Skip to content

Instrument upload-level multi-copy golden path success rate #516

Description

@BigLep

Done Criteria

  1. We can answer: what proportion of uploads achieve full multi-copy success — i.e. all requested copies stored (UploadResult.complete === true), not just per-copy attempt success.
  2. The metric schema is documented in documentation/events-and-metrics.md before implementation (same doc-first pattern as #363).
  3. Dashboards can slice golden-path success by affordance, network, requestedCopies, and (optionally) upload size.

Why Important

#363 / #501 added per-copy metrics (uploadCopyStatus, uploadCopySize) that answer:

Of all copy attempts, what fraction succeeded?

That is useful for SP/step regressions, but it does not answer the ORR golden-path question:

Of uploads that requested N copies, what fraction got all N?

Per-copy metrics can be skewed by uploads that request only one copy, or by uploads that request many copies (each failed copy adds weight). See PR #501 review discussion.

User/Customer

Maintainers / FOC working group

Proposed direction (draft — refine in events-and-metrics.md)

Emit one metric per executeUpload call (upload-level, not copy-level), e.g.:

Metric When emitted Suggested tags
uploadComplete (counter) Once when executeUpload returns complete (true/false), requestedCopies, achievedCopies, network, affordance, optionally size bucket or paired gauge

Alternative from #363 discussion: a multicopy tag (true/false/unknown) on upload-level metrics so dashboards can filter to multicopy=true uploads only.

Relationship to existing metrics: keep uploadCopyStatus / uploadCopySize for per-SP/per-step diagnostics; add upload-level metric(s) for golden-path rate. They complement each other.

Notes

  1. Blocked by / follows: #501 (telemetry plumbing, BetterStack ingestion, affordance tag).
  2. Partially addresses done criterion 1 of #363; criterion 2 (step + SP failure visibility) is already covered by per-copy metrics in feat: instrument multi-copy upload outcomes #501.
  3. Spec out event markers first (e.g. extend uploadResultReceived or add uploadGoldenPathResolved) so metrics stay tied to documented events.
  4. Consider whether complete should mirror Synapse's definition exactly (copies.length >= requestedCopies) vs. a stricter Filecoin Pin interpretation.
  5. Query recipe to document: sum(uploadComplete where complete=true) / sum(uploadComplete) filtered by multicopy=true and/or requestedCopies>=2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-workTriaged: scope, plan, and DoD are clear; contributor can pick upteam/filecoin-pin"Filecoin Pin" project is a stakeholder for this work.team/fs-wgFOC working group is a stakeholder for this work, and thus wants to track it on their project board.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions