[{"data":1,"prerenderedAt":420},["ShallowReactive",2],{"docs-pages-en":3,"doc-en-sdk-python":154},[4,11,16,21,26,31,37,48,56,65,73,80,88,92,101,105,113,118,123,128,134,139,144,149],{"path":5,"title":6,"description":7,"order":8,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Finstallation","Installation","Install CloseYourIt on your own server with one command.",1,"start",null,{"path":12,"title":13,"description":14,"order":15,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fsettings","Settings","Every setting in the .env file, what it does and which ones you must never change.",2,{"path":17,"title":18,"description":19,"order":20,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fdatabase","Database","What the database is, what is inside, how long data stays and how much room it takes.",3,{"path":22,"title":23,"description":24,"order":25,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fupdates-and-backups","Updates and backups","Update to a new version, back up and restore the database, check the install.",4,{"path":27,"title":28,"description":29,"order":30,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting","What to check when the install, the certificate, email or incoming data do not work.",5,{"path":32,"title":33,"description":34,"order":35,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fconnect-your-apps","Connect your apps","Every tool that sends data to CloseYourIt, and what each one collects.",6,"connect",{"path":38,"title":39,"description":40,"order":41,"group":10,"parent":42,"package":43,"note":44,"collects":45,"status":10},"\u002Fdocs\u002Fsdk-ruby","Ruby \u002F Rails","The closeyourit-ruby gem sends errors, logs, slow queries and job metrics from a Rails app.",7,"connect-your-apps","closeyourit-ruby","Errors, logs, slow queries and methods, background jobs.",{"errors":46,"logs":46,"performance":46,"visits":47,"servers":47},"full","none",{"path":49,"title":50,"description":51,"order":52,"group":10,"parent":42,"package":53,"note":54,"collects":55,"status":10},"\u002Fdocs\u002Fsdk-javascript","JavaScript","The @bussolabs\u002Fcloseyourit-js package works in the browser and on Node 20.16 or newer.",8,"@bussolabs\u002Fcloseyourit-js","Browser and Node, framework adapters and database queries from 0.13.0.",{"errors":46,"logs":46,"performance":46,"visits":46,"servers":47},{"path":57,"title":58,"description":59,"order":60,"group":10,"parent":42,"package":61,"note":62,"collects":63,"status":10},"\u002Fdocs\u002Fsdk-dart","Dart \u002F Flutter","The closeyourit package captures the errors of Flutter apps, even when the phone is offline.",9,"closeyourit","Public errors, logs and metrics from 0.9.3.",{"errors":46,"logs":64,"performance":64,"visits":47,"servers":47},"partial",{"path":66,"title":67,"description":68,"order":69,"group":10,"parent":42,"package":61,"note":70,"collects":71,"status":72},"\u002Fdocs\u002Fsdk-python","Python","The closeyourit package sends errors, logs and metrics from server-side Python applications.",10,"Server side. SQLAlchemy; Django query monitoring and FastAPI\u002FStarlette from 0.4.0.",{"errors":46,"logs":46,"performance":64,"visits":47,"servers":47},"pre_alpha",{"path":74,"title":75,"description":76,"order":77,"group":10,"parent":42,"package":75,"note":78,"collects":79,"status":10},"\u002Fdocs\u002Fsdk-sentry","Sentry SDK","Send errors with a compatible Sentry SDK; sessions and crashes have separate profiles.",11,"Compatible errors; sessions and crashes require a verified profile.",{"errors":46,"logs":47,"performance":47,"visits":47,"servers":47},{"path":81,"title":82,"description":83,"order":84,"group":10,"parent":42,"package":85,"note":86,"collects":87,"status":10},"\u002Fdocs\u002Fagent-server","Server agent","A small program on the server that sends the state of the machine every 60 seconds.",12,"closeyourit-agent","CPU, memory, disks, network, containers and services.",{"errors":47,"logs":64,"performance":47,"visits":47,"servers":46},{"path":89,"title":90,"description":91,"order":84,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnuxt","Vue and Nuxt","Connect Nuxt browser errors and Nitro server errors without exposing a server token.",{"path":93,"title":94,"description":95,"order":96,"group":10,"parent":42,"package":97,"note":98,"collects":99,"status":100},"\u002Fdocs\u002Fagent-kubernetes","Kubernetes","A read-only observer of the cluster: one copy per cluster.",13,"closeyourit-kube","Machines, apps and error events of the cluster.",{"errors":47,"logs":47,"performance":47,"visits":47,"servers":46},"coming",{"path":102,"title":103,"description":104,"order":96,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fopentelemetry","OpenTelemetry","Send server traces, metrics and logs through the optional OTLP receiver.",{"path":106,"title":107,"description":108,"order":109,"group":10,"parent":42,"package":110,"note":111,"collects":112,"status":10},"\u002Fdocs\u002Fcli","cyi CLI","The closeyourit command, cyi for short: manage projects, errors and tickets from the terminal.",14,"@bussolabs\u002Fcloseyourit-cli","It collects no data: it drives CloseYourIt from the terminal.",{"errors":47,"logs":47,"performance":47,"visits":47,"servers":47},{"path":114,"title":115,"description":116,"order":117,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fhttp-api","HTTP API","Send errors, logs, metrics and page views with plain HTTP requests, without an SDK.",15,{"path":119,"title":120,"description":121,"order":122,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fgithub-app","GitHub","Connect GitHub repositories to tickets and releases with your own GitHub App.",16,{"path":124,"title":125,"description":126,"order":127,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fingest-gateway","Ingest gateway","Keep incoming errors, logs and metrics safe when the app is slow or restarting.",17,{"path":129,"title":130,"description":131,"order":132,"group":133,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fai","AI","Turn on assistant, analysis, dictation and smart search with a CloseYourIt AI key or your own provider.",18,"automation",{"path":135,"title":136,"description":137,"order":138,"group":133,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fautomator","Automator","Let tickets be worked automatically on your own Linux machine, with Claude Code, Codex or both.",19,{"path":140,"title":141,"description":142,"order":143,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fstack-coverage","Frameworks and stack coverage","Choose a published SDK or understand the limits of a locally tested integration.",20,{"path":145,"title":146,"description":147,"order":148,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fmonitoring","Traces, measurements and sessions","Explore the new signals, compare releases and recover original error locations.",21,{"path":150,"title":151,"description":152,"order":153,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnode-database","Node databases","Monitor slow and repeated queries with pg, mysql2, Drizzle and Prisma PostgreSQL.",22,{"id":155,"title":67,"body":156,"collects":413,"description":68,"extension":414,"group":10,"meta":415,"navigation":416,"note":70,"order":69,"package":61,"parent":42,"path":66,"seo":417,"status":72,"stem":418,"__hash__":419},"docs_en\u002Fdocs\u002Fsdk-python.md",{"type":157,"value":158,"toc":406},"minimark",[159,164,208,216,220,225,229,253,256,288,292,295,365,368,372,395,402],[160,161,163],"h2",{"id":162},"what-it-collects","What it collects",[165,166,167,175,181,192,198,205],"ul",{},[168,169,170,174],"li",{},[171,172,173],"strong",{},"unhandled errors",";",[168,176,177,180],{},[171,178,179],{},"logs",", from Python's standard logging;",[168,182,183,184,187,188,174],{},"duration ",[171,185,186],{},"metrics",", with ",[189,190,191],"code",{},"measure()",[168,193,194,197],{},[171,195,196],{},"slow queries",", with SQLAlchemy;",[168,199,200,201,204],{},"the duration of ",[171,202,203],{},"Celery"," tasks;",[168,206,207],{},"usage telemetry, if you turn it on.",[209,210,211,212,215],"p",{},"It has integrations for Django, Flask, WSGI, ASGI, Celery, HTTP and SQLAlchemy. Version ",[171,213,214],{},"0.4.0"," also adds Django query monitoring and explicit FastAPI\u002FStarlette adapters.",[160,217,219],{"id":218},"what-you-need","What you need",[165,221,222],{},[168,223,224],{},"Python 3.11 or newer.",[160,226,228],{"id":227},"install","Install",[230,231,236],"pre",{"className":232,"code":233,"language":234,"meta":235,"style":235},"language-bash shiki shiki-themes github-light github-dark","pip install closeyourit\n","bash","",[189,237,238],{"__ignoreMap":235},[239,240,242,246,250],"span",{"class":241,"line":8},"line",[239,243,245],{"class":244},"sScJk","pip",[239,247,249],{"class":248},"sZZnC"," install",[239,251,252],{"class":248}," closeyourit\n",[209,254,255],{},"Integrations are installed one by one:",[230,257,259],{"className":232,"code":258,"language":234,"meta":235,"style":235},"pip install \"closeyourit[django]\"\npip install \"closeyourit[flask]\"\npip install \"closeyourit[celery]\"\n",[189,260,261,270,279],{"__ignoreMap":235},[239,262,263,265,267],{"class":241,"line":8},[239,264,245],{"class":244},[239,266,249],{"class":248},[239,268,269],{"class":248}," \"closeyourit[django]\"\n",[239,271,272,274,276],{"class":241,"line":15},[239,273,245],{"class":244},[239,275,249],{"class":248},[239,277,278],{"class":248}," \"closeyourit[flask]\"\n",[239,280,281,283,285],{"class":241,"line":20},[239,282,245],{"class":244},[239,284,249],{"class":248},[239,286,287],{"class":248}," \"closeyourit[celery]\"\n",[160,289,291],{"id":290},"configure","Configure",[209,293,294],{},"It reads these variables from the application's environment:",[296,297,298,311],"table",{},[299,300,301],"thead",{},[302,303,304,308],"tr",{},[305,306,307],"th",{},"Variable",[305,309,310],{},"What it is for",[312,313,314,325,335,345,355],"tbody",{},[302,315,316,322],{},[317,318,319],"td",{},[189,320,321],{},"CLOSEYOURIT_ENDPOINT_URL",[317,323,324],{},"the address of your installation",[302,326,327,332],{},[317,328,329],{},[189,330,331],{},"CLOSEYOURIT_TOKEN",[317,333,334],{},"the secret token, server side only",[302,336,337,342],{},[317,338,339],{},[189,340,341],{},"CLOSEYOURIT_PROJECT_ID",[317,343,344],{},"the project id",[302,346,347,352],{},[317,348,349],{},[189,350,351],{},"CLOSEYOURIT_ENVIRONMENT",[317,353,354],{},"the environment",[302,356,357,362],{},[317,358,359],{},[189,360,361],{},"CLOSEYOURIT_RELEASE",[317,363,364],{},"the version of the app",[209,366,367],{},"If something is missing the SDK turns itself off, without raising an error.",[160,369,371],{"id":370},"new-framework-adapters","New framework adapters",[209,373,374,375,378,379,382,383,386,387,390,391,394],{},"Version 0.4.0 adds opt-in ",[189,376,377],{},"DjangoMiddleware(query_monitoring=True)"," and reversible ",[189,380,381],{},"instrument_django(client)"," query profiles. FastAPI and Starlette use ",[189,384,385],{},"instrument_fastapi(api, client)"," or ",[189,388,389],{},"instrument_starlette(api, client)","; export the returned wrapper to the ASGI server. Install before serving and call ",[189,392,393],{},"uninstall()"," to remove the integration. The application remains responsible for closing its client.",[209,396,397,398,401],{},"These additions have local framework and delivery tests, not a publication guarantee. Use the README for the exact installed version. Server-side ",[399,400,103],"a",{"href":102}," is a separate path; native duration metrics are not OTLP traces.",[403,404,405],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":235,"searchDepth":15,"depth":15,"links":407},[408,409,410,411,412],{"id":162,"depth":15,"text":163},{"id":218,"depth":15,"text":219},{"id":227,"depth":15,"text":228},{"id":290,"depth":15,"text":291},{"id":370,"depth":15,"text":371},{"errors":46,"logs":46,"performance":64,"visits":47,"servers":47},"md",{},true,{"title":67,"description":68},"docs\u002Fsdk-python","D78MkhDC2oAox8HpHQWkEahGmC2g3Sq8_Vxe87JsYHA",1791302513060]