Skip to main content

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 areaCurrent scope
Spring application baselineconfigured application packages, Spring bean filtering, async context propagation, deterministic time and random sources
HTTP and webRestTemplate, OpenFeign, Tomcat request handling, Spring WebSocket
MessagingKafka producer send flow, consumer bootstrap metadata, network disconnect handling
Datastores and searchJDBC, Cassandra, MongoDB, Redis, Neo4j, OpenSearch
Object storageMinIO, AWS S3 SDK v1, AWS S3 SDK v2
SOAPSpring WS, JAX-WS RI, Apache CXF
Spring AOP hooksRepository, Feign, @Scheduled, @KafkaListener, STOMP
JVM and system metricsMicrometer 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, and SplittableRandom are 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:

TechnologyInterception scope
Spring RestTemplaterequest callback flow, ClientHttpRequest, ClientHttpResponse
OpenFeignfeign.Client#execute implementations and request body encoding through feign.codec.Encoder#encode
Apache TomcatCatalina and Coyote request handling, request body reads, request headers
Spring WebSocketWebSocketSession 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:

ScenarioInterception scope
Producer sendKafkaProducer#send(...)
Consumer bootstrap metadataKafkaConsumer construction
Network failure visibilityNetworkClient#processDisconnection

These hooks attach trace context to produced messages, expose key Kafka client metadata, and surface disconnect-related failures.


BitDive currently instruments the following datastore and search technologies:

TechnologyInterception scope
JDBCDriver#connect, Statement#execute, executeQuery, executeUpdate
CassandraCqlSession, BoundStatement, Metadata
MongoDB Java Driverdelegate execution paths across com.mongodb.* operations
RedisJedis commands, Spring Data Redis connections and operations, Lettuce synchronous commands
Neo4j Driverquery execution and query runner paths in org.neo4j.driver.*
OpenSearchRestClient#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:

TechnologyInterception scope
MinIOio.minio.MinioClient
AWS SDK v1 S3com.amazonaws.services.s3.AmazonS3Client
AWS SDK v2 S3implementations 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:

TechnologyInterception scope
Spring Web ServicesWebServiceTemplate
JAX-WS RIcom.sun.xml.ws.client.sei.SEIStub
Apache CXFJaxWsClientProxy

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.

ScenarioAspect
Spring Data repositoriesRepositoryAspect
Spring Cloud OpenFeignFeignClientAspect
Scheduled jobsSchedulerAspect
Kafka listenersKafkaListenerAspect
STOMP message mappingsStompMessageMappingAspect
STOMP send flowsStompSendToAspect

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: ManagementFactory and 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.