Skip to content

feat: Observability of object store queries - #116

Merged
Darkheir merged 3 commits into
sekoiafrom
feat/storage-search-observability
Oct 23, 2026
Merged

Darkheir merged 3 commits into
sekoiafrom
feat/storage-search-observability

Conversation

@Darkheir

Copy link
Copy Markdown
Collaborator

Description

  • Add bucket information for object_storage_requests_* metrics
    • Cardinality should stay low
  • Keep the whole chain in the errors so we can identify the whole chain
  • New metric for split retries on an other searcher
    • With a label identifying whether the retry was successful or not

How was this PR tested?

Describe how you tested this PR.

Copilot AI balanced review requested due to automatic review settings October 23, 2026 08:59

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The cross-searcher retry metric also counts same-searcher retries, making its reported outcomes inaccurate for its stated purpose.

1 open issue
What changed in this PR

This PR improves object-store and search observability by identifying request targets, preserving error causes, and tracking split retry outcomes.

Changes:

  • Add bucket or container labels to object-store request counters and duration metrics.
  • Preserve error-chain messages in storage and search conversions, with regression tests.
  • Add split retry counters labeled by outcome and tests for outcome accounting.
File Description
quickwit/​quickwit-storage/​src/​opendal_storage/​base.rs Pass operator names to request metrics.
quickwit/​quickwit-storage/​src/​object_storage/​s3_compatible_storage.rs Label S3 request metrics with bucket names.
quickwit/​quickwit-storage/​src/​object_storage/​azure_blob_storage.rs Label Azure request metrics with container names.
quickwit/​quickwit-storage/​src/​metrics.rs Add bucket labels to request metric definitions.
quickwit/​quickwit-storage/​src/​metrics_wrappers.rs Carry bucket labels through metric wrappers and helpers.
quickwit/​quickwit-storage/​src/​error.rs Preserve storage error causes and test formatting.
quickwit/​quickwit-search/​src/​metrics.rs Define split retry outcome counters.
quickwit/​quickwit-search/​src/​error.rs Preserve search error causes and test formatting.
quickwit/​quickwit-search/​src/​cluster_client.rs Record split retry outcomes and test accounting.

Review effort: Balanced

Comment thread quickwit/quickwit-search/src/cluster_client.rs
@Darkheir
Darkheir requested a review from rdettai-sk October 23, 2026 09:51
Comment thread quickwit/quickwit-search/src/metrics.rs
Comment thread quickwit/quickwit-storage/src/metrics_wrappers.rs
@rdettai-sk

Copy link
Copy Markdown
Collaborator

do we need a metric with the number of retries at the s3 level (aws_retry)? I feel like that would be required if we want to tweak the retry sleep.

@Darkheir

Copy link
Copy Markdown
Collaborator Author

do we need a metric with the number of retries at the s3 level (aws_retry)? I feel like that would be required if we want to tweak the retry sleep.

I will add it

Darkheir and others added 3 commits October 23, 2026 15:02
Signed-off-by: Darkheir <raphael.cohen@sekoia.io>
A retry goes back to the same searcher when it is the only one available.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Darkheir <raphael.cohen@sekoia.io>
@Darkheir
Darkheir force-pushed the feat/storage-search-observability branch from c42c689 to 29e2999 Compare October 23, 2026 13:05
@Darkheir
Darkheir merged commit 126534a into sekoia Oct 23, 2026
3 checks passed
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.

3 participants