54 lines
1.5 KiB
Markdown
54 lines
1.5 KiB
Markdown
# WASM Logging Example for sgl-model-gateway
|
|
|
|
This example demonstrates logging and tracing middleware for sgl-model-gateway using the WebAssembly Component Model.
|
|
|
|
## Overview
|
|
|
|
This middleware provides:
|
|
|
|
- **Request Tracking** - Adds tracking headers (`x-request-id`, `x-wasm-processed`, `x-processed-at`, `x-api-route`)
|
|
- **Status Code Conversion** - Converts `500` errors to `503`
|
|
|
|
## Quick Start
|
|
|
|
### Build and Deploy
|
|
|
|
```bash
|
|
# Build
|
|
cd examples/wasm-guest-logging
|
|
./build.sh
|
|
|
|
# Deploy (replace file_path with actual path)
|
|
curl -X POST http://localhost:3000/wasm \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"modules": [{
|
|
"name": "logging-middleware",
|
|
"file_path": "/absolute/path/to/wasm_guest_logging.component.wasm",
|
|
"module_type": "Middleware",
|
|
"attach_points": [{"Middleware": "OnRequest"}, {"Middleware": "OnResponse"}]
|
|
}]
|
|
}'
|
|
```
|
|
|
|
### Customization
|
|
|
|
Modify `on_request` or `on_response` functions in `src/lib.rs` to add custom tracking headers or status code conversions.
|
|
|
|
## Testing
|
|
|
|
```bash
|
|
# Check tracking headers
|
|
curl -v http://localhost:3000/v1/models 2>&1 | \
|
|
grep -E "(x-request-id|x-wasm-processed|x-processed-at)"
|
|
|
|
# Test status code conversion (requires endpoint returning 500)
|
|
curl -v http://localhost:3000/some-endpoint 2>&1 | grep -E "(< HTTP|500|503)"
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
- Verify module attached to both `OnRequest` and `OnResponse` phases
|
|
- Check router logs for execution errors
|
|
- Ensure module built successfully
|