You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fromptelemetryimportTelemetryt=Telemetry(write_key='proj_wk_xxxxx')
# Anonymous usage before logint.track('app.opened')
t.track('feature.explored', {'feature': 'dashboard'})
# User logs indefon_login(user):
# Link anonymous client_id to user_idt.identify(user.id)
# Now all future events are linked to this usert.track('user.logged_in', {
'plan': user.subscription_plan
}, event_type='lifecycle')
# User logs outdefon_logout():
t.track('user.logged_out', event_type='lifecycle')
# Client keeps same client_id, just not linked to user anymore
GDPR Data Deletion
fromptelemetryimportTelemetryt=Telemetry(write_key='proj_wk_xxxxx')
defhandle_account_deletion():
# User requests account deletionsuccess=t.request_deletion()
ifsuccess:
print('Telemetry data deletion requested')
# Server will delete all events for this client_id within 72 hours# Local client_id is cleared immediatelyelse:
print('Failed to request deletion', file=sys.stderr)
importosfromptelemetryimportTelemetry# Disable telemetry in testst=Telemetry(
write_key='test-key',
disabled=os.environ.get('TESTING') =='1'
)
# Or use environment variable# DO_NOT_TRACK=1 pytest# Development with local backenddev_t=Telemetry(
write_key='dev-key',
api_url='http://localhost:8000'
)
Context Manager for Automatic Cleanup
fromptelemetryimportTelemetrywithTelemetry(write_key='proj_wk_xxxxx') ast:
t.track('app.started')
# ... do workt.track('app.finished')
# Automatically calls shutdown() and flushes events
Batch Operations
fromptelemetryimportTelemetryt=Telemetry(
write_key='proj_wk_xxxxx',
flush_at=100# Batch 100 events before flushing
)
# Track many eventsforiinrange(1000):
t.track('item.processed', {'item_id': i})
# Events are automatically batched and sent in groups of 100# Force flush remaining eventst.flush()