Skip to content

trying to isolate code metrics code#6285

Open
fulmicoton-dd wants to merge 10 commits intomainfrom
isolating-metrics2
Open

trying to isolate code metrics code#6285
fulmicoton-dd wants to merge 10 commits intomainfrom
isolating-metrics2

Conversation

@fulmicoton-dd
Copy link
Copy Markdown
Collaborator

@fulmicoton-dd fulmicoton-dd commented Apr 9, 2026

This PR attempts to isolate the metrics pipeline code from the rest of quickwit.

It only does the work on the indexing crate for the moment. The target is :

  • for the OSS project to be buildable without the extra dependencies/extra code that is not usable yet and might introduce backward incompatible behavior.
  • for the code OWNERSHIP to be well split. This is not configured yet.

The main trick used is in this PR have been to remove the proliferation of generics introduced in #6244.
This was done by introducing an abstract notion of a source sink and an abstract notion of pipeline.

@fulmicoton-dd fulmicoton-dd changed the title trying to isolate code from metrics trying to isolate code metrics code Apr 13, 2026
@fulmicoton-dd fulmicoton-dd force-pushed the isolating-metrics2 branch 2 times, most recently from 6ff57fb to 6436347 Compare April 13, 2026 09:13
@fulmicoton fulmicoton marked this pull request as ready for review April 16, 2026 12:37
@mattmkim
Copy link
Copy Markdown
Contributor

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ad69cadaa0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +308 to +312
self.spawn_log_pipeline(
ctx,
indexing_pipeline_id.clone(),
index_config,
source_config,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Reject metrics indexes when metrics feature is off

In non-metrics builds this branch unconditionally calls spawn_log_pipeline, so a metrics index task is silently started on the logs pipeline instead of being rejected. In practice that means Arrow IPC metric payloads go through DocProcessor, get counted as invalid docs, and checkpoints can still advance, which drops data rather than surfacing an unsupported-feature error. Please add an explicit metrics-index guard in this path and fail pipeline creation when metrics support is disabled.

Useful? React with 👍 / 👎.

indexing_setting: self.params.indexing_settings.clone(),
};
let source = ctx
.protect_future(quickwit_supported_sources().load_source(source_runtime))
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restrict metrics pipeline to metrics-compatible sources

The metrics pipeline now loads sources from quickwit_supported_sources(), which includes source types that are not metrics-compatible (e.g. non-Arrow producers). That changes prior fail-fast behavior into runtime processing where ParquetDocProcessor records format errors while checkpoints may still progress, creating a silent data-drop path for misconfigured metrics indexes. This should keep the metrics-specific source loader behavior (or perform equivalent validation before spawning).

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants