# Brizz SDK
[](https://www.python.org)
[](LICENSE)
Brizz observability SDK for AI applications.
## Installation
```bash
pip install brizz
# or
uv add brizz
# or
poetry add brizz
```
## Quick Start
```python
from brizz import Brizz
# Initialize
Brizz.initialize(
api_key='your-brizzai-api-key',
app_name='my-app',
)
```
> **Important**: Initialize Brizz before importing any libraries you want to instrument (e.g.,
> OpenAI). If using `dotenv`, use `from dotenv import load_dotenv; load_dotenv()` before importing `brizz`.
## PII Masking
Automatically protects sensitive data in traces:
```python
# Option 1: Enable default masking (simple)
Brizz.initialize(
api_key='your-api-key',
masking=True, # Enables all built-in PII patterns
)
# Option 2: Custom masking configuration
from brizz import Brizz, MaskingConfig, SpanMaskingConfig, AttributesMaskingRule
Brizz.initialize(
api_key='your-api-key',
masking=MaskingConfig(
span_masking=SpanMaskingConfig(
rules=[
AttributesMaskingRule(
attribute_pattern=r'gen_ai\.(prompt|completion)',
mode='partial', # 'partial' or 'full'
patterns=[r'sk-[a-zA-Z0-9]{32}'], # Custom regex patterns
),
],
),
),
)
```
**Built-in patterns**: emails, phone numbers, SSNs, credit cards, API keys, crypto addresses, and
more. Use `masking=True` for defaults or `MaskingConfig` for custom rules.
## Session Tracking
Group related operations and traces under a session context. All telemetry within the wrapped
function will include the session ID:
```python
import uuid
from brizz import with_session_id, awith_session_id
async def process_user_workflow():
# All traces, events, and spans within this function
# will be tagged with session-123
response = await awith_session_id(uuid.UUID().hex, openai.chat.completions.create,
model='gpt-4',
messages=[{'role': 'user', 'content': 'Hello'}],
)
return response
# For synchronous functions
def sync_workflow(data: dict):
# Process data with session context
return with_session_id(uuid.UUID().hex, processed_data, data)
```
## Event Examples
```python
from brizz import emit_event
emit_event('user.signup', {'user_id': '123', 'plan': 'pro'})
emit_event('user.payment', {'amount': 99, 'currency': 'USD'})
```
## Environment Variables
```bash
BRIZZ_API_KEY=your-api-key # Required
BRIZZ_BASE_URL=https://telemetry.brizz.dev # Optional
BRIZZ_APP_NAME=my-app # Optional
```
Raw data
{
"_id": null,
"home_page": null,
"name": "brizz",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.10",
"maintainer_email": null,
"keywords": "ai, api, brizz, brizzai, instrumentation, llm, monitoring, observability, opentelemetry, sdk, telemetry, tracing",
"author": null,
"author_email": "Brizz Team <contact@brizz.ai>",
"download_url": "https://files.pythonhosted.org/packages/bb/ab/40bed57a30f7f7a2309e5ed18c305d2086dc62125acd9b40437e32ff5f80/brizz-0.1.0.tar.gz",
"platform": null,
"description": "# Brizz SDK\n\n[](https://www.python.org)\n[](LICENSE)\n\nBrizz observability SDK for AI applications.\n\n## Installation\n\n```bash\npip install brizz\n# or\nuv add brizz\n# or\npoetry add brizz\n```\n\n## Quick Start\n\n```python\nfrom brizz import Brizz\n\n# Initialize\nBrizz.initialize(\n api_key='your-brizzai-api-key',\n app_name='my-app',\n)\n```\n\n> **Important**: Initialize Brizz before importing any libraries you want to instrument (e.g.,\n> OpenAI). If using `dotenv`, use `from dotenv import load_dotenv; load_dotenv()` before importing `brizz`.\n\n## PII Masking\n\nAutomatically protects sensitive data in traces:\n\n```python\n# Option 1: Enable default masking (simple)\nBrizz.initialize(\n api_key='your-api-key',\n masking=True, # Enables all built-in PII patterns\n)\n\n# Option 2: Custom masking configuration\nfrom brizz import Brizz, MaskingConfig, SpanMaskingConfig, AttributesMaskingRule\n\nBrizz.initialize(\n api_key='your-api-key',\n masking=MaskingConfig(\n span_masking=SpanMaskingConfig(\n rules=[\n AttributesMaskingRule(\n attribute_pattern=r'gen_ai\\.(prompt|completion)',\n mode='partial', # 'partial' or 'full'\n patterns=[r'sk-[a-zA-Z0-9]{32}'], # Custom regex patterns\n ),\n ],\n ),\n ),\n)\n```\n\n**Built-in patterns**: emails, phone numbers, SSNs, credit cards, API keys, crypto addresses, and\nmore. Use `masking=True` for defaults or `MaskingConfig` for custom rules.\n\n## Session Tracking\n\nGroup related operations and traces under a session context. All telemetry within the wrapped\nfunction will include the session ID:\n\n```python\nimport uuid\nfrom brizz import with_session_id, awith_session_id\n\n\nasync def process_user_workflow():\n # All traces, events, and spans within this function\n # will be tagged with session-123\n response = await awith_session_id(uuid.UUID().hex, openai.chat.completions.create,\n model='gpt-4',\n messages=[{'role': 'user', 'content': 'Hello'}],\n )\n\n return response\n\n\n# For synchronous functions\ndef sync_workflow(data: dict):\n # Process data with session context\n return with_session_id(uuid.UUID().hex, processed_data, data)\n```\n\n## Event Examples\n\n```python\nfrom brizz import emit_event\n\nemit_event('user.signup', {'user_id': '123', 'plan': 'pro'})\nemit_event('user.payment', {'amount': 99, 'currency': 'USD'})\n```\n\n## Environment Variables\n\n```bash\nBRIZZ_API_KEY=your-api-key # Required\nBRIZZ_BASE_URL=https://telemetry.brizz.dev # Optional\nBRIZZ_APP_NAME=my-app # Optional\n```\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Official Python SDK for Brizz platform",
"version": "0.1.0",
"project_urls": null,
"split_keywords": [
"ai",
" api",
" brizz",
" brizzai",
" instrumentation",
" llm",
" monitoring",
" observability",
" opentelemetry",
" sdk",
" telemetry",
" tracing"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d9c0565fcbbccdc9d17ca57408dfb00f5608a44bdea8e10226e15fa07c4b45f3",
"md5": "c476f99b84460408770b9b7654d819d9",
"sha256": "f1b739e9c00835f105e766bdf2c552e8735bf4b3c4f61650c245fc2a7f8e6229"
},
"downloads": -1,
"filename": "brizz-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c476f99b84460408770b9b7654d819d9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.10",
"size": 39241,
"upload_time": "2025-08-24T07:26:53",
"upload_time_iso_8601": "2025-08-24T07:26:53.623439Z",
"url": "https://files.pythonhosted.org/packages/d9/c0/565fcbbccdc9d17ca57408dfb00f5608a44bdea8e10226e15fa07c4b45f3/brizz-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bbab40bed57a30f7f7a2309e5ed18c305d2086dc62125acd9b40437e32ff5f80",
"md5": "566d1c7835fc8985df9d1f1c76a72652",
"sha256": "79e1018f9e5e6822769a1432af236e2cd61c13630161105a57cf65a33193b26b"
},
"downloads": -1,
"filename": "brizz-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "566d1c7835fc8985df9d1f1c76a72652",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.10",
"size": 34705,
"upload_time": "2025-08-24T07:26:55",
"upload_time_iso_8601": "2025-08-24T07:26:55.202174Z",
"url": "https://files.pythonhosted.org/packages/bb/ab/40bed57a30f7f7a2309e5ed18c305d2086dc62125acd9b40437e32ff5f80/brizz-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-24 07:26:55",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "brizz"
}