Python SDK
Python SDK for JustAnalytics distributed tracing and error tracking.
Installation#
pip install justanalytics
Quick Start#
import justanalytics
justanalytics.init(
site_id="YOUR_SITE_ID",
api_key="YOUR_API_KEY",
service_name="python-api",
environment="production",
)
Tracing#
import justanalytics
# Decorator-based tracing
@justanalytics.trace("process-order")
def process_order(order_id: str):
justanalytics.set_attribute("order.id", order_id)
return {"status": "processed"}
# Context manager
with justanalytics.start_span("fetch-user") as span:
span.set_attribute("user.id", user_id)
user = db.users.get(user_id)
Error Tracking#
try:
risky_operation()
except Exception as e:
justanalytics.capture_exception(e, tags={"module": "payments"})
Logging#
justanalytics.logger.info("Request processed", path="/api/orders", duration=245)
justanalytics.logger.error("Payment failed", order_id="123", reason="declined")
Framework Integrations#
Django#
# settings.py
MIDDLEWARE = [
"justanalytics.django.JustAnalyticsMiddleware",
# ... other middleware
]
JUSTANALYTICS = {
"SITE_ID": os.environ["JUSTANALYTICS_SITE_ID"],
"API_KEY": os.environ["JUSTANALYTICS_API_KEY"],
"SERVICE_NAME": "django-app",
}
Flask#
from flask import Flask
from justanalytics.flask import JustAnalyticsFlask
app = Flask(__name__)
JustAnalyticsFlask(app, service_name="flask-api")
FastAPI#
from fastapi import FastAPI
from justanalytics.fastapi import JustAnalyticsMiddleware
app = FastAPI()
app.add_middleware(JustAnalyticsMiddleware, service_name="fastapi-api")
Auto-Instrumentation#
The Python SDK automatically instruments:
- HTTP requests via
requestsandhttpx - PostgreSQL via
psycopg2 - Redis via
redis-py - SQLAlchemy ORM queries
- Celery task execution
Custom Metrics#
justanalytics.record_metric("custom.queue_size", 42, tags={"queue": "emails"})
Requirements#
- Python 3.8+
- Compatible with asyncio, threading, and multiprocessing