Skip to main content

Traffic Capture

Overview

Signadot has the capability to capture and record traffic going into sandboxes. This capability is implemented using middleware and is readily available for CLI users and integrated into Smart Tests for showing Smart Diffs.

Opt-in and Non-invasive

Traffic capture only occurs for requests which are associated with a Signadot routing context, such as requests with a sandbox routing key. There are 3 ways to opt in to having requests captured:

  1. Use the CLI traffic record command.
  2. Use the trafficwatch sandbox middleware.
  3. Adding request instrumentation, such as those requests annotated with capture=True in Signadot Tests.

The requests that may be captured are further restricted to requests directly destined for a sandboxed workload or immediately coming out of a Smart Test.

It is also possible to disable the ability to opt in alltogether at installation time, by disabling the traffic manager.

Context Propagation

Traffic capture instrumentation respects context propagation where it is in-place, so requests instrumented for capture which trigger chains of requests to a Sandbox workload will have traffic captured for that sandbox workload.

Storage and Modeling

Signadot does not store any request payload information when using the CLI traffic record command. Rather, the data is streamed directly to the machine calling the CLI.

For Smart Tests, captured data is stored with encryption and processed in the Signadot Control plane. The captured traffic is modeled with statistical language models for structured data. Models are the result of processing and are maintained transparently by Signadot.

Reliability

Although access to already captured data is reliable, we allow the actual capturing to fail occasionally while the requests and responses being captured succeed. This simplifies the capture system a great deal and minimizes performance overhead of capturing data. For Smart Tests, this may lead to soft, advisory results from time to time but only infrequently.