Humboldt targets 100 % conformance to the official MicroProfile Telemetry 2.1 TCK across the three suites (tracing + metrics + logs), with W3C TraceContext + Baggage propagation and OTEL_* / MP_TELEMETRY_* 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
M7b delivered (2026-05-21) — complete Arquillian adapter, first official TCK test OpenTelemetryBeanTest PASS (2/2).
| Signal | Real passing tests | Step |
|---|---|---|
Tracing |
✅ 4 / ~50 ( |
M7c.2 — unblock HTTP |
Metrics |
✅ 24 / ~50 (CDI counters/gauges/histos + JVM*) |
M7c.2 — unblock HTTP histograms |
Logs |
✅ 3 / ~10 ( |
M7c |
Baggage |
✅ W3C propagator delivered in M3 |
TCK tests in M7c.2 |
Config |
✅ |
TCK tests in M7c.2 |
Detailed status and categorization of remaining failures: see TCK.md in the repo. Exact counter to be confirmed after each run (see tck-runs/).
M7c failure categorization (first official run, 2026-05-21)
Tests run: 138, Failures: 62, Errors: 0, Skipped: 73
| Category | Failures | Cause / action |
|---|---|---|
A. Unresolved |
56 |
HTTP tests. Start Chappe HTTP + Cassini in |
B. |
8 |
Missing classes/deps in the ShrinkWrap war crashing |
C. |
12 |
MP Telemetry spec §"Required CDI beans": missing producers for |
D. |
24 |
commons-io version conflict between TCK metrics deps and our classpath. Force commons-io 2.16+ in |
The 4 categories partially overlap (a JvmMemory test can fail on URL and on Tailer at the same time). Addressing one category may unblock more tests than the counter suggests.
Running the TCK
cd humboldt
sdk env
# Smoke — a single test to validate the install
./run-official-tck-telemetry-2.1.sh
# Full suite (M7c+) — equivalent of the official 138+ test TCK
./run-official-tck-telemetry-2.1.sh all
# Targeted test
./run-official-tck-telemetry-2.1.sh -Dtest=BasicAppTest
The script:
-
Uses
mvnw(Maven 4) 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 = minimal bootstrap (no HTTP) for pure CDI tests such as OpenTelemetryBeanTest. Useful for iterating on category-C bugs without paying the Chappe startup cost.
Runner Maven profiles
| Profile | Effect |
|---|---|
|
Full suite (tracing + metrics + logs). Imports all 3 TCK artifacts. |
|
CDI-only subset — no Chappe/Cassini. |
|
Tracing suite only (M7c fast iteration). |
|
Metrics suite only. |
|
Logs suite only. |
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 archived in humboldt/tck-runs/<date>/ for traceability.