oxidecomputer / oxidecomputer/dendrite

Oximeter types probably shouldn't be in the Dendrite API

Open
#359 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
20
Forks
3
Avg merge
3d 11h
Merged PRs (30d)
4

Description

While resolving #357, we found that some of the Oximeter types, e.g., OximeterMetadata appear in the dpd OpenAPI document. That's because they are returned by the (unpublished) oximeter_collect_meta_endpoint() API endpoint. They probably shouldn't be. The type here is entirely internal to Dendrite, and even for debugging purposes, the data it exposes is almost never relevant and can be retrieved through other means (SMF, pfiles, omdb, etc.).

If we remove this, then we can follow @jgallagher's good suggestion on #358, and move the oximeter configuration data to a shared crate, and then have specific methods for the tfportd or dpd producer IDs, or whatever new ones are added.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the unpublished oximeter_collect_meta_endpoint() and the Oximeter types, such as OximeterMetadata, into the dpd OpenAPI document. Review the context from issues #357 and #358, then confirm that removing this API exposure permits the oximeter configuration data to move to a shared crate with producer-specific methods. Done means the internal Oximeter types no longer appear in the Dendrite API.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.