Skip to content

feat: add ATOF JSONL exporter#88

Merged
rapids-bot[bot] merged 2 commits into
NVIDIA:mainfrom
willkill07:wkk_atof-jsonl-exporter
May 12, 2026
Merged

feat: add ATOF JSONL exporter#88
rapids-bot[bot] merged 2 commits into
NVIDIA:mainfrom
willkill07:wkk_atof-jsonl-exporter

Conversation

@willkill07
Copy link
Copy Markdown
Member

Overview

Adds a native filesystem-backed ATOF JSONL exporter that registers as a NeMo Flow event subscriber and writes one raw ATOF Event JSON object per line.

  • I confirm this contribution is my own work, or I have the right to submit it under this project's license.
  • I searched existing issues and open pull requests, and this does not duplicate existing work.

Details

  • Adds nemo_flow::observability::atof::{AtofExporter, AtofExporterConfig, AtofExporterMode} with append/overwrite modes, default current-directory output, generated UTC filenames, registration, deregistration, flush, and shutdown.
  • Exposes native bindings through FFI, Python, Node.js, and Go with language-appropriate config and lifecycle APIs.
  • Keeps WebAssembly unsupported for this filesystem-backed exporter and documents the native-only limitation.
  • Adds core, FFI, Python, Node.js, Go, and WASM coverage for defaults, lifecycle behavior, JSONL output shape, append/overwrite behavior, and unsupported WASM surface.
  • Updates observability export docs with Rust, Python, Node.js, and Go usage examples.

Where should the reviewer start?

Start with crates/core/src/observability/atof.rs for the exporter behavior, then review crates/core/tests/unit/observability/atof_tests.rs and the FFI/Python/Node/Go binding additions for API parity.

Validation run locally:

  • cargo fmt --all
  • git diff --check
  • just test-rust
  • just test-python
  • just test-node
  • just test-go
  • just test-wasm
  • just docs
  • cargo test -p nemo-flow observability::atof::tests -- --nocapture
  • Commit hooks passed with lychee skipped after it reported two unrelated generated Rust API doc links under docs/reference/api/rust/_generated/nemo-flow-adaptive/...; just docs passed.

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • Relates to: none

Signed-off-by: Will Killian <wkillian@nvidia.com>
@willkill07 willkill07 requested a review from a team as a code owner May 12, 2026 14:48
@github-actions github-actions Bot added size:XL PR is extra large Feature a new feature lang:go PR changes/introduces Go code lang:js PR changes/introduces Javascript/Typescript code lang:python PR changes/introduces Python code lang:rust PR changes/introduces Rust code labels May 12, 2026
@willkill07 willkill07 self-assigned this May 12, 2026
@willkill07 willkill07 added this to the 0.2.0 milestone May 12, 2026
@willkill07
Copy link
Copy Markdown
Member Author

/merge

@rapids-bot rapids-bot Bot merged commit ef22220 into NVIDIA:main May 12, 2026
65 of 66 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature a new feature lang:go PR changes/introduces Go code lang:js PR changes/introduces Javascript/Typescript code lang:python PR changes/introduces Python code lang:rust PR changes/introduces Rust code size:XL PR is extra large

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants