Files
ja4-platform/tests/integration
Jacquin Antoine 742f4420c0 fix(test): add ClickHouse readiness check before starting ja4ebpf
Fixed race condition where ja4ebpf would fail to connect to
ClickHouse at startup because ClickHouse HTTP port wasn't ready yet,
even though Docker healthcheck passed.

Changes:
- Add 30s wait loop with ClickHouse /ping endpoint check
- Log success message when ClickHouse is ready
- Applied to all 4 stacks: nginx, apache, nginx-varnish, hitch-varnish

Test results after fix:
- nginx: 240 rows, 175 JA4 fingerprints 
- apache: 257 rows, 191 JA4 fingerprints 
- nginx-varnish: 298 rows, 242 JA4 fingerprints 
- hitch-varnish: 247 rows, 177 JA4 fingerprints 

All L3/L4 metadata (TTL, MSS, Window), TLS fingerprinting (JA4, SNI),
and HTTP layer data are correctly captured and persisted.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-19 15:11:22 +02:00
..

Tests d'intégration — ja4-platform

Architecture de test

Chaque stack lance deux containers Docker :

  • platform : serveur web (Apache/nginx/varnish/hitch) + agent ja4ebpf (eBPF CO-RE)
  • clickhouse : base ClickHouse locale avec le schéma complet

Le générateur de trafic envoie 300 requêtes HTTPS et vérifie que la chaîne complète fonctionne : TC ingress (L3/L4) → uprobe SSL (L7) → http_logs_raw → MV → http_logs.

Stacks disponibles

Stack Serveur TLS Backend
apache Apache httpd + mod_ssl + mod_http2
nginx nginx + HTTP/2
nginx-varnish nginx (TLS) Varnish (-p feature=+http2)
hitch-varnish hitch (TLS offload, ALPN h2) Varnish (-p feature=+http2)

Commandes

# Stack unique (Rocky Linux 9)
make test-apache
make test-nginx
make test-nginx-varnish
make test-hitch-varnish

# Toutes les stacks (Rocky Linux 9)
make test-all-stacks

# Matrice multi-distro (el8 / el9 / el10)
make test-matrix
make test-matrix MATRIX_STACKS=nginx,nginx-varnish MATRIX_DISTROS=el9

Matrice de compatibilité

Stack el8 (AlmaLinux 8) el9 (Rocky Linux 9) el10 (AlmaLinux 10)
apache