Skip to content

Classify Redisson Redis server errors - #20779

Open
trask with Copilot wants to merge 24 commits into
mainfrom
copilot/redisson-redis-error-classification
Open

trask with Copilot wants to merge 24 commits into
mainfrom
copilot/redisson-redis-error-classification

Conversation

Copilot AI commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Record Redis server-error prefixes as error.type on Redisson spans and database duration metrics, including errors mapped to dedicated exception subclasses, such as OOM.

Capture prefixes directly from RESP error replies before completion callbacks run. Preserve case and punctuation without an allowlist or length cap; client-side failures and replies without a captured prefix retain exception-class fallback.

@opentelemetry-pr-dashboard

opentelemetry-pr-dashboard Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Pull request dashboard status

Waiting on reviewers · refreshed 2026-10-23 20:26 UTC

Review the latest changes.

Status above doesn't look right?
  • Just replied or pushed? Anything around or after the refresh time above may not be picked up yet — give it a few minutes.
  • Anything look wrong? Report it with what you expected; it helps us improve the dashboard.

Co-authored-by: trask <218610+trask@users.noreply.github.com>
Copilot AI changed the title [WIP] Classify generic Redisson Redis server errors Classify generic Redisson Redis server errors Oct 20, 2026
Copilot AI requested a review from trask October 20, 2026 19:09
@trask
trask requested a balanced review from Copilot October 20, 2026 19:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The bounded classifier preserves existing fallbacks, has focused coverage, and has no identified blocking issues.

No open issues 🎉

What changed in this PR

Improves Redisson error telemetry by classifying generic server errors with known Redis protocol codes while preserving exception-class fallbacks.

Changes:

  • Restricts classification to decoder-marked generic exceptions and known prefixes.
  • Adds unit coverage for classification and fallbacks, plus span and duration-metric coverage for WRONGTYPE.
File Description
instrumentation/​redisson/​redisson-common-3.0/​testing/​src/​main/​java/​io/​opentelemetry/​javaagent/​instrumentation/​redisson/​AbstractRedissonClientTest.java Verifies WRONGTYPE span and metric attributes.
instrumentation/​redisson/​redisson-common-3.0/​javaagent/​src/​main/​java/​io/​opentelemetry/​javaagent/​instrumentation/​redisson/​common/​v3_0/​RedissonDbAttributesGetter.java Classifies known generic server errors.
instrumentation/​redisson/​redisson-3.0/​javaagent-unit-tests/​src/​test/​java/​io/​opentelemetry/​javaagent/​instrumentation/​redisson/​common/​v3_0/​RedissonDbAttributesGetterTest.java Tests classification and exception fallbacks.
instrumentation/​redisson/​redisson-3.0/​javaagent-unit-tests/​build.gradle.kts Adds the common instrumentation test dependency.

Review effort: Balanced

Copilot AI and others added 2 commits October 20, 2026 23:08
Co-authored-by: trask <218610+trask@users.noreply.github.com>
Co-authored-by: trask <218610+trask@users.noreply.github.com>
Copilot AI requested a review from trask October 20, 2026 23:15
Comment thread instrumentation/redisson/redisson-3.17/javaagent/build.gradle.kts Outdated
Co-authored-by: trask <218610+trask@users.noreply.github.com>
Copilot AI requested a review from trask October 21, 2026 02:03
Co-authored-by: trask <218610+trask@users.noreply.github.com>
Copilot AI requested a review from trask October 21, 2026 04:23
@trask trask changed the title Classify generic Redisson Redis server errors Classify Redisson Redis server errors Oct 21, 2026
Co-authored-by: trask <218610+trask@users.noreply.github.com>
Copilot AI requested a review from trask October 23, 2026 03:27
@trask
trask requested a balanced review from Copilot October 23, 2026 03:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Cross-version state handling across decoder recursion, synchronous callbacks, and batch retries warrants final human compatibility review.

No open issues 🎉

Review effort: Balanced

Co-authored-by: trask <218610+trask@users.noreply.github.com>
Copilot AI requested a review from trask October 23, 2026 04:15
@trask
trask requested a balanced review from Copilot October 23, 2026 04:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No unresolved blocking issues remain, and the capture lifecycle, fallback behavior, and versioned wiring are supported by focused regression coverage.

No open issues 🎉

Review effort: Balanced

Co-authored-by: trask <218610+trask@users.noreply.github.com>
Copilot AI requested a review from trask October 23, 2026 04:32
@trask
trask requested a balanced review from Copilot October 23, 2026 04:37
@trask
trask marked this pull request as ready for review October 23, 2026 04:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Cross-version decoder hooks and reentrant completion handling warrant human confirmation of compatibility and captured-state ownership.

No open issues 🎉

Review effort: Balanced

Use the shared VALUE script return type and wait through CompletableFuture instead of the removed RFuture.join API. Await callback completion before checking its effects.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

Prefix capture, fallback behavior, callback isolation, and cleanup are covered across both implementations, with no unresolved blocking findings.

No open issues 🎉

Review effort: Balanced

Leave startup command mapping unchanged until Redisson.create completes, then enable the callback test's EVAL gate and client-side GET failure. This prevents the Redisson 4.8 cluster-detection EVAL from timing out and exporting an unexpected trace.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No blocking issues remain in capture ordering, callback isolation, cleanup, or fallback behavior, and the added tests cover the principal failure paths.

No open issues 🎉

Review effort: Balanced

This branch has not been deployed

No deployments
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