fangorn/ex_git_objectstore
public
ref:796cf4019db07f046eea9d127a297f47d76143a9
feat: telemetry spans for fetch, atomic push, and filter application
Operational visibility for the new protocol-v2 code paths.
Events emitted:
* [:ex_git_objectstore, :protocol, :fetch] — span around every
UploadPackV2 fetch. Start/stop metadata carries wants, haves,
mode (:full / :shallow / :filtered / :shallow_filtered /
:wait_for_done), repo_id; stop measurements carry `objects`
and `pack_bytes`.
* [:ex_git_objectstore, :protocol, :receive_pack, :atomic] —
span around the atomic ref-update flow. Stop metadata carries
outcome (:committed / :rolled_back), commands, and
validation_failures.
* [:ex_git_objectstore, :pack, :filter] — single event per filter
application. Measurements: objects_in, objects_out. Metadata:
spec_kind (:blob_none / :blob_limit / :tree_depth /
:object_type / :sparse_oid / :combine), repo_id.
* [:ex_git_objectstore, :protocol, :receive_pack, :rollback_failed] —
emitted in the rare case a ref rollback fails during atomic
abort (already added in the previous error-handling commit;
noted here for completeness).
Test file `test/ex_git_objectstore/protocol/telemetry_test.exs`
attaches a handler and asserts each event fires with the expected
payload for clone, shallow fetch, filter, and atomic-commit paths.
SHA:
796cf4019db07f046eea9d127a297f47d76143a9
Author:
Cole Christensen <cole.christensen@macmillan.com>
Date:
2026-04-19 01:19
Parents:
b77b43f
3 files changed
+311
-28
| Type | ||
|---|---|---|
|
|
lib/ex_git_objectstore/protocol/receive_pack.ex | +29 −8 |
|
||
|
|
lib/ex_git_objectstore/protocol/upload_pack_v2.ex | +81 −20 |
|
||