docs(m181): the daemon exports traces, metrics and logs over OTLP - #183
Merged
Conversation
One changelog entry for the Rust daemon's OTLP export: the four standard knobs with their defaults and refusals, the vendor aliases that survive the cutover, the 5 s collection interval, and the counted, never retried, loss. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FunBrR9BdRLDeRrmpeEbGC
The loss bullet was written when only spans and metric cycles were counted. The log exporter now counts refused records onto the same family, so the bullet names all three signals. A second bullet for the one thing that is not symmetric: the log exporter raises no warning, because a warning about a failed log export becomes a log record handed back to the exporter that just failed it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HCTMYYb9kuy7uQopcysyZJ
… serves
The API reference lists every operation by method and path, and the drift check
compares that list against the generated document on main IN BOTH DIRECTIONS. It
fires on a documented path nobody serves and on a served operation nobody
documented. M181_003 caused both kinds, so every open docs PR failed a check that
had nothing to do with its own change.
Nine paths moved. The approval decision left the gate id's segment, because the
router refuses a literal after a parameter inside one segment, and its two verbs
collapse into one templated entry. The schedule sync took the same treatment.
Runner paths name `{runner_id}` where they said `{id}`, secrets name `{name}`
where they said `{secret_name}`, and the Slack events route generalised to
`{provider}`.
Eleven operations were served and undocumented. The ten `/v1/runners/me/*`
routes are the runner plane — what a runner calls about ITSELF, which is a
different reader from the operator-facing group that reads runners by id, so
they get their own group rather than swelling that one. The fleet-messages read
joins the write already beside it.
Two entries go rather than move, and neither is a rename. `GET /metrics` is
served by neither daemon. `POST /v1/webhooks/{fleet_id}/grant-approval` is a real
Zig route never ported to Rust, so it left the generated document without anyone
deciding to drop the endpoint; that gap is filed as an issue rather than left
implied by a documentation entry nobody can call.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015QmpDqyQoc7YUWDs7oTNgE
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The changelog entry for M181_004: the Rust daemon's OTLP export.
Pairs with agentsfleet#649. One
<Update>covering the four standard knobswith their defaults and refusals, the vendor aliases that survive the cutover,
the 5 s collection interval, and the counted-never-retried loss.
Session notes 1
Two commits.
65fd59cdrafted the entry;05b7e5fcorrected it after the logsignal gained a drop counter later in the same milestone — the loss bullet had
named only spans and metric cycles, because that was true when it was written.
A second bullet records the one asymmetry: the log exporter counts but does not
warn, because a warning about a failed log export becomes a log record handed
back to the exporter that just failed it.
Not in this entry: dropping the SDK's
internal-logsfeature changes whatan operator sees at debug level — the endpoint URL and collector response body
are no longer echoed. It is user-visible and deliberately left out pending
Indy's call, rather than added unasked.
Review
Make
Voice checked against
docs/CHANGELOG_VOICE.md:**Bold lead-noun** — consequence-first clause, one fact per bullet, code names in backticks, noload-bearing facts dropped.
🤖 Generated with Claude Code
https://claude.ai/code/session_01HCTMYYb9kuy7uQopcysyZJ
Greptile Summary
The PR documents the daemon’s OTLP export behavior and updates API-reference navigation to match the current OpenAPI operation names.
docs.json.Confidence Score: 5/5
The PR appears safe to merge.
No blocking failure remains.
Important Files Changed
Reviews (2): Last reviewed commit: "docs(api-reference): the navigation matc..." | Re-trigger Greptile