Skip to main content

Multiplayer Session Recorder

Project description

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

Session Recorder Initialization

from multiplayer.session_recorder import session_recorder

session_recorder.init({
  apiKey: "{YOUR_API_KEY}",
  traceIdGenerator: idGenerator,
  resourceAttributes: {
    serviceName: "{YOUR_APPLICATION_NAME}",
    version: "{YOUR_APPLICATION_VERSION}",
    environment: "{YOUR_APPLICATION_ENVIRONMENT}",
  }
})

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: id_generator,
  resourceAttributes: {
    serviceName: "{YOUR_APPLICATION_NAME}",
    version: "{YOUR_APPLICATION_VERSION}",
    environment: "{YOUR_APPLICATION_ENVIRONMENT}",
  }
})

# ...

session_recorder.start(
    SessionType.PLAIN,
    {
      name: "This is test session",
      sessionAttributes: {
        accountId: "687e2c0d3ec8ef6053e9dc97",
        accountName: "Acme Corporation"
      }
    }
  )

  # do something here

  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

from multiplayer.session_recorder import DjangoOtelHttpPayloadRecorderMiddleware

DjangoOtelHttpPayloadRecorderMiddleware({
    "captureBody": True,
    "captureHeaders": True,
    "maxPayloadSizeBytes": 10000,
    "isMaskBodyEnabled": True,
    "maskBodyFieldsList": ["password", "token"],
    "isMaskHeadersEnabled": True,
    "maskHeadersList": ["authorization"],
})

Flask http payload recorder middleware

from flask import Flask
from multiplayer.session_recorder import FlaskOtelHttpPayloadRecorderMiddleware

app = Flask(__name__)

# Add middleware BEFORE request handlers run
@app.before_request
def before_request():
    FlaskOtelHttpPayloadRecorderMiddleware.capture_request_body(
        maxPayloadSizeBytes=10000,
        captureBody=True,
        captureHeaders=True,
        isMaskBodyEnabled=True,
        maskBodyFieldsList=["password", "secret"],
        isMaskHeadersEnabled=True,
        maskHeadersList=["authorization"],
    )

# Add middleware AFTER request finishes
@app.after_request
def after_request(response):
    FlaskOtelHttpPayloadRecorderMiddleware.capture_response_body(
        response,
        maxPayloadSizeBytes=10000,
        captureBody=True,
        captureHeaders=True,
        isMaskBodyEnabled=True,
        maskBodyFieldsList=["token"],
        isMaskHeadersEnabled=True,
        maskHeadersList=["set-cookie"],
    )
    return response

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multiplayer_session_recorder-0.1.0.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

multiplayer_session_recorder-0.1.0-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file multiplayer_session_recorder-0.1.0.tar.gz.

File metadata

File hashes

Hashes for multiplayer_session_recorder-0.1.0.tar.gz
Algorithm Hash digest
SHA256 42f5f62a430fb5baf630dd877e65943c1ad547e25a0f2260610aaaedcb2f291b
MD5 6a75e380f2b1352c0b5cb7d19f0363ce
BLAKE2b-256 585f6655da0ffe82252e64cb52a103fb2d8205a0fc15fb2e5877e3805c6aceed

See more details on using hashes here.

File details

Details for the file multiplayer_session_recorder-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for multiplayer_session_recorder-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08bb9a8639db7d626b9cc16f5b0b7aa5a1bb6d4dfb061231db000507c999127e
MD5 c815c3d5916b573f2a65bea9452a7b03
BLAKE2b-256 b06c1d8d1d8bc0d633c7ca25a0514a27dc0e5163ebc68c74ac6b26d50e13c268

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page