The Multiplayer Proxy captures request, response and header data for Multiplayer Full Stack Session Recordings.
It's built on Envoy Proxy with an WASM extension.
An example Envoy proxy configuration file in this repository has the following settings. Update as required for your project.
- Listen on port 8080
- Route requests with
/v1prefix to a backend service - Capture request/response payloads using a custom WASM extension
- Send telemetry data to Multiplayer OTLP collector
The extension accepts a JSON configuration object with the following parameters:
{
"otlp_collector_cluster_name": "otel-collector",
"otlp_collector_authority": "api.multiplayer.app",
"otlp_collector_path": "/v1/traces",
"otlp_collector_api_key": "your-api-key-here",
"capture_request_headers": true,
"capture_request_body": true,
"capture_response_headers": true,
"capture_response_body": true,
"max_body_size_bytes": 1048576,
"headers_to_include": ["content-type", "user-agent", "x-request-id"],
"headers_to_exclude": ["authorization", "cookie", "x-api-key"]
}Configuration for extension should be passed to envoy proxy configuration (line 38).
For more details about configuring extension and masking rules see the Multiplayer Proxy Extension
Route all your traffic through envoy proxy (docker compose example):
version: '3.8'
services:
envoy:
build:
context: ./envoy
container_name: envoy
environment:
- MULTIPLAYER_OTLP_KEY="{{YOUR_BACKEND_OTEL_TOKEN}}"
ports:
- "8080:8080"To start it, run: docker compose up -d
MIT — see LICENSE.
