Slice 2/5: build(calm-hub): add observability and GitHub-backend dependencies - #3063
Merged
Merged
Conversation
jpgough-ms
requested review from
a team,
Thels,
grahampacker-ms,
markscott-ms,
rocketstack-matt and
willosborne
as code owners
September 8, 2026 09:56
8 tasks
28 tasks
jpgough-ms
marked this pull request as draft
September 8, 2026 10:26
rocketstack-matt
force-pushed
the
slice/3001-s2-observability-deps
branch
from
September 8, 2026 16:48
58a5104 to
e03719e
Compare
The comment said the test profile disables both OTEL and Micrometer, but only quarkus.otel.enabled was %test.-prefixed — Micrometer's core registry (and its auto-enabled binders) stayed active during mvn test despite the stated intent. Claude-Session: https://claude.ai/code/session_0199XmacMNTrxWL4x5CSXyp1
jpgough-ms
commented
Sep 8, 2026
…e, not just 'test' quarkus.otel.enabled and quarkus.micrometer.enabled are both build/ run-time-fixed per active profile NAME (the same pitfall the jacoco comment in this file already documents) — a %test. prefix only applies when a test's QuarkusTestProfile.getConfigProfile() is literally "test". This module has four other custom profile names (integration-test, nitrite-integration-test, secure, proxy-auth), so both properties stayed enabled under mvn -P integration verify despite the previous fix. Verified: full integration suite (540 tests) still passes with all profiles now suppressed. Claude-Session: https://claude.ai/code/session_0199XmacMNTrxWL4x5CSXyp1
jpgough-ms
commented
Sep 8, 2026
jpgough-ms
commented
Sep 8, 2026
…y time quarkus.otel.enabled is build-time-fixed (verified via javap against the Quarkus 3.34.7 jars: OTelBuildConfig.enabled() is BUILD_AND_RUN_TIME_FIXED). Empirically confirmed the bug: packaging with CALM_OTEL_ENABLED unset (default false) and then running the same jar with CALM_OTEL_ENABLED=true at runtime produced zero OTel activity — the env var was silently ignored either direction, despite the adjacent comment claiming a deploy-time toggle. In a build-once- deploy-many pipeline this meant OTel could never actually be turned on without rebuilding the artifact. Fixed by always compiling the extension in (quarkus.otel.enabled=true) and gating it via the genuinely RUN_TIME-scoped quarkus.otel.sdk.disabled instead, defaulting to disabled. Renamed the env var to CALM_OTEL_DISABLED (inverted polarity to match) since the old CALM_OTEL_ENABLED name described a toggle that never worked; nothing in the tree references it yet. Verified empirically: packaged an uber-jar once, then ran it twice with only the env var changed — CALM_OTEL_DISABLED unset produced no OTel activity, CALM_OTEL_DISABLED=false produced live OTLP export attempts (connection-refused, since nothing was listening — proving the SDK was actually active). Full unit (2868) and integration (540) suites still pass. Micrometer has no equivalent runtime-mutable switch (confirmed via javap: its binder .enabled properties are nested under the same BUILD_AND_RUN_TIME_FIXED root as the master switch, and the runtime- scoped HttpServerConfig/HttpClientConfig classes carry no enabled field) — updated the comment to say so honestly rather than implying a deploy-time toggle Quarkus doesn't provide for it. Claude-Session: https://claude.ai/code/session_0199XmacMNTrxWL4x5CSXyp1
Member
Author
|
Native-compiled smoke test, run per request — confirming the runtime toggle actually holds under GraalVM native compilation, not just JVM mode:
Same result as the JVM-mode verification in 33d6c9b — the fix holds under native compilation. |
jpgough-ms
marked this pull request as ready for review
September 8, 2026 18:23
… caffeine jar Caffeine builds its cache implementation classes reflectively. quarkus-caffeine supplies the native-image reflection config for that; the bare com.github.ben-manes.caffeine:caffeine jar would only surface this as a native build failure, and calm-hub's native image builds don't run in PR CI. The extension pulls the same caffeine jar in transitively, so nothing else changes.
rocketstack-matt
approved these changes
Sep 9, 2026
28 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
main— Slice 1/5: feat(calm-hub-ui): loading states and link-based navigation #3061 (slice 1 of 5) merged, and GitHub retargeted this PR automatically7.2.0,quarkus-scheduler, and the OpenTelemetry/Micrometer stack as dependenciesquarkus.otel.enabled=true) and disabled at runtime by default via the genuinely runtime-mutablequarkus.otel.sdk.disabled— setCALM_OTEL_DISABLED=falseon the deployed container to turn it on, no rebuild requiredReview history
Went through 4 rounds of review-and-fix before being marked ready:
%test.-prefixed — Micrometer's core registry stayed active undermvn test%test.prefix only applies when a test's profile name is literallytest— this module has 4 other customQuarkusTestProfilenames, so Micrometer stayed active undermvn -P integration verifytooquarkus.otel.enabledis build-time-fixed — verified viajavapagainst the Quarkus 3.34.7 jars and empirically (packaged one jar, ran it twice with only the env var changed: no toggle effect either way). The originally-documentedCALM_OTEL_ENABLED=trueproduction toggle silently never worked in a build-once-deploy-many pipeline. Fixed by switching toquarkus.otel.sdk.disabled, which is genuinelyRUN_TIME-scoped — re-verified empirically that the same built jar now responds live to the env var. Micrometer has no equivalent runtime switch (confirmed viajavap), so its binder toggles are honestly documented as build-time-only.Type of Change
Affected Components
calm-hub/)Testing
mvn -P integration verify, 540 tests), both 0 failuresChecklist
Split from #3001.