Skip to content

fix(ops): separate CDC base observability from local debug - #212

Closed
seonghobae wants to merge 4 commits into
developfrom
ops/cdc-safe-observability-defaults-622e5e6
Closed

fix(ops): separate CDC base observability from local debug#212
seonghobae wants to merge 4 commits into
developfrom
ops/cdc-safe-observability-defaults-622e5e6

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Purpose

Advance issue #182 with one path-disjoint CDC observability slice from protected develop@622e5e6c3d534f230c390f10e3832efadfc01825. The deployable CDC base historically forced 100% trace sampling plus application and Spring Web DEBUG logging. This Draft now separates production-safe base observability from an explicit opt-in local developer profile without changing CDC product behavior, Zipkin destination, health probes, dependencies, Compose/Replit topology, or diagnostic call sites.

Exact current identity

  • protected/live base: develop@622e5e6c3d534f230c390f10e3832efadfc01825;
  • branch: ops/cdc-safe-observability-defaults-622e5e6;
  • fail-first source head: 119f6912e2841a8102f749a15be003d37026becb;
  • exact current source head: aa1afd3e5292a8bb4fb51f9a98a460d4cff50b7f;
  • current synthetic merge preview: 218cfb29aba428f95a79553c937e85d602e1ac58;
  • Draft: true;
  • GitHub mergeability: true;
  • formal reviews: none;
  • unresolved review threads: zero.

Every check/review from a predecessor source head or base is historical and does not transfer.

RED — deployable base forced developer-verbose observability

Fail-first 119f6912e2841a8102f749a15be003d37026becb added only CdcObservabilityProfileContractTest before production configuration changed. The test loads the real classpath application.yml through Spring's YAML properties loader and requires the deployable base not to override:

  • management.tracing.sampling.probability to full sampling;
  • logging.level.com.xtrmetl to DEBUG;
  • logging.level.org.springframework.web to DEBUG.

Hosted CI 31358313500, macOS job 93362047854, checked out synthetic merge 1880806a0ea1f17cd05ab021b00713932fe476de (Merge 119f691... into 622e5e6...). ETL production/tests completed successfully. CDC production/test compilation then succeeded and ran 107 tests with exactly one failure, zero errors/skips: baseConfigurationDoesNotForceDebugLoggingOrFullTraceSampling expected the sampling override to be absent but found 1.0. This is valid RED at the deployable configuration boundary rather than setup/import/fixture/dependency failure.

GREEN — safe base plus explicit local profile

The bounded implementation:

  • removes the three developer-verbose overrides from cdc-service/src/main/resources/application.yml;
  • preserves root INFO, Debezium INFO, Zipkin endpoint, health probes and all CDC product settings;
  • adds application-local.yml activated only by Spring profile local;
  • moves the historical 100% trace sampling and application/Spring Web DEBUG levels into that opt-in local profile;
  • adds a permanent contract requiring the base/local authorities to remain separated.

No arbitrary new production sampling percentage is invented; absence of the repository override delegates to the maintained Spring Boot default. This PR does not touch Compose/Replit (#167/#169/#180/#195), CDC diagnostic call sites (#170#176/#190), authentication (#187), DLT governance (#181), dependencies, or canonical #149 documentation.

Current hosted proof

All exposed workflow aggregates for exact source head aa1afd3e5292a8bb4fb51f9a98a460d4cff50b7f are terminal-success:

  • CI 31358735259: success on macOS, Ubuntu and Windows;
  • Dependency Review 31358735145: success;
  • CycloneDX SBOM 31358735244: success;
  • SAST Semgrep 31358735181: success;
  • Security Scan 31358735225: success.

CI macOS job 93363214026 checked out synthetic merge 218cfb29aba428f95a79553c937e85d602e1ac58, not literal source head. On that integration tree CdcObservabilityProfileContractTest passed 2/2, CDC ran 108 tests with zero failures/errors/skips, ETL ran 275 tests, gateway tests passed, and the full reactor completed BUILD SUCCESS.

The same CI still reproduces the inherited protected JaCoCo false-green: Analyzed bundle 'etl-service' with 0 classes followed by successful coverage checks. #162/#164 owns selected-bundle non-vacuity and #205 owns repository-wide coverage scope. Current protected PR workflows also use synthetic merge checkout rather than accepted literal source, while #196 separately owns Maven dependency-resolution completeness for vulnerability evidence. Those acceptance controls are independent of this configuration repair.

Merge boundary

Keep Draft. Merge only when the unchanged exact source head has accepted literal-source deterministic/security evidence, complete same-revision dependency/vulnerability evidence, non-vacuous applicable owned-production coverage, every required repository/security gate, zero valid unresolved review findings, and qualifying independent non-author formal approval where governance requires it. No predecessor-head, other-PR, status-only, skipped-required, incomplete-scanner, or synthetic-merge-only evidence transfers.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 38413bf1-c90c-4148-8920-434c7295ee3e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Collaborator Author

Superseded by live-base rebuild #263. Fresh comparison on 2026-08-11 verified the same three-file product slice: production base removes forced 100% tracing/application DEBUG/Spring Web DEBUG, explicit local profile restores those developer settings, and the same configuration-contract assertions are preserved. #263 is based on current protected develop@942d164ceb7af497bb28a95f842db96429d1bdc4 at exact head 099fe8a142134e72d4558eea6d5cc10e5fbe2628; all exposed CI/dependency/SBOM/SAST/security workflow aggregates for that head are terminal-success. #212 has no formal reviews or unresolved review threads, and the only textual differences in its test are method/message wording rather than unique behavior. Closing the stale-base duplicate without transferring its checks/reviews.

@seonghobae seonghobae closed this Aug 11, 2026
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.

1 participant