[{"data":1,"prerenderedAt":355},["ShallowReactive",2],{"docs-pages-en":3,"doc-en-sdk-ruby":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":39,"body":156,"collects":348,"description":40,"extension":349,"group":10,"meta":350,"navigation":351,"note":44,"order":41,"package":43,"parent":42,"path":38,"seo":352,"status":10,"stem":353,"__hash__":354},"docs_en\u002Fdocs\u002Fsdk-ruby.md",{"type":157,"value":158,"toc":341},"minimark",[159,164,168,212,215,229,235,239,260,264,304,307,311,326,330,337],[160,161,163],"h2",{"id":162},"what-it-collects","What it collects",[165,166,167],"p",{},"On its own, with Rails:",[169,170,171,179,190,198,206],"ul",{},[172,173,174,178],"li",{},[175,176,177],"strong",{},"unhandled exceptions",", with the HTTP request that caused them;",[172,180,181,182,185,186,189],{},"errors in background jobs (",[175,183,184],{},"ActiveJob"," and ",[175,187,188],{},"Sidekiq",");",[172,191,192,193,197],{},"handled errors reported with ",[194,195,196],"code",{},"Rails.error.report",";",[172,199,200,185,203,197],{},[175,201,202],{},"slow queries",[175,204,205],{},"slow methods",[172,207,208,211],{},[175,209,210],{},"background job metrics",".",[165,213,214],{},"When you ask for it:",[169,216,217,223,226],{},[172,218,219,222],{},[175,220,221],{},"structured logs",", tied to the request by the same id;",[172,224,225],{},"performance issues: N+1, too many queries, slow HTTP calls;",[172,227,228],{},"usage telemetry: which parts of the app really run.",[165,230,231,232,211],{},"It does not collect page views or record sessions: for those you need ",[233,234,50],"a",{"href":49},[160,236,238],{"id":237},"install","Install",[240,241,246],"pre",{"className":242,"code":243,"language":244,"meta":245,"style":245},"language-ruby shiki shiki-themes github-light github-dark","# Gemfile\ngem \"closeyourit-ruby\"\n","ruby","",[194,247,248,255],{"__ignoreMap":245},[249,250,252],"span",{"class":251,"line":8},"line",[249,253,254],{},"# Gemfile\n",[249,256,257],{"class":251,"line":15},[249,258,259],{},"gem \"closeyourit-ruby\"\n",[160,261,263],{"id":262},"configure","Configure",[240,265,267],{"className":242,"code":266,"language":244,"meta":245,"style":245},"# config\u002Finitializers\u002Fcloseyourit.rb\nCloseYourIt.init do |c|\n  c.endpoint_url = \"https:\u002F\u002Fbugs.example.com\"\n  c.token        = ENV[\"CLOSEYOURIT_TOKEN\"]\n  c.project_id   = ENV[\"CLOSEYOURIT_PROJECT_ID\"]\n  c.environment  = Rails.env\nend\n",[194,268,269,274,279,284,289,294,299],{"__ignoreMap":245},[249,270,271],{"class":251,"line":8},[249,272,273],{},"# config\u002Finitializers\u002Fcloseyourit.rb\n",[249,275,276],{"class":251,"line":15},[249,277,278],{},"CloseYourIt.init do |c|\n",[249,280,281],{"class":251,"line":20},[249,282,283],{},"  c.endpoint_url = \"https:\u002F\u002Fbugs.example.com\"\n",[249,285,286],{"class":251,"line":25},[249,287,288],{},"  c.token        = ENV[\"CLOSEYOURIT_TOKEN\"]\n",[249,290,291],{"class":251,"line":30},[249,292,293],{},"  c.project_id   = ENV[\"CLOSEYOURIT_PROJECT_ID\"]\n",[249,295,296],{"class":251,"line":35},[249,297,298],{},"  c.environment  = Rails.env\n",[249,300,301],{"class":251,"line":41},[249,302,303],{},"end\n",[165,305,306],{},"Without an address, a token or a project the gem does nothing: it is safe in development and in tests.",[160,308,310],{"id":309},"good-to-know","Good to know",[169,312,313,316,319],{},[172,314,315],{},"Sending happens in the background: it does not slow the request and never crashes the app.",[172,317,318],{},"No personal data leaves, unless you turn it on.",[172,320,321,322,325],{},"In production an ",[194,323,324],{},"http:\u002F\u002F"," address is refused: the token would travel in clear text.",[160,327,329],{"id":328},"opentelemetry-and-trace-context","OpenTelemetry and trace context",[165,331,332,333,336],{},"The native gem collects errors and performance issues. Its optional W3C propagation correlates requests; it does not turn the gem into an OTLP exporter. Use an official server-side exporter with the ",[233,334,335],{"href":102},"OpenTelemetry receiver"," for complete spans and general metrics. Verify the receiver is enabled before configuring it.",[338,339,340],"style",{},"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":245,"searchDepth":15,"depth":15,"links":342},[343,344,345,346,347],{"id":162,"depth":15,"text":163},{"id":237,"depth":15,"text":238},{"id":262,"depth":15,"text":263},{"id":309,"depth":15,"text":310},{"id":328,"depth":15,"text":329},{"errors":46,"logs":46,"performance":46,"visits":47,"servers":47},"md",{},true,{"title":39,"description":40},"docs\u002Fsdk-ruby","gqe-IFeYDrVeNpU8cywalHLO27LOE-NKLS7WeMU1Lb8",1791302513060]