Skip to content

Capture sources

The Extractor runs up to four capture sources at once. Every one of them captures metadata, not data — see Why Prologue.

Enabled byAdding an entry to prologue.sqlServer[]
MechanismChange Data Capture. The Extractor enables CDC on the database itself — no manual setup needed unless you set enableChangeDataCapture: false
CapturesWhich tables and columns changed, per transaction
Never capturesRow values
Configname, connectionString, enableChangeDataCapture, tables (allowlist), pollIntervalMilliseconds — see Configuration
Enabled byAdding an entry to prologue.postgres[]
MechanismLogical replication. The Extractor creates its own replication slot and publication on the configured database — the server just needs wal_level = logical
CapturesWhich tables and columns changed, per transaction
Never capturesRow values
Configname, connectionString, slot, publication — see Configuration
Enabled byAdding a reverseProxy section — the Extractor becomes a YARP reverse proxy in front of your system
MechanismEvery request that reaches the proxy passes through to your system unchanged; state-changing requests are also captured
CapturesMethod, path, response status, and the W3C traceparent trace id if present, for POST, PUT, and DELETE requests only
Never capturesGET/read traffic, request or response bodies
ConfigPlain YARP routes/clusters configuration — see Configuration
Enabled byprologue.openTelemetry.enabled: true
MechanismAn OTLP proxy (HTTP and gRPC). Telemetry is captured, then forwarded on to upstream.http/upstream.grpc unchanged — or nowhere, if you leave both empty, making the Extractor a terminal collector
CapturesSpan, metric, and log metadata: service name (if it matches serviceNames, or all services if that’s empty) and the values of an allowlisted set of attributeKeys
Never capturesAttribute keys not in the allowlist, full span/log payloads
Configenabled, serviceNames, attributeKeys, upstream.http, upstream.grpc — see Configuration

None of these run in isolation — the correlator groups whatever fires within the same correlation window into one capture, regardless of which sources contributed. A typical write request produces an HTTP capture and one or more database-change captures for the same act; OpenTelemetry adds the trace context that ties them together even when the timing alone wouldn’t.