Multiplayer Session Recorder
Project description
Multiplayer Session Recorder - Python
Introduction
The multiplayer-session-recorder module integrates OpenTelemetry with the Multiplayer platform to enable seamless trace collection and analysis. This library helps developers monitor, debug, and document application performance with detailed trace data. It supports flexible trace ID generation, sampling strategies.
Installation
To install the multiplayer-session-recorder module, use the following command:
pip install multiplayer-session-recorder
Optional Dependencies
The library supports optional dependencies for web framework integrations:
# For Django support
pip install multiplayer-session-recorder[django]
# For Flask support
pip install multiplayer-session-recorder[flask]
# For both Django and Flask support
pip install multiplayer-session-recorder[all]
Session Recorder Initialization
from multiplayer_session_recorder import session_recorder
session_recorder.init(
apiKey = "{YOUR_API_KEY}",
traceIdGenerator = idGenerator,
resourceAttributes = {
"serviceName": SERVICE_NAME,
"version": SERVICE_VERSION,
"environment": PLATFORM_ENV,
}
)
Example Usage
from multiplayer_session_recorder import session_recorder, SessionType
// Session recorder trace id generator which is used during opentelemetry initialization
from .opentelemetry import id_generator
session_recorder.init(
apiKey = "{YOUR_API_KEY}",
traceIdGenerator = idGenerator,
resourceAttributes = {
"serviceName": SERVICE_NAME,
"version": SERVICE_VERSION,
"environment": PLATFORM_ENV,
}
)
# ...
await session_recorder.start(
SessionType.PLAIN,
{
name: "This is test session",
sessionAttributes: {
accountId: "687e2c0d3ec8ef6053e9dc97",
accountName: "Acme Corporation"
}
}
)
# do something here
await session_recorder.stop()
Session Recorder trace Id generator
from multiplayer_session_recorder import SessionRecorderTraceIdRatioBasedSampler
sampler = SessionRecorderTraceIdRatioBasedSampler(rate = 1/2)
Session Recorder trace id ratio based sampler
from multiplayer_session_recorder import SessionRecorderRandomIdGenerator
id_generator = SessionRecorderRandomIdGenerator(autoDocTracesRatio = 1/1000)
Django HTTP Payload Recorder Middleware
First, install Django support:
pip install multiplayer-session-recorder[django]
Then use the middleware in your Django settings:
from multiplayer_session_recorder import create_django_middleware
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# Add the payload recorder middleware
create_django_middleware({
"captureBody": True,
"captureHeaders": True,
"maxPayloadSizeBytes": 10000,
"isMaskBodyEnabled": True,
"maskBodyFieldsList": ["password", "token"],
"isMaskHeadersEnabled": True,
"maskHeadersList": ["authorization"],
}),
]
Flask HTTP Payload Recorder Middleware
First, install Flask support:
pip install multiplayer-session-recorder[flask]
Then use the middleware in your Flask application:
from flask import Flask
from multiplayer_session_recorder import create_flask_middleware
app = Flask(__name__)
# Create middleware functions
before_request, after_request = create_flask_middleware({
"captureBody": True,
"captureHeaders": True,
"maxPayloadSizeBytes": 10000,
"isMaskBodyEnabled": True,
"maskBodyFieldsList": ["password", "secret"],
"isMaskHeadersEnabled": True,
"maskHeadersList": ["authorization"],
})
# Register the middleware
app.before_request(before_request)
app.after_request(after_request)
@app.route('/')
def hello():
return 'Hello, World!'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multiplayer_session_recorder-1.0.6.tar.gz.
File metadata
- Download URL: multiplayer_session_recorder-1.0.6.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10538d1c4db8dc120839ee321929db957c83f72891ada10ee4eddd05b8308bb8
|
|
| MD5 |
441ee5a93b73317c42faecddbe5f09dd
|
|
| BLAKE2b-256 |
92e269bf185bc395d0d7fb6dcb5ab077c5b4c12379ab35a45ca3b5b6f98c8637
|
File details
Details for the file multiplayer_session_recorder-1.0.6-py3-none-any.whl.
File metadata
- Download URL: multiplayer_session_recorder-1.0.6-py3-none-any.whl
- Upload date:
- Size: 25.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21000cd2bf396ed3671f44a5be3e0d76ec063cf4ab9a0e6604ddca4ae37ef97a
|
|
| MD5 |
ad173954f0bd4eb7ab62f1bcee554f61
|
|
| BLAKE2b-256 |
1241eaa7eaa2e67d8f0e82c8607aace416bede88f3fa7733262c14f6850c5be0
|