Humboldt passes the official MicroProfile Telemetry 2.1 TCK — 85/85 PASS across the three suites (tracing + metrics + logs), with W3C TraceContext + Baggage propagation and OTEL_* configuration. The humboldt-tck runner is part of the reactor but gated behind the tck Maven profile (TCK harmonisation — same pattern as the vidocq-runtime-tck-* runners and the dirac pilot): a plain mvn install neither downloads nor runs anything TCK-related.
Target
100 % conformance to the official MicroProfile Telemetry 2.1 TCK across the three suites:
-
microprofile-telemetry-tracing-tck:2.1 -
microprofile-telemetry-metrics-tck:2.1 -
microprofile-telemetry-logs-tck:2.1
TCK coordinates publicly confirmed on Maven Central (M7.1 audit, 2026-05-21).
TCK stack
-
TestNG + Arquillian + ShrinkWrap (not JUnit).
-
Humboldt Arquillian adapter:
HumboldtDeployableContainer(deploys through Vauban + Chappe + Cassini),HumboldtCdiEnricher(CDI bean injection into@Test), runtime hookwithExtraSpanExporterto plug the TCK’sInMemorySpanExporter. -
The TCK imports its own copy of
io.opentelemetry:opentelemetry-sdkfor its internal fixtures — that is OK on the profile-gated runner; it does not pollute the production classpath.
Current status
M7 complete — 85/85 PASS. The full official suite (tracing + metrics + logs, as composed by the tck-official profile) runs green:
Tests run: 85, Failures: 0, Errors: 0, Skipped: 0
First achieved on 2026-05-24, re-verified stable on main on 2026-06-01 (./run-official-tck-telemetry-2.1.sh all, Temurin 25, Maven 3.9.16). Every run is archived with its raw counters in tck-runs/; consolidated status lives in TCK.md.
The road to green (M7b Arquillian adapter, M7c failure clusters — @ArquillianResource URL wiring, ShrinkWrap deployments, required CDI beans, commons-io conflicts) is preserved in the dated reports under tck-runs/ for archaeology.
Running the TCK
cd humboldt
sdk env
# Smoke — local harness tests to validate the install
./run-official-tck-telemetry-2.1.sh
# Full official suite — 85 tests (tracing + metrics + logs)
./run-official-tck-telemetry-2.1.sh all
# Targeted test
./run-official-tck-telemetry-2.1.sh -Dtest=BasicAppTest
The script:
-
Uses the Maven wrapper
mvnw(Maven 3.9.16) when present, otherwise falls back to systemmvn. -
Passes
maven.test.skip=true(instead of-DskipTests) — required since M7c.12 becausehumboldt-resttest-compile fails (microprofile.rest.client.apioutside the module path under strict Java Modules). -
humboldt-resttests remain manually runnable throughmvn test -pl humboldt-rest.
Fast profile (a single targeted test)
./mvnw -ntp -Ptck,tck-cdi-bean -pl humboldt-tck test
Profile tck-cdi-bean = runs only OpenTelemetryBeanTest from the tracing TCK, validating the Arquillian → HumboldtContainer → Vauban CDI chain without paying the full-suite cost.
Runner Maven profiles
The runner defines three profiles (read them in humboldt-tck/pom.xml); they combine with the reactor-level tck gate (-Ptck,<profile>):
| Profile | Effect |
|---|---|
|
Local harness tests only ( |
|
A single official test, |
|
Full official suite (85 tests) via |
Runner architecture
humboldt-tck is an in-reactor module gated behind the tck Maven profile of humboldt-parent (TCK harmonisation — same pattern as the vidocq-runtime-tck-* runners of the Vidocq runtime and the dirac pilot): a plain mvn install neither downloads nor runs anything TCK-related, and the release reactor never sees the module.
|
Historically |
Reproduce locally
./mvnw -ntp -Ptck,tck-official -pl humboldt-tck test 2>&1 | tee /tmp/tck-humboldt.log
# Sort failures by category
grep -E "Tests run|FAILED|ERROR" /tmp/tck-humboldt.log
Run artifacts (logs, Surefire reports, InMemorySpanExporter span dumps) are placed under humboldt-tck/target/surefire-reports/, and each significant run is archived as a dated report in tck-runs/ for traceability.