SP-Istio Agent Architecture
This page explains the server-side collection component of Softprobe — the SP‑Istio Agent — including how it is injected, what data it captures, and how it transmits telemetry securely and efficiently.
Overview
- Deployment: Injected into Istio's Envoy sidecar via WasmPlugin
- Implementation: Rust + WebAssembly (Wasm)
- Capture scope: HTTP request/response, context headers, status codes, latency, and custom tags
- Transmission: Asynchronous batched delivery to the Softprobe backend with retry and queueing
How It Works
- Request enters Envoy → the Wasm filter intercepts and parses key fields (method, path, status code, headers, etc.)
- Collection rules (collectionRules) decide whether to capture the event
- The event is built and appended to an internal buffer/queue
- Batches are sent asynchronously to the backend (e.g., o.softprobe.ai), carrying your
public_keyfor authentication - The backend stores and indexes data; the Dashboard provides session views and cross‑service call trees
Configuration Highlights
traffic_direction: chooseserver(inbound) orclient(outbound)collectionRules: use regex forhost/pathto precisely control capture scope- Service discovery: an EnvoyFilter (Lua) injects
x-sp-service-nameautomatically - External communication: use ServiceEntry + DestinationRule to authorize secure egress to the Softprobe backend
Performance & Reliability
- Low overhead: Wasm runs inside Envoy with no language/framework intrusion
- Asynchronous delivery: minimizes impact on business requests; supports backpressure and retry
- Resource control: rate limiting and queue sizing to avoid peak pressure
Security
- Transport encryption: TLS, with egress restricted to approved backend domains
- Authentication: public key or Public Key validates tenant identity
- Privacy & compliance: field masking/redaction and configurable capture scope
Working with OTLP
- Use side‑by‑side: the Agent provides zero‑intrusion HTTP capture; OTLP receives data from SDKs/Collectors
- The backend unifies indexing and correlation, enabling session and trace views across data sources
Next Steps
- Read the configuration guide and deploy the Agent in a test environment
- Validate data and observability in the Dashboard
- Expand collection rules and tagging progressively based on business scenarios
