{"library":"ddtrace","install":[{"cmd":"pip install ddtrace","imports":["# Preferred: use ddtrace-run CLI wrapper\n# This patches libraries at startup before your code imports them\n\n# Set env vars:\n# DD_SERVICE=my-service\n# DD_ENV=production\n# DD_VERSION=1.0.0\n# DD_AGENT_HOST=localhost  (default)\n# DD_TRACE_AGENT_PORT=8126  (default)\n\n# Run your app:\n# ddtrace-run python app.py\n# ddtrace-run gunicorn app:application\n# ddtrace-run uvicorn app:app\n\n# Verify config:\n# ddtrace-run --info","from ddtrace import tracer\n\n# Custom span\nwith tracer.trace('my.operation', service='my-service', resource='checkout') as span:\n    span.set_tag('user.id', '123')\n    span.set_tag('order.id', 'ord-456')\n    # do work\n\n# Decorator\nfrom ddtrace import tracer\n\n@tracer.wrap(service='my-service', resource='process_payment')\ndef process_payment(order_id):\n    pass\n\n# Error tracking\ntry:\n    risky_operation()\nexcept Exception as e:\n    span.error = 1\n    span.set_tag('error.msg', str(e))\n    raise"]}]}