oxidecomputer / oxidecomputer/omicron

OxQL could expose a way to return only the fields satisfying a query

Open
#7,131 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

oxql
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

All OxQL queries start with the get table operation. That operates on all the timeseries in a single table, and returns both the data points and fields that match. If there are no matching data points, the entire timeseries is usually filtered out. This is what we want most of the time, but not always. It would be really nice to have a table operation that selected only the fields that match a particular query. For example, if you want to know what sled serial numbers are available to you for the sled_data_link:bytes_sent timeseries, you need to do something like get sled_data_link:bytes_sent | last 1 to get as small a set of data as possible, and then ignore the data points themselves. We could first-class this concept, into something like a get_fields table operation; a modifier on the existing get table operation; or something different.

Contributor guide

Open the contributing guide

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 reading the OxQL get table operation and the example query get sled_data_link:bytes_sent | last 1 described in the issue. Define how a field-only operation or modifier should behave, including its result shape and handling of unmatched data points; done means the behavior is specified and covered by appropriate tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.