Skip to content

[DRAFT][ereport] Initial draft of ereport reporter API #6835

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

Closed
wants to merge 17 commits into from

Conversation

hawkw
Copy link
Member

@hawkw hawkw commented Oct 11, 2024

This is an initial draft of the reporter API for error reports (ereports), as described in RFD 520's determinations. This is not a complete implementation and isn't ready to merge yet.

@hawkw hawkw marked this pull request as draft October 11, 2024 18:14
@hawkw hawkw closed this in #7833 Mar 26, 2025
hawkw added a commit that referenced this pull request Mar 26, 2025
This branch adds an initial version of the HTTP API for the control
plane's ereport ingestion mechanism, as described in [RFD 520]. In
particularr, this branch adds the following:

- an `ereport-types` crate, containing the shared type definitions for
  ereport data
- an `ereporter-api` crate defining the Dropshot HTTP API that will be
  implemented by MGS and sled-agents in order to expose ereports to
  Nexus
- the generated `ereporter-client` crate for that API, which Nexus will
  use to ingest ereports from reporters.

Actually implementing the API in MGS and sled-agent, and implementing
the Nexus RPW for collecting ereports using this interface, is left as
an exercise for ~~the reader~~ future Eliza. I also intend to add a
simulated version of this API to the simulated sled-agent and MGS, to to
use for testing the ingestion bits in Nexus.

The ereporter HTTP API has changed a bit from the strawman version
proposed in RFD 520, as the request to collect new ereports and the
request to flush already-committed ereports are now contained in the
same HTTP request, rather than requiring separate endpoints for these
operations. This is due to @cbiffle: in [his proposal][545-4.4.1] for
the MGS-to-SP hop in the ereport pipeline in [RFD 545], Cliff has
combined these into one message, which I thought seemed nice to do here
as well.

Closes #6835 (obsoleted by this change)

[RFD 520]: https://rfd.shared.oxide.computer/rfd/520
[RFD 545]: https://rfd.shared.oxide.computer/rfd/0545
[545-4.4.1]: https://rfd.shared.oxide.computer/rfd/0545#_mgs_interface
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant