logtap is designed to be safe for production-adjacent use during load testing and incident investigation.
- PII redaction —
--redactstrips emails, credit card numbers, JWTs, bearer tokens, IPs, SSNs, and phone numbers before bytes hit disk. Custom patterns supported via YAML - Audit trail — every connection, push, and rotation event is logged to
audit.jsonlinside the capture directory - Bounded resources —
--max-diskand--max-fileenforce hard caps. When disk is full, oldest files are rotated out. The receiver never blocks the sender - No upstream impact — sidecar injection is read-only. The forwarder reads existing pod logs; it does not modify application logging or intercept traffic
- Clean removal —
logtap untapremoves all injected sidecars.logtap statusdetects orphaned sidecars.logtap checkvalidates cluster state
- Localhost by default — receiver binds to
127.0.0.1:3100, not0.0.0.0 - TLS support —
--tls-certand--tls-keyfor encrypted transport - Webhook auth — bearer tokens or HMAC-SHA256 signatures for webhook notifications
- Service mesh aware — auto-detects Linkerd/Istio and adds sidecar bypass annotations
- Restrictive permissions — capture files are written with
0600/0700permissions - Path traversal protection — cloud download validates all object keys against directory escape
- No secrets in captures — redaction happens in the receive pipeline, before the writer
--allow-prodrequired — tapping production namespaces requires an explicit flag--forcerequired — namespace-wide tap (--all) requires explicit confirmation- Dry-run support —
--dry-runontap,untap, anddeployshows changes without applying - Auto-rollback — failed sidecar injection automatically rolls back the workload