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 deliberately out of reactor (standalone POM Model 4.0.0, no <parent>) to work around the incompatibility between ShrinkWrap Maven Resolver 3.3 and Maven Model 4.1.0 — the same constraint as cassini-tck, champollion-tck, foy-tck.
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 out-of-reactor 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 JPMS). -
humboldt-resttests remain manually runnable throughmvn test -pl humboldt-rest.
Fast profile (a single targeted test)
cd humboldt-tck
mvn -ntp -f pom.xml -Ptck-cdi-bean 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. |
Architecture constraint: out-of-reactor
humboldt-tck stays in Model 4.0.0 standalone even when the rest of the reactor moves to 4.1.0. The reason, as recalled in the repo’s CLAUDE.md:
ShrinkWrap Maven Resolver 3.3 (transitive dependency of the official TCK) relies on
maven-resolver 1.9/maven-model 3.9, which cannot parse Maven Model 4.1.0 POMs. ItsClasspathWorkspaceReaderscans the current reactor and crashes on every Vidocq POM (implicit version through parent). Until upstream ShrinkWrap supports Model 4.1, this module must stay detached — do not re-attach it to the parent<modules>, do not add a<parent>, do not build it throughmvn -pl. Always go throughrun-official-tck-telemetry-2.1.sh.
Reproduce locally
cd humboldt-tck
mvn -ntp -f pom.xml -Ptck-official 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.