Skip to content

test: verify StackdriverLogstashEncoder selects correct MDC trace provider in OTel examples - #456

Merged
skjolber merged 1 commit into
opentelemetryfrom
copilot/pr-450-add-tests-for-provider-selection
Aug 15, 2026
Merged

test: verify StackdriverLogstashEncoder selects correct MDC trace provider in OTel examples#456
skjolber merged 1 commit into
opentelemetryfrom
copilot/pr-450-add-tests-for-provider-selection

Conversation

Copilot AI commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

PR #450 introduces two MDC JSON providers selected at startup — StackdriverOpenTelemetryTraceMdcJsonProvider (OTel agent) vs StackdriverMicrometerTraceMdcJsonProvider (Spring Boot starter / no agent) — but had no tests asserting which one was actually wired into the encoder.

Changes

  • Adds ProviderSelectionTest to all 8 OpenTelemetry example modules (web + gRPC × agent + starter × with/without test artifacts)
  • Agent examples: asserts StackdriverOpenTelemetryTraceMdcJsonProvider is present (OTel -javaagent attached via build.gradle)
  • Starter examples: asserts StackdriverMicrometerTraceMdcJsonProvider is present (default when isOtelAgent() returns false)

Each test walks the Logback appender tree at runtime to retrieve the live encoder instance, handling both the test-scope CompositeConsoleAppender (via getMachineReadableJsonEncoder()) and the production ConsoleAppender (via getEncoder()):

private static StackdriverLogstashEncoder searchForEncoder(AppenderAttachable<?> attachable) {
    for (var appender : appenders(attachable)) {
        if (appender instanceof CompositeConsoleAppender<?> c) {
            if (c.getMachineReadableJsonEncoder() instanceof StackdriverLogstashEncoder e) return e;
        } else if (appender instanceof ConsoleAppender<?> c) {
            if (c.getEncoder() instanceof StackdriverLogstashEncoder e) return e;
        }
        if (appender instanceof AppenderAttachable<?> nested) {
            var result = searchForEncoder(nested);
            if (result != null) return result;
        }
    }
    return null;
}

Then asserts exactly one provider type is present and the other is absent.

…t MDC provider selection

Co-authored-by: skjolber <1031478+skjolber@users.noreply.github.com>
Copilot AI changed the title test: add ProviderSelectionTest to all OTel examples verifying MDC provider selection test: verify StackdriverLogstashEncoder selects correct MDC trace provider in OTel examples Aug 15, 2026
Copilot AI requested a review from skjolber August 15, 2026 19:57
@skjolber
skjolber changed the base branch from main to opentelemetry August 15, 2026 19:58
@skjolber
skjolber marked this pull request as ready for review August 15, 2026 20:02
@skjolber
skjolber requested review from a team as code owners August 15, 2026 20:02
@skjolber
skjolber merged commit c0dd9b0 into opentelemetry Aug 15, 2026
10 checks passed
@skjolber
skjolber deleted the copilot/pr-450-add-tests-for-provider-selection branch August 15, 2026 20:07
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