Technology Coverage
This page enumerates the runtime instrumentation currently present in the BitDive agent codebase.
If a technology is not listed here, treat it as outside the current documented instrumentation surface until its interception path is added and documented.
The current instrumentation chain starts from MonitoringStarting.init().
At a Glance
| Coverage area | Current scope |
|---|---|
| Spring application baseline | configured application packages, Spring bean filtering, async context propagation, deterministic time and random sources |
| HTTP and web | RestTemplate, OpenFeign, Tomcat request handling, Spring WebSocket |
| Messaging | Kafka producer send flow, consumer bootstrap metadata, network disconnect handling |
| Datastores and search | JDBC, Cassandra, MongoDB, Redis, Neo4j, OpenSearch |
| Object storage | MinIO, AWS S3 SDK v1, AWS S3 SDK v2 |
| SOAP | Spring WS, JAX-WS RI, Apache CXF |
| Spring AOP hooks | Repository, Feign, @Scheduled, @KafkaListener, STOMP |
| JVM and system metrics | Micrometer binders, JMX memory and pool metrics |
1. Spring Application Baseline
BitDive instruments Spring application code inside the configured package scope.
- Base method tracing: application code in packages configured through
application.packedScanner - Selective scope options: tracing can be limited to Spring beans or classes explicitly marked for monitoring
- Async context propagation: trace context is preserved through Spring thread creation and
FutureUtils.callAsync(...) - Deterministic replay helpers: UUID,
java.time,Random,ThreadLocalRandom, andSplittableRandomare stabilized for replay scenarios
This is the layer that makes method-level trace capture, before/after comparison, and replay determinism possible.
2. HTTP and Web Instrumentation
The current agent code contains interception paths for these HTTP and web surfaces:
| Technology | Interception scope |
|---|---|
| Spring RestTemplate | request callback flow, ClientHttpRequest, ClientHttpResponse |
| OpenFeign | feign.Client#execute implementations and request body encoding through feign.codec.Encoder#encode |
| Apache Tomcat | Catalina and Coyote request handling, request body reads, request headers |
| Spring WebSocket | WebSocketSession and AbstractWebSocketHandler#handleTextMessage |
These hooks cover outbound HTTP clients, inbound servlet handling, and text-message WebSocket flows.
3. Kafka Instrumentation
Kafka coverage currently includes these client-level execution paths:
| Scenario | Interception scope |
|---|---|
| Producer send | KafkaProducer#send(...) |
| Consumer bootstrap metadata | KafkaConsumer construction |
| Network failure visibility | NetworkClient#processDisconnection |
These hooks attach trace context to produced messages, expose key Kafka client metadata, and surface disconnect-related failures.
4. Datastores and Search
BitDive currently instruments the following datastore and search technologies:
| Technology | Interception scope |
|---|---|
| JDBC | Driver#connect, Statement#execute, executeQuery, executeUpdate |
| Cassandra | CqlSession, BoundStatement, Metadata |
| MongoDB Java Driver | delegate execution paths across com.mongodb.* operations |
| Redis | Jedis commands, Spring Data Redis connections and operations, Lettuce synchronous commands |
| Neo4j Driver | query execution and query runner paths in org.neo4j.driver.* |
| OpenSearch | RestClient#performRequest, request and response capture around OpenSearch client and Apache HttpClient entities |
These hooks provide SQL visibility, cache interaction capture, NoSQL execution tracing, and replay-aware dependency virtualization.
5. Object Storage Coverage
S3-compatible object storage coverage currently includes:
| Technology | Interception scope |
|---|---|
| MinIO | io.minio.MinioClient |
| AWS SDK v1 S3 | com.amazonaws.services.s3.AmazonS3Client |
| AWS SDK v2 S3 | implementations of software.amazon.awssdk.services.s3.S3Client |
These hooks cover archive retrieval, document uploads, and other object-storage side effects.
6. SOAP Coverage
BitDive also instruments SOAP client execution across three common Java stacks:
| Technology | Interception scope |
|---|---|
| Spring Web Services | WebServiceTemplate |
| JAX-WS RI | com.sun.xml.ws.client.sei.SEIStub |
| Apache CXF | JaxWsClientProxy |
These hooks cover SOAP client execution paths alongside REST-oriented integrations.
7. Spring AOP Coverage
In addition to ByteBuddy instrumentation, the platform wires several Spring AOP hooks through SpringConfigProfiling.
| Scenario | Aspect |
|---|---|
| Spring Data repositories | RepositoryAspect |
| Spring Cloud OpenFeign | FeignClientAspect |
| Scheduled jobs | SchedulerAspect |
| Kafka listeners | KafkaListenerAspect |
| STOMP message mappings | StompMessageMappingAspect |
| STOMP send flows | StompSendToAspect |
These AOP entry points complement bytecode instrumentation where a Spring proxy-level hook is the cleaner integration point.
8. JVM and System Metrics
BitDive collects JVM and system metrics through GenerateJvmMetrics.
The current metrics path includes:
- Micrometer binders: GC, memory, threads, processor, uptime, file descriptors
- JMX sources:
ManagementFactoryand memory-pool metrics - Export path: file-based metrics export driven by configuration
This keeps JVM metrics adjacent to trace data instead of splitting profiling and request tracing into separate workflows.
What This Page Intentionally Does Not Claim
This page is an instrumentation reference, not a roadmap.
It does not claim blanket support for every JVM dependency, network protocol, or framework that may be mentioned elsewhere in the site.
If you need the shortest practical rule, use this one:
- If it is listed here, it is part of the current documented instrumentation surface.
- If it is not listed here, validate it before treating it as part of the current documented instrumentation surface.