Skip to content

Conversation

@drewrelmas
Copy link
Contributor

@drewrelmas drewrelmas commented Jan 6, 2026

Draft PR to open discussion - The current otlp-bridge for the recordset engine uses the OpenTelemetry log data model spec for its initial schema keys (Attributes, Timestamp, ObservedTimestamp, SeverityText, etc).

However, many well-versed in the OpenTelemetry space may be more used to the snake case representation (attributes, time_unix_nano, observed_time_unix_nano, severity_text, etc) from the proto representation.

Do we have any significant risks if we plan to support both? Inspired by severity_text reference in #1722, been on the back of my mind for a while.

This is still somewhat incomplete, could need more wiring for user-provided aliases in bridge, but for the moment just doing it for known OpenTelemetry fields.

@github-actions github-actions bot added rust Pull requests that update Rust code query-engine Query Engine / Transform related tasks query-engine-recordset Reference query engine implementation processing over a set of records labels Jan 6, 2026
@drewrelmas drewrelmas changed the title Add support for schema key aliases Add support for schema key aliases in query engine Parsers Jan 6, 2026
@codecov
Copy link

codecov bot commented Jan 6, 2026

Codecov Report

❌ Patch coverage is 81.41026% with 58 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.66%. Comparing base (93551a6) to head (43e2fab).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1725      +/-   ##
==========================================
+ Coverage   84.65%   84.66%   +0.01%     
==========================================
  Files         502      502              
  Lines      148609   148757     +148     
==========================================
+ Hits       125799   125945     +146     
- Misses      22276    22278       +2     
  Partials      534      534              
Components Coverage Δ
otap-dataflow 86.00% <ø> (-0.02%) ⬇️
query_abstraction 80.61% <ø> (ø)
query_engine 90.58% <81.41%> (+0.05%) ⬆️
syslog_cef_receivers ∅ <ø> (∅)
otel-arrow-go 53.50% <ø> (ø)
quiver 90.66% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

"SpanId" => self.span_id.is_some(),
"TraceFlags" => self.flags.is_some(),
"EventName" => self.event_name.is_some(),
"Attributes" | "attributes" => true,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just musing here, this is kind of bloaty repeating itself a lot. Anything you can think of to try and consolidate/satisfy DRY principle?

It would be great if the parser could normalize everything in the tree so this code only need worry about the "canonical_key" for lookup. It could in some cases but I don't think we could do it always. Because it is possible to get some dynamic lookup at runtime think source[Attributes['some_key']]. Probably rare but not impossible 😄

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did add a normalize function and changed all of these mappings to the 'canonical` key. I agree there's still a lot of repetition here...

@drewrelmas drewrelmas marked this pull request as ready for review January 21, 2026 01:14
@drewrelmas drewrelmas requested a review from a team as a code owner January 21, 2026 01:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

query-engine Query Engine / Transform related tasks query-engine-recordset Reference query engine implementation processing over a set of records rust Pull requests that update Rust code

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants