Documentation Index
Fetch the complete documentation index at: https://docs.pandaprobe.com/llms.txt
Use this file to discover all available pages before exploring further.
PandaProbe supports fully disabling the SDK, making it safe to leave instrumentation in production code that you only want active in certain environments.
Disable via environment variable
export PANDAPROBE_ENABLED=false
When PANDAPROBE_ENABLED=false:
- The SDK does not initialize a client
pandaprobe.get_client() returns None
pandaprobe.flush() and pandaprobe.shutdown() silently do nothing
@pandaprobe.trace and @pandaprobe.span decorators pass through transparently (zero overhead)
- Wrappers return the original client unchanged
- Integration adapters’
instrument() calls are no-ops
This makes it safe to leave PandaProbe instrumentation in all environments. The SDK adds zero overhead when disabled.
Disable via init()
import pandaprobe
pandaprobe.init(enabled=False)
Environment-based configuration
Common pattern using different configurations per environment:
import os
import pandaprobe
env = os.environ.get("APP_ENV", "development")
pandaprobe.init(
api_key=os.environ.get("PANDAPROBE_API_KEY"),
project_name="my-project",
environment=env,
enabled=env != "testing",
debug=env == "development",
)
Conditional tracing without disabling
If you want the SDK enabled but want to conditionally trace specific operations:
import pandaprobe
def handle_request(query: str):
if should_trace(query):
with pandaprobe.start_trace("agent", input={"messages": [{"role": "user", "content": query}]}) as t:
return process(query, t)
else:
return process(query, None)