Skip to content

Conversation

@CodeBlanch
Copy link
Member

Relates to #1642

Changes

  • Adds a processor which executes KQL query using the RecordSet engine (OTLP-bytes form)

Details

@drewrelmas took @jmacd's original work and added tests + config. I cleaned it up a bit and improved the bridge API to allow the processor to own the pipeline memory instead of storing it in a static. The static path is in place for callers needing to invoke things using FFI (from non-Rust platforms).

@CodeBlanch CodeBlanch requested a review from a team as a code owner January 6, 2026 19:08
@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
@codecov
Copy link

codecov bot commented Jan 6, 2026

Codecov Report

❌ Patch coverage is 95.28908% with 44 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.19%. Comparing base (1af4d28) to head (8c67880).
⚠️ Report is 20 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1730      +/-   ##
==========================================
+ Coverage   84.08%   84.19%   +0.11%     
==========================================
  Files         467      473       +6     
  Lines      137359   137454      +95     
==========================================
+ Hits       115500   115735     +235     
+ Misses      21325    21185     -140     
  Partials      534      534              
Components Coverage Δ
otap-dataflow 85.47% <95.07%> (+0.11%) ⬆️
query_abstraction 80.61% <ø> (ø)
query_engine 90.53% <100.00%> (+0.14%) ⬆️
syslog_cef_receivers ∅ <ø> (∅)
otel-arrow-go 53.50% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

effect_handler
.notify_nack(NackMsg::new(
message,
OtapPdata::new(ctx, OtapPayload::empty(SignalType::Logs)),
Copy link
Contributor

Choose a reason for hiding this comment

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

should nack not send the data back if the previous component expects it?

Copy link
Contributor

Choose a reason for hiding this comment

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

Based on my understanding of notify_nack and notify_ack, yes, we would normally want to return original payload along with the nack. However, payload is being consumed in the conversion to OtlpProtoBytes...

Copy link
Contributor

Choose a reason for hiding this comment

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

The design of the Ack/Nack system allows for simple components that pass through the Context to do nothing and it will just work.

There is not much to worry about with dropping the input data, unless we want to use the current retry processor before the KQL processor. As long as we retry after KQL processor, not a problem.

@jmacd jmacd added this pull request to the merge queue Jan 8, 2026
Merged via the queue into open-telemetry:main with commit 9b0aa84 Jan 8, 2026
43 checks passed
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: Done

Development

Successfully merging this pull request may close these issues.

4 participants