Configuration
Customize SDK behavior with configuration options.
All Options
from statly_observe import Statly
Statly.init(
# Required
dsn='https://[email protected]/your-org',
# Optional
environment='production', # Environment name
release='1.2.3', # App version
debug=False, # Enable debug logging
sample_rate=1.0, # 0.0-1.0, event sampling
max_breadcrumbs=100, # Max breadcrumbs stored
before_send=my_callback, # Modify/filter events
transport=None, # Custom transport
)Option Reference
dsn
Required. Your Data Source Name containing API key and organization.
dsn='https://[email protected]/acme'Format: https://<api-key>@statly.live/<org-slug>
environment
Environment name for filtering events in the dashboard.
environment='production' # or 'staging', 'development'release
Your application version. Used for release tracking.
release='1.2.3' # or commit hashdebug
Enable verbose logging for troubleshooting.
debug=TrueLogs SDK initialization, event capture, and transport activity.
sample_rate
Probability that an event will be sent (0.0 to 1.0).
sample_rate=0.5 # Send 50% of eventsmax_breadcrumbs
Maximum number of breadcrumbs to store per event.
max_breadcrumbs=50 # Default: 100before_send
Callback to modify or drop events before sending.
def before_send(event):
# Drop events from test users
if event.get('user', {}).get('email', '').endswith('@test.com'):
return None
# Remove sensitive data
if 'extra' in event and 'password' in event['extra']:
del event['extra']['password']
return event
Statly.init(
dsn='...',
before_send=before_send,
)Return None to drop the event entirely.
transport
Custom transport for sending events. The default transport handles batching, retries, and error handling automatically. Custom transports are typically only needed for advanced use cases like custom proxy configurations.
Runtime Configuration
Some settings can be changed after initialization:
from statly_observe import Statly
Statly.init(dsn='...')
# Set user context
Statly.set_user(
id='user_123',
email='[email protected]',
)
# Add tags
Statly.set_tag('feature', 'checkout')
Statly.set_tags({
'region': 'us-east',
'plan': 'enterprise',
})Environment Variables
Common pattern for configuration:
import os
from statly_observe import Statly
Statly.init(
dsn=os.environ['STATLY_DSN'],
environment=os.environ.get('ENVIRONMENT', 'development'),
release=os.environ.get('GIT_SHA'),
debug=os.environ.get('DEBUG', '').lower() == 'true',
)Logging Integration
Capture Python logging as breadcrumbs:
import logging
from statly_observe import Statly
Statly.init(dsn='...')
# Python logs become breadcrumbs
logging.info('User logged in')
logging.warning('Slow database query')
try:
risky_operation()
except Exception as e:
# Captured event includes logging breadcrumbs
Statly.capture_exception(e)