Humboldt vise la conformité 100 % au TCK officiel MicroProfile Telemetry 2.1 sur les trois suites (tracing + metrics + logs), avec propagation W3C TraceContext + Baggage et configuration OTEL_* / MP_TELEMETRY_*. Le runner humboldt-tck est membre du reactor mais gardé derrière le profil Maven tck (harmonisation TCK — même pattern que les runners vidocq-runtime-tck-* et la brique pilote dirac) : un mvn install normal ne télécharge ni n’exécute rien du TCK.
Cible
Conformité 100 % du TCK officiel MicroProfile Telemetry 2.1 sur les trois suites :
-
microprofile-telemetry-tracing-tck:2.1 -
microprofile-telemetry-metrics-tck:2.1 -
microprofile-telemetry-logs-tck:2.1
Coordonnées TCK confirmées publiquement sur Maven Central (audit M7.1, 2026-05-21).
Stack TCK
-
TestNG + Arquillian + ShrinkWrap (pas JUnit).
-
Adapter Arquillian Humboldt :
HumboldtDeployableContainer(déploie via Vauban + Chappe + Cassini),HumboldtCdiEnricher(injection des beans CDI dans les@Test), hook runtimewithExtraSpanExporterpour brancherInMemorySpanExporterdu TCK. -
Le TCK importe sa propre copie d'`io.opentelemetry:opentelemetry-sdk` pour ses fixtures internes — c’est OK côté runner gardé par le profil
tck, ça ne pollue pas le classpath de production.
Statut courant
M7b livré (2026-05-21) — adapter Arquillian complet, premier test TCK officiel OpenTelemetryBeanTest PASS (2/2).
| Signal | Tests passants réels | Étape |
|---|---|---|
Tracing |
✅ 4 / ~50 ( |
M7c.2 — débloquer HTTP |
Metrics |
✅ 24 / ~50 (CDI counters/gauges/histos + JVM*) |
M7c.2 — débloquer HTTP histograms |
Logs |
✅ 3 / ~10 ( |
M7c |
Baggage |
✅ propagator W3C livré M3 |
Tests TCK en M7c.2 |
Config |
✅ env vars |
Tests TCK en M7c.2 |
Statut détaillé et catégorisation des échecs résiduels : voir TCK.md dans le repo. Compteur exact à confirmer après chaque run (voir tck-runs/).
Catégorisation des échecs M7c (premier run officiel, 2026-05-21)
Tests run: 138, Failures: 62, Errors: 0, Skipped: 73
| Catégorie | Échecs | Cause / action |
|---|---|---|
A. |
56 |
Tests HTTP. Démarrer Chappe HTTP + Cassini dans |
B. |
8 |
Classes/deps manquantes dans le war ShrinkWrap qui crashent |
C. |
12 |
Spec MP Telemetry §"Required CDI beans" : producers manquants pour |
D. |
24 |
Conflit de version commons-io entre deps TCK metrics et notre classpath. Forcer commons-io 2.16+ dans |
Les 4 catégories se chevauchent partiellement (un test JvmMemory peut échouer à la fois sur URL et sur Tailer). Adresser une catégorie peut débloquer plus de tests que le compteur ne le suggère.
Lancer le TCK
cd humboldt
sdk env
# Smoke — un seul test pour valider l'installation
./run-official-tck-telemetry-2.1.sh
# Suite complète (M7c+) — équivalent du TCK officiel à 138+ tests
./run-official-tck-telemetry-2.1.sh all
# Test ciblé
./run-official-tck-telemetry-2.1.sh -Dtest=BasicAppTest
Le script :
-
Utilise
mvnw(Maven 4) s’il est présent, sinon fallback surmvnsystème. -
Passe
maven.test.skip=true(au lieu de-DskipTests) — nécessaire depuis M7c.12 car le compile-test dehumboldt-restéchoue (microprofile.rest.client.apihors module-path en mode Java Modules strict). -
Les tests
humboldt-restrestent exécutables manuellement viamvn test -pl humboldt-rest.
Profile rapide (un test ciblé)
./mvnw -ntp -Ptck,tck-cdi-bean -pl humboldt-tck test
Profile tck-cdi-bean = bootstrap minimal (sans HTTP) pour les tests CDI purs comme OpenTelemetryBeanTest. Utile pour itérer sur les bugs catégorie C sans payer le démarrage de Chappe.
Profiles Maven du runner
| Profile | Effet |
|---|---|
|
Suite complète (tracing + metrics + logs). Importe les 3 artefacts TCK. |
|
Sous-ensemble CDI only — pas de Chappe/Cassini. |
|
Suite tracing seulement (itération rapide M7c). |
|
Suite metrics seulement. |
|
Suite logs seulement. |
Architecture du runner
humboldt-tck est un module in-reactor gardé derrière le profil Maven tck de humboldt-parent (harmonisation TCK — même pattern que les runners vidocq-runtime-tck-* du runtime Vidocq et la brique pilote dirac) : un mvn install normal ne télécharge ni n’exécute rien du TCK, et le reactor de release ne voit jamais le module.
|
Historiquement |
Reproduire en local
./mvnw -ntp -Ptck,tck-official -pl humboldt-tck test 2>&1 | tee /tmp/tck-humboldt.log
# Trier les échecs par catégorie
grep -E "Tests run|FAILED|ERROR" /tmp/tck-humboldt.log
Les artefacts du run (logs, rapports Surefire, dumps de spans InMemorySpanExporter) sont placés dans humboldt-tck/target/surefire-reports/ et archivés dans humboldt/tck-runs/<date>/ pour traçabilité.