Which Pattern?
| Environment | Pattern | Why |
|---|---|---|
| AWS Lambda / Cloud Functions | Lazy Init | Reuse tracer across warm starts |
| FastAPI / Flask / Django | Global Tracer | Single instance, concurrent-safe |
| Kubernetes / Docker | Env Config | Secrets via env vars |
Serverless
Why: In serverless, the first request (“cold start”) initializes everything from scratch. Subsequent requests (“warm starts”) reuse the same container. Lazy initialization takes advantage of this - initialize the tracer once, reuse it across warm requests.Server
Why: Web servers handle many concurrent requests. Initialize the tracer once when the app starts, then create a new session per request usingcreate_session() (sync) or acreate_session() (async) so each request gets isolated traces.
FastAPI
Flask
Error Handling
Tracing should never crash your app. Handle missing config gracefully:Environment Configuration
Kubernetes
Checklist
Before deploying:- ✅
HH_API_KEYandHH_PROJECTenvironment variables set - ✅ Tested with
HH_API_KEY=""to verify graceful degradation - ✅ Traces appearing in HoneyHive dashboard
What’s Next?
Tracer Initialization Patterns
Multi-turn sessions, scoped sessions, and patterns for serverless, web servers, and experiments
Trace Distributed Systems
Trace requests across service boundaries with context propagation
Questions? Join our Discord community or email support@honeyhive.ai

