-
Notifications
You must be signed in to change notification settings - Fork 3
feat(attribution)!: switch the resolver to the fact index and relabel the metric surface #287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
43 commits
Select commit
Hold shift + click to select a range
218a289
feat(watch)!: resolve commit authors from the in-process fact index
sunib de9a4bd
feat(main): select the attribution fact transport
sunib 462778f
docs(attribution): record the fact stream as shipped
sunib 8117685
test(e2e): attribute an aggregated collection delete through the ward…
sunib fef99b7
fix(queue): expire idle fact streams and stop shipping unread fields
sunib fd67198
fix(queue): credit a collection delete to the deleter, not the last e…
sunib d72fd70
fix(queue): age facts from their append time and stop phantom trim gaps
sunib 76b80e5
test(queue): prove one fact serves every GitTarget waiting for it
sunib 8d006ab
test(webhook): assert the collection join against captured aggregated…
sunib 3197419
fix(queue): make a removal wait for evidence about the deletion
sunib b12737f
fix(e2e): the author-mode probe read "no Redis" as configured-author
sunib 0c3e399
docs(attribution): correct the record on tier order and on waiting
sunib bfb5fbf
fix(webhook): fail only the streams that did not append
sunib 5e535e7
test(e2e): prove the cleanup bot is the last writer before deleting
sunib 3084b86
fix(docs): keep the INDEX entry inside the line-length limit
sunib c4a381a
docs(attribution): record what the removal wait costs, per tier
sunib 458a03d
docs(design): work out when a removal should stop waiting for its author
sunib 3a6dd24
docs: the "no audit event" population is the audit policy, not Kubern…
sunib d1f3f4a
test(lab): capture the flunder delete and deletecollection, and say w…
sunib f76a273
fix(lab): serve the named audit route, not just the bare path
sunib 5c34f7b
fix(lab): stop the corpus churning on timings and generated names
sunib 5b91aef
test(lab): capture the aggregated delete and deletecollection
sunib 0d695a0
test(lab): capture a generateName create as the aggregated rows' control
sunib 8e40dca
feat(attribution): restore the fact's name and join on it
sunib 1c67ea5
test(e2e): assert a CommitRequest committed, not merely that it ended
sunib 96c0f61
docs: record what the branch's loose ends turned out to be
sunib 81e0b56
fix(queue): let a removal reach its delete fact when the fact is keye…
sunib 55f5262
docs: root-cause the CommitRequest window race and record the fix
sunib c33ed01
docs: describe attribution's two halves, and why neither knows about …
sunib 2f8d8bf
docs: say why attribution is split in two, and that filing picks one …
sunib 494ee06
docs: diagram the wait, and say plainly that filing is about memory
sunib 927fb20
docs: list the attribution metrics, the gaps, and the exact_user wart
sunib 1e9676f
docs: propose a consolidated attribution metric surface
sunib 3e2b9aa
docs: trace the fact-stream record's claims to metrics, and find seve…
sunib bd2e0c1
docs: design the stream-count metrics so "reasonable" becomes measurable
sunib ab497d9
docs: design the three cheap metrics, and correct a wrong claim about…
sunib f3f452c
docs: cut the metrics proposal to a first release, and record what it…
sunib 2de2904
feat(metrics)!: split the attribution `result` label into `tier` and …
sunib ad6d0a8
feat(metrics): count the attribution loss paths that were silent
sunib f66d28a
docs(metrics): make the follower alert fire when it has NEVER succeeded
sunib e9aaefc
feat(attribution): make "a fact names somebody" a wire contract, not …
sunib b08fd23
fix(chart): let attribution.transport=memory actually run without Redis
sunib 930f25f
test(controller): widen the encryption-secret recreation budget to 3.…
sunib File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| 78.4 | ||
| 78.5 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,15 @@ | ||
| {{- /* | ||
| Attribution (attributed-author mode) reads and writes audit facts in Redis, so it cannot run | ||
| without an endpoint — the controller would fail at startup. Fail the render early with an | ||
| actionable message instead. The admission webhook is deliberately NOT gated here: it stays | ||
| enabled without Redis and simply no-ops command-author capture. | ||
| Attribution needs a fact TRANSPORT, which is not the same as needing Redis. The redis transport | ||
| appends facts to Redis streams, so it cannot run without an endpoint — the controller would fail at | ||
| startup, so fail the render early with an actionable message instead. The memory transport needs no | ||
| endpoint at all, and refusing it here would make a value this chart itself documents unreachable. | ||
|
|
||
| The memory transport's other requirement, a single replica, needs no check here: validate-replica-count.yaml | ||
| already refuses replicaCount > 1 for the whole chart, so there is no configuration this could catch. | ||
|
|
||
| The admission webhook is deliberately NOT gated here: it stays enabled without Redis and simply | ||
| no-ops command-author capture. | ||
| */ -}} | ||
| {{- if and .Values.attribution.enabled (eq (trim .Values.queue.redis.addr) "") -}} | ||
| {{- fail "attribution.enabled=true requires queue.redis.addr: attributed-author mode stores audit facts in Redis. Set queue.redis.addr, or leave attribution.enabled=false." -}} | ||
| {{- if and .Values.attribution.enabled (eq .Values.attribution.transport "redis") (eq (trim .Values.queue.redis.addr) "") -}} | ||
| {{- fail "attribution.enabled=true with attribution.transport=redis requires queue.redis.addr: the redis transport carries audit facts on Redis streams. Set queue.redis.addr, select attribution.transport=memory to run attribution in-process on a single replica, or leave attribution.enabled=false." -}} | ||
| {{- end -}} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.