[{"data":1,"prerenderedAt":1707},["ShallowReactive",2],{"docs-pages-it":3,"doc-it-http-api":155},[4,11,16,21,26,31,37,48,56,65,73,81,89,93,102,106,114,119,124,129,135,140,145,150],{"path":5,"title":6,"description":7,"order":8,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Finstallation","Installazione","Installa CloseYourIt sul tuo server con un solo comando.",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","Impostazioni","Ogni impostazione del file .env, a cosa serve e quali non vanno mai cambiate.",2,{"path":17,"title":18,"description":19,"order":20,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fdatabase","Database","Cos'è il database, cosa contiene, quanto restano i dati e quanto spazio occupa.",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","Aggiornamenti e backup","Aggiorna a una versione nuova, fai e ripristina il backup del database, controlla l'installazione.",4,{"path":27,"title":28,"description":29,"order":30,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Ftroubleshooting","Risolvere i problemi","Cosa controllare quando installazione, certificato, email o dati in arrivo non funzionano.",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","Collega le tue app","Tutti gli strumenti che mandano dati a CloseYourIt, e cosa raccoglie ognuno.",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","La gemma closeyourit-ruby manda errori, log, query lente e metriche dei job da un'app Rails.",7,"connect-your-apps","closeyourit-ruby","Errori, log, query e metodi lenti, job in background.",{"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","Il pacchetto @bussolabs\u002Fcloseyourit-js funziona nel browser e su Node 20.16 o più recente.",8,"@bussolabs\u002Fcloseyourit-js","Browser e Node, adattatori framework e query database dalla 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","Il pacchetto closeyourit cattura gli errori delle app Flutter, anche quando il telefono è senza rete.",9,"closeyourit","Errori, log e metriche pubblici dalla 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","Il pacchetto closeyourit manda errori, log e metriche da applicazioni Python lato server.",10,"Lato server. SQLAlchemy; query Django e FastAPI\u002FStarlette dalla 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":78,"note":79,"collects":80,"status":10},"\u002Fdocs\u002Fsdk-sentry","SDK Sentry","Invia errori con un SDK Sentry compatibile; sessioni e crash hanno profili separati.",11,"Sentry SDK","Errori compatibili; sessioni e crash richiedono il profilo verificato.",{"errors":46,"logs":47,"performance":47,"visits":47,"servers":47},{"path":82,"title":83,"description":84,"order":85,"group":10,"parent":42,"package":86,"note":87,"collects":88,"status":10},"\u002Fdocs\u002Fagent-server","Agent per server","Un piccolo programma sul server che manda lo stato della macchina ogni 60 secondi.",12,"closeyourit-agent","CPU, memoria, dischi, rete, container e servizi.",{"errors":47,"logs":64,"performance":47,"visits":47,"servers":46},{"path":90,"title":91,"description":92,"order":85,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnuxt","Vue e Nuxt","Collega gli errori del browser Nuxt e del server Nitro senza esporre un token segreto.",{"path":94,"title":95,"description":96,"order":97,"group":10,"parent":42,"package":98,"note":99,"collects":100,"status":101},"\u002Fdocs\u002Fagent-kubernetes","Kubernetes","Un osservatore in sola lettura del cluster: una copia sola per cluster.",13,"closeyourit-kube","Macchine, app ed eventi di errore del cluster.",{"errors":47,"logs":47,"performance":47,"visits":47,"servers":46},"coming",{"path":103,"title":104,"description":105,"order":97,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fopentelemetry","OpenTelemetry","Invia tracce, metriche e log dei server attraverso il ricevitore OTLP facoltativo.",{"path":107,"title":108,"description":109,"order":110,"group":10,"parent":42,"package":111,"note":112,"collects":113,"status":10},"\u002Fdocs\u002Fcli","CLI cyi","Il comando closeyourit, in breve cyi: gestisci progetti, errori e ticket dal terminale.",14,"@bussolabs\u002Fcloseyourit-cli","Non raccoglie dati: comanda CloseYourIt dal terminale.",{"errors":47,"logs":47,"performance":47,"visits":47,"servers":47},{"path":115,"title":116,"description":117,"order":118,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fhttp-api","API HTTP","Manda errori, log, metriche e visite con semplici richieste HTTP, senza un SDK.",15,{"path":120,"title":121,"description":122,"order":123,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fgithub-app","GitHub","Collega i repository GitHub a ticket e rilasci con una GitHub App tua.",16,{"path":125,"title":126,"description":127,"order":128,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fingest-gateway","Gateway di ingest","Tieni al sicuro errori, log e metriche in arrivo quando l'app è lenta o sta ripartendo.",17,{"path":130,"title":131,"description":132,"order":133,"group":134,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fai","AI","Accendi assistente, analisi, dettatura e ricerca intelligente con una chiave CloseYourIt AI o con il tuo provider.",18,"automation",{"path":136,"title":137,"description":138,"order":139,"group":134,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fautomator","Automator","Fai lavorare i ticket in automatico su una tua macchina Linux, con Claude Code, Codex o tutti e due.",19,{"path":141,"title":142,"description":143,"order":144,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fstack-coverage","Framework e copertura degli stack","Scegli un SDK pubblicato o verifica i limiti di un’integrazione provata localmente.",20,{"path":146,"title":147,"description":148,"order":149,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fmonitoring","Tracce, misure e sessioni","Esplora i nuovi segnali, confronta le versioni e ricostruisci le posizioni originali degli errori.",21,{"path":151,"title":152,"description":153,"order":154,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnode-database","Database Node","Monitora query lente e ripetute con pg, mysql2, Drizzle e Prisma PostgreSQL.",22,{"id":156,"title":116,"body":157,"collects":10,"description":117,"extension":1701,"group":36,"meta":1702,"navigation":1703,"note":10,"order":118,"package":10,"parent":10,"path":115,"seo":1704,"status":10,"stem":1705,"__hash__":1706},"docs_it\u002Fdocs\u002Fhttp-api.md",{"type":158,"value":159,"toc":1689},"minimark",[160,164,169,172,205,222,229,261,265,378,385,399,403,406,539,722,725,729,793,881,885,952,1080,1084,1138,1232,1241,1250,1254,1323,1338,1346,1350,1353,1392,1520,1531,1535,1538,1639,1664,1675,1679,1685],[161,162,163],"p",{},"Gli SDK sono una comodità: sotto, ognuno fa le richieste HTTP di questa pagina. Usa l'API direttamente da un linguaggio senza SDK, da uno script o dalla CI.",[165,166,168],"h2",{"id":167},"prima-di-cominciare","Prima di cominciare",[161,170,171],{},"Ti servono tre cose, tutte dalle impostazioni del progetto in CloseYourIt:",[173,174,175,189,194],"ul",{},[176,177,178,179,183,184,188],"li",{},"l'",[180,181,182],"strong",{},"indirizzo"," della tua installazione, per esempio ",[185,186,187],"code",{},"https:\u002F\u002Fbugs.example.com",";",[176,190,178,191,188],{},[180,192,193],{},"id del progetto",[176,195,196,197,200,201,204],{},"un ",[180,198,199],{},"token di ingest"," (",[185,202,203],{},"cyi_…",").",[161,206,207,208,211,212,215,216,221],{},"Il token è segreto e resta sul server. ",[185,209,210],{},"ingest"," permette di mandare dati; le letture private richiedono lo scope separato ",[185,213,214],{},"read",". I client browser e mobile usano una chiave pubblica per i segnali supportati, senza accesso in lettura né di amministrazione. I segnali disponibili dipendono dall'SDK e dalla versione; vedi ",[217,218,220],"a",{"href":219},"\u002Fit\u002Fdocs\u002Fsdk-javascript","SDK JavaScript",".",[161,223,224,225,228],{},"Ogni richiesta porta il token e manda JSON, con i nomi dei campi in ",[185,226,227],{},"snake_case",":",[230,231,236],"pre",{"className":232,"code":233,"language":234,"meta":235,"style":235},"language-bash shiki shiki-themes github-light github-dark","Authorization: Bearer cyi_...\nContent-Type: application\u002Fjson\n","bash","",[185,237,238,253],{"__ignoreMap":235},[239,240,242,246,250],"span",{"class":241,"line":8},"line",[239,243,245],{"class":244},"sScJk","Authorization:",[239,247,249],{"class":248},"sZZnC"," Bearer",[239,251,252],{"class":248}," cyi_...\n",[239,254,255,258],{"class":241,"line":15},[239,256,257],{"class":244},"Content-Type:",[239,259,260],{"class":248}," application\u002Fjson\n",[165,262,264],{"id":263},"dove-mandare","Dove mandare",[266,267,268,287],"table",{},[269,270,271],"thead",{},[272,273,274,278,281,284],"tr",{},[275,276,277],"th",{},"Cosa",[275,279,280],{},"Indirizzo",[275,282,283],{},"Corpo",[275,285,286],{},"Risposta",[288,289,290,309,327,344,361],"tbody",{},[272,291,292,296,301,304],{},[293,294,295],"td",{},"Errore",[293,297,298],{},[185,299,300],{},"POST \u002Fapi\u002Fv1\u002Fprojects\u002F\u003Cid>\u002Fevents",[293,302,303],{},"un evento",[293,305,306],{},[185,307,308],{},"202 {\"data\":{\"id\":\"…\"}}",[272,310,311,314,319,322],{},[293,312,313],{},"Prestazioni",[293,315,316],{},[185,317,318],{},"POST \u002Fapi\u002Fv1\u002Fprojects\u002F\u003Cid>\u002Fmetrics",[293,320,321],{},"un campione o una lista",[293,323,324],{},[185,325,326],{},"202 {\"data\":{\"accepted\":N}}",[272,328,329,332,337,340],{},[293,330,331],{},"Log",[293,333,334],{},[185,335,336],{},"POST \u002Fapi\u002Fv1\u002Fprojects\u002F\u003Cid>\u002Flogs",[293,338,339],{},"una riga o una lista",[293,341,342],{},[185,343,326],{},[272,345,346,349,354,357],{},[293,347,348],{},"Visite",[293,350,351],{},[185,352,353],{},"POST \u002Fapi\u002Fv1\u002Fprojects\u002F\u003Cid>\u002Fpageviews",[293,355,356],{},"una visita o una lista",[293,358,359],{},[185,360,326],{},[272,362,363,366,371,374],{},[293,364,365],{},"Registrazione della sessione",[293,367,368],{},[185,369,370],{},"POST \u002Fapi\u002Fv1\u002Fprojects\u002F\u003Cid>\u002Freplays",[293,372,373],{},"un pezzo o una lista",[293,375,376],{},[185,377,326],{},[161,379,380,381,384],{},"L'",[185,382,383],{},"\u003Cid>"," nell'indirizzo deve essere il progetto a cui appartiene il token.",[161,386,387,390,391,394,395,398],{},[185,388,389],{},"202"," vuol dire ",[180,392,393],{},"accettato",", non salvato: i dati li scrive un attimo dopo un lavoro in background. ",[185,396,397],{},"accepted"," conta gli elementi che hanno passato i primi controlli.",[165,400,402],{"id":401},"mandare-un-errore","Mandare un errore",[161,404,405],{},"Il corpo è un evento nel formato di Sentry.",[230,407,409],{"className":232,"code":408,"language":234,"meta":235,"style":235},"curl -X POST https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Fevents \\\n  -H \"Authorization: Bearer $CYI_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"event_id\": \"fc6d8c0c43fc4630ad850ee518f1b9d0\",\n    \"timestamp\": \"2026-10-03T10:15:30Z\",\n    \"level\": \"error\",\n    \"platform\": \"ruby\",\n    \"environment\": \"production\",\n    \"release\": \"v1.4.2\",\n    \"exception\": { \"values\": [ {\n      \"type\": \"RuntimeError\",\n      \"value\": \"boom\",\n      \"stacktrace\": { \"frames\": [\n        { \"filename\": \"app\u002Fmodels\u002Forder.rb\", \"function\": \"charge\", \"lineno\": 42, \"in_app\": true }\n      ] }\n    } ] }\n  }'\n",[185,410,411,436,452,461,469,474,479,484,489,494,499,504,509,514,519,524,529,534],{"__ignoreMap":235},[239,412,413,416,420,423,426,430,433],{"class":241,"line":8},[239,414,415],{"class":244},"curl",[239,417,419],{"class":418},"sj4cs"," -X",[239,421,422],{"class":248}," POST",[239,424,425],{"class":248}," https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Fprojects\u002F",[239,427,429],{"class":428},"sVt8B","$PROJECT_ID",[239,431,432],{"class":248},"\u002Fevents",[239,434,435],{"class":418}," \\\n",[239,437,438,441,444,447,450],{"class":241,"line":15},[239,439,440],{"class":418},"  -H",[239,442,443],{"class":248}," \"Authorization: Bearer ",[239,445,446],{"class":428},"$CYI_TOKEN",[239,448,449],{"class":248},"\"",[239,451,435],{"class":418},[239,453,454,456,459],{"class":241,"line":20},[239,455,440],{"class":418},[239,457,458],{"class":248}," \"Content-Type: application\u002Fjson\"",[239,460,435],{"class":418},[239,462,463,466],{"class":241,"line":25},[239,464,465],{"class":418},"  -d",[239,467,468],{"class":248}," '{\n",[239,470,471],{"class":241,"line":30},[239,472,473],{"class":248},"    \"event_id\": \"fc6d8c0c43fc4630ad850ee518f1b9d0\",\n",[239,475,476],{"class":241,"line":35},[239,477,478],{"class":248},"    \"timestamp\": \"2026-10-03T10:15:30Z\",\n",[239,480,481],{"class":241,"line":41},[239,482,483],{"class":248},"    \"level\": \"error\",\n",[239,485,486],{"class":241,"line":52},[239,487,488],{"class":248},"    \"platform\": \"ruby\",\n",[239,490,491],{"class":241,"line":60},[239,492,493],{"class":248},"    \"environment\": \"production\",\n",[239,495,496],{"class":241,"line":69},[239,497,498],{"class":248},"    \"release\": \"v1.4.2\",\n",[239,500,501],{"class":241,"line":77},[239,502,503],{"class":248},"    \"exception\": { \"values\": [ {\n",[239,505,506],{"class":241,"line":85},[239,507,508],{"class":248},"      \"type\": \"RuntimeError\",\n",[239,510,511],{"class":241,"line":97},[239,512,513],{"class":248},"      \"value\": \"boom\",\n",[239,515,516],{"class":241,"line":110},[239,517,518],{"class":248},"      \"stacktrace\": { \"frames\": [\n",[239,520,521],{"class":241,"line":118},[239,522,523],{"class":248},"        { \"filename\": \"app\u002Fmodels\u002Forder.rb\", \"function\": \"charge\", \"lineno\": 42, \"in_app\": true }\n",[239,525,526],{"class":241,"line":123},[239,527,528],{"class":248},"      ] }\n",[239,530,531],{"class":241,"line":128},[239,532,533],{"class":248},"    } ] }\n",[239,535,536],{"class":241,"line":133},[239,537,538],{"class":248},"  }'\n",[266,540,541,551],{},[269,542,543],{},[272,544,545,548],{},[275,546,547],{},"Campo",[275,549,550],{},"Note",[288,552,553,563,573,602,626,639,658,677,702,712],{},[272,554,555,560],{},[293,556,557],{},[185,558,559],{},"event_id",[293,561,562],{},"un tuo id unico; mandare due volte lo stesso non crea un secondo errore",[272,564,565,570],{},[293,566,567],{},[185,568,569],{},"timestamp",[293,571,572],{},"ISO 8601 o secondi dal 1970; di base è adesso",[272,574,575,580],{},[293,576,577],{},[185,578,579],{},"level",[293,581,582,585,586,585,589,585,592,595,596,599,600],{},[185,583,584],{},"debug",", ",[185,587,588],{},"info",[185,590,591],{},"warning",[185,593,594],{},"error"," o ",[185,597,598],{},"fatal","; di base ",[185,601,594],{},[272,603,604,609],{},[293,605,606],{},[185,607,608],{},"exception.values[]",[293,610,611,612,585,615,618,619,622,623],{},"ognuno con ",[185,613,614],{},"type",[185,616,617],{},"value"," e ",[185,620,621],{},"stacktrace.frames[]","; si legge l'",[180,624,625],{},"ultimo",[272,627,628,633],{},[293,629,630],{},[185,631,632],{},"message",[293,634,635,636],{},"usato come titolo quando manca ",[185,637,638],{},"exception",[272,640,641,655],{},[293,642,643,585,646,585,649,585,652],{},[185,644,645],{},"environment",[185,647,648],{},"release",[185,650,651],{},"server_name",[185,653,654],{},"platform",[293,656,657],{},"facoltativi",[272,659,660,665],{},[293,661,662],{},[185,663,664],{},"user",[293,666,667,585,670,585,673,676],{},[185,668,669],{},"id",[185,671,672],{},"email",[185,674,675],{},"ip_address",": se ne tiene solo un hash",[272,678,679,696],{},[293,680,681,585,684,585,687,585,690,585,693],{},[185,682,683],{},"request",[185,685,686],{},"breadcrumbs",[185,688,689],{},"tags",[185,691,692],{},"extra",[185,694,695],{},"contexts",[293,697,698,699],{},"facoltativi; i valori sotto chiavi sensibili diventano ",[185,700,701],{},"[FILTERED]",[272,703,704,709],{},[293,705,706],{},[185,707,708],{},"trace_id",[293,710,711],{},"collega l'errore ai log della stessa richiesta",[272,713,714,719],{},[293,715,716],{},[185,717,718],{},"fingerprint",[293,720,721],{},"una lista che sostituisce il modo in cui gli errori si raggruppano",[161,723,724],{},"Gli errori si raggruppano per tipo di eccezione e punto del codice, non per il testo del messaggio.",[165,726,728],{"id":727},"mandare-log","Mandare log",[230,730,732],{"className":232,"code":731,"language":234,"meta":235,"style":235},"curl -X POST https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Flogs \\\n  -H \"Authorization: Bearer $CYI_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '[\n    { \"timestamp\": \"2026-10-03T10:15:30Z\", \"level\": \"info\", \"message\": \"order charged\",\n      \"logger\": \"billing\", \"attributes\": { \"order_id\": 7 } }\n  ]'\n",[185,733,734,751,763,771,778,783,788],{"__ignoreMap":235},[239,735,736,738,740,742,744,746,749],{"class":241,"line":8},[239,737,415],{"class":244},[239,739,419],{"class":418},[239,741,422],{"class":248},[239,743,425],{"class":248},[239,745,429],{"class":428},[239,747,748],{"class":248},"\u002Flogs",[239,750,435],{"class":418},[239,752,753,755,757,759,761],{"class":241,"line":15},[239,754,440],{"class":418},[239,756,443],{"class":248},[239,758,446],{"class":428},[239,760,449],{"class":248},[239,762,435],{"class":418},[239,764,765,767,769],{"class":241,"line":20},[239,766,440],{"class":418},[239,768,458],{"class":248},[239,770,435],{"class":418},[239,772,773,775],{"class":241,"line":25},[239,774,465],{"class":418},[239,776,777],{"class":248}," '[\n",[239,779,780],{"class":241,"line":30},[239,781,782],{"class":248},"    { \"timestamp\": \"2026-10-03T10:15:30Z\", \"level\": \"info\", \"message\": \"order charged\",\n",[239,784,785],{"class":241,"line":35},[239,786,787],{"class":248},"      \"logger\": \"billing\", \"attributes\": { \"order_id\": 7 } }\n",[239,789,790],{"class":241,"line":41},[239,791,792],{"class":248},"  ]'\n",[266,794,795,803],{},[269,796,797],{},[272,798,799,801],{},[275,800,547],{},[275,802,550],{},[288,804,805,817,838,847,857,867],{},[272,806,807,811],{},[293,808,809],{},[185,810,632],{},[293,812,813,816],{},[180,814,815],{},"obbligatorio",", non vuoto. Si salva così come lo mandi: non metterci segreti",[272,818,819,823],{},[293,820,821],{},[185,822,579],{},[293,824,825,585,827,585,829,585,831,595,833,835,836],{},[185,826,584],{},[185,828,588],{},[185,830,591],{},[185,832,594],{},[185,834,598],{},"; qualsiasi altro valore diventa ",[185,837,588],{},[272,839,840,844],{},[293,841,842],{},[185,843,569],{},[293,845,846],{},"ISO 8601 o secondi dal 1970",[272,848,849,854],{},[293,850,851],{},[185,852,853],{},"logger",[293,855,856],{},"il nome della parte della tua app che l'ha scritto",[272,858,859,864],{},[293,860,861],{},[185,862,863],{},"attributes",[293,865,866],{},"un oggetto qualsiasi; i valori sotto chiavi sensibili vengono filtrati",[272,868,869,879],{},[293,870,871,585,873,585,875,585,877],{},[185,872,559],{},[185,874,708],{},[185,876,645],{},[185,878,648],{},[293,880,657],{},[165,882,884],{"id":883},"mandare-campioni-di-prestazioni","Mandare campioni di prestazioni",[230,886,888],{"className":232,"code":887,"language":234,"meta":235,"style":235},"curl -X POST https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Fmetrics \\\n  -H \"Authorization: Bearer $CYI_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '[\n    { \"kind\": \"slow_query\", \"duration_ms\": 812.4,\n      \"sql\": \"SELECT * FROM orders WHERE id = 7\", \"environment\": \"production\" },\n    { \"kind\": \"slow_method\", \"duration_ms\": 240.0, \"label\": \"Invoice#render\" }\n  ]'\n",[185,889,890,907,919,927,933,938,943,948],{"__ignoreMap":235},[239,891,892,894,896,898,900,902,905],{"class":241,"line":8},[239,893,415],{"class":244},[239,895,419],{"class":418},[239,897,422],{"class":248},[239,899,425],{"class":248},[239,901,429],{"class":428},[239,903,904],{"class":248},"\u002Fmetrics",[239,906,435],{"class":418},[239,908,909,911,913,915,917],{"class":241,"line":15},[239,910,440],{"class":418},[239,912,443],{"class":248},[239,914,446],{"class":428},[239,916,449],{"class":248},[239,918,435],{"class":418},[239,920,921,923,925],{"class":241,"line":20},[239,922,440],{"class":418},[239,924,458],{"class":248},[239,926,435],{"class":418},[239,928,929,931],{"class":241,"line":25},[239,930,465],{"class":418},[239,932,777],{"class":248},[239,934,935],{"class":241,"line":30},[239,936,937],{"class":248},"    { \"kind\": \"slow_query\", \"duration_ms\": 812.4,\n",[239,939,940],{"class":241,"line":35},[239,941,942],{"class":248},"      \"sql\": \"SELECT * FROM orders WHERE id = 7\", \"environment\": \"production\" },\n",[239,944,945],{"class":241,"line":41},[239,946,947],{"class":248},"    { \"kind\": \"slow_method\", \"duration_ms\": 240.0, \"label\": \"Invoice#render\" }\n",[239,949,950],{"class":241,"line":52},[239,951,792],{"class":248},[266,953,954,962],{},[269,955,956],{},[272,957,958,960],{},[275,959,547],{},[275,961,550],{},[288,963,964,985,995,1008,1023,1057,1067],{},[272,965,966,971],{},[293,967,968],{},[185,969,970],{},"kind",[293,972,973,975,976,585,979,595,982],{},[180,974,815],{},": ",[185,977,978],{},"slow_query",[185,980,981],{},"slow_method",[185,983,984],{},"performance_issue",[272,986,987,992],{},[293,988,989],{},[185,990,991],{},"duration_ms",[293,993,994],{},"quanto è durato",[272,996,997,1002],{},[293,998,999],{},[185,1000,1001],{},"sql",[293,1003,1004,1005,1007],{},"per ",[185,1006,978],{},"; numeri e id vengono sostituiti, così le query uguali si raggruppano",[272,1009,1010,1015],{},[293,1011,1012],{},[185,1013,1014],{},"label",[293,1016,1004,1017,1019,1020,1022],{},[185,1018,981],{},"; ",[180,1021,815],{},", è ciò per cui si raggruppano i campioni",[272,1024,1025,1030],{},[293,1026,1027],{},[185,1028,1029],{},"subtype",[293,1031,1004,1032,1019,1034,975,1036,585,1039,585,1042,585,1045,585,1048,585,1051,595,1054],{},[185,1033,984],{},[180,1035,815],{},[185,1037,1038],{},"n_plus_one",[185,1040,1041],{},"slow_request",[185,1043,1044],{},"slow_external_http",[185,1046,1047],{},"high_query_count",[185,1049,1050],{},"jank",[185,1052,1053],{},"repeated_http",[185,1055,1056],{},"rebuild_storm",[272,1058,1059,1064],{},[293,1060,1061],{},[185,1062,1063],{},"sample_id",[293,1065,1066],{},"un tuo id unico (un UUID), per ritentare senza doppioni",[272,1068,1069,1078],{},[293,1070,1071,585,1074,585,1076],{},[185,1072,1073],{},"occurred_at",[185,1075,645],{},[185,1077,708],{},[293,1079,657],{},[165,1081,1083],{"id":1082},"mandare-visite","Mandare visite",[230,1085,1087],{"className":232,"code":1086,"language":234,"meta":235,"style":235},"curl -X POST https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Fpageviews \\\n  -H \"Authorization: Bearer $CYI_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"hostname\": \"www.example.com\", \"path\": \"\u002Fpricing\",\n        \"referrer\": \"https:\u002F\u002Fwww.google.com\u002F\", \"utm_source\": \"newsletter\" }'\n",[185,1088,1089,1106,1118,1126,1133],{"__ignoreMap":235},[239,1090,1091,1093,1095,1097,1099,1101,1104],{"class":241,"line":8},[239,1092,415],{"class":244},[239,1094,419],{"class":418},[239,1096,422],{"class":248},[239,1098,425],{"class":248},[239,1100,429],{"class":428},[239,1102,1103],{"class":248},"\u002Fpageviews",[239,1105,435],{"class":418},[239,1107,1108,1110,1112,1114,1116],{"class":241,"line":15},[239,1109,440],{"class":418},[239,1111,443],{"class":248},[239,1113,446],{"class":428},[239,1115,449],{"class":248},[239,1117,435],{"class":418},[239,1119,1120,1122,1124],{"class":241,"line":20},[239,1121,440],{"class":418},[239,1123,458],{"class":248},[239,1125,435],{"class":418},[239,1127,1128,1130],{"class":241,"line":25},[239,1129,465],{"class":418},[239,1131,1132],{"class":248}," '{ \"hostname\": \"www.example.com\", \"path\": \"\u002Fpricing\",\n",[239,1134,1135],{"class":241,"line":30},[239,1136,1137],{"class":248},"        \"referrer\": \"https:\u002F\u002Fwww.google.com\u002F\", \"utm_source\": \"newsletter\" }'\n",[266,1139,1140,1148],{},[269,1141,1142],{},[272,1143,1144,1146],{},[275,1145,547],{},[275,1147,550],{},[288,1149,1150,1169,1179,1189,1210,1220],{},[272,1151,1152,1160],{},[293,1153,1154,585,1157],{},[185,1155,1156],{},"hostname",[185,1158,1159],{},"path",[293,1161,1162,1165,1166,1168],{},[180,1163,1164],{},"obbligatori",". ",[185,1167,1159],{}," non contiene mai la query string",[272,1170,1171,1176],{},[293,1172,1173],{},[185,1174,1175],{},"name",[293,1177,1178],{},"lascialo fuori per una visita; qualsiasi altro nome è un evento personalizzato",[272,1180,1181,1186],{},[293,1182,1183],{},[185,1184,1185],{},"referrer",[293,1187,1188],{},"se ne tiene solo il nome dell'host",[272,1190,1191,1208],{},[293,1192,1193,585,1196,585,1199,585,1202,585,1205],{},[185,1194,1195],{},"utm_source",[185,1197,1198],{},"utm_medium",[185,1200,1201],{},"utm_campaign",[185,1203,1204],{},"utm_term",[185,1206,1207],{},"utm_content",[293,1209,657],{},[272,1211,1212,1217],{},[293,1213,1214],{},[185,1215,1216],{},"screen_width",[293,1218,1219],{},"in pixel; si salva solo la classe (telefono, tablet, portatile, desktop)",[272,1221,1222,1230],{},[293,1223,1224,585,1226,585,1228],{},[185,1225,559],{},[185,1227,1073],{},[185,1229,645],{},[293,1231,657],{},[161,1233,1234,1235,1237,1238,221],{},"Non si usano cookie. Il visitatore si conta da un hash che cambia ogni giorno e non si può riportare a una persona. Una richiesta che sembra di un bot riceve ",[185,1236,389],{}," con ",[185,1239,1240],{},"accepted: 0",[161,1242,1243,1244,1247,1248,221],{},"Le visite richiedono il token segreto, quindi questo indirizzo si chiama ",[180,1245,1246],{},"dal tuo server",", non dal browser. Per un sito web usa l'",[217,1249,220],{"href":219},[165,1251,1253],{"id":1252},"limiti","Limiti",[266,1255,1256,1266],{},[269,1257,1258],{},[272,1259,1260,1263],{},[275,1261,1262],{},"Limite",[275,1264,1265],{},"Valore",[288,1267,1268,1276,1283,1291,1299,1307,1315],{},[272,1269,1270,1273],{},[293,1271,1272],{},"Log in una richiesta",[293,1274,1275],{},"1000",[272,1277,1278,1281],{},[293,1279,1280],{},"Campioni di prestazioni in una richiesta",[293,1282,1275],{},[272,1284,1285,1288],{},[293,1286,1287],{},"Visite in una richiesta",[293,1289,1290],{},"100",[272,1292,1293,1296],{},[293,1294,1295],{},"Pezzi di registrazione in una richiesta",[293,1297,1298],{},"50",[272,1300,1301,1304],{},[293,1302,1303],{},"Richieste al minuto, errori, log, metriche (per progetto, ognuno)",[293,1305,1306],{},"1200",[272,1308,1309,1312],{},[293,1310,1311],{},"Richieste al minuto, visite, registrazioni (per progetto, ognuna)",[293,1313,1314],{},"600",[272,1316,1317,1320],{},[293,1318,1319],{},"Richieste al minuto da un indirizzo IP, tutta l'API",[293,1321,1322],{},"300",[161,1324,1325,1326,1329,1330,1333,1334,1337],{},"Oltre un limite di dimensione la risposta è ",[185,1327,1328],{},"413"," e non si salva niente. Oltre un limite di frequenza la risposta è ",[185,1331,1332],{},"429"," con l'intestazione ",[185,1335,1336],{},"Retry-After",", in secondi.",[161,1339,1340,1341,1345],{},"Con il ",[217,1342,1344],{"href":1343},"\u002Fit\u002Fdocs\u002Fingest-gateway","gateway di ingest"," acceso, una richiesta può essere al massimo di 5 MB.",[165,1347,1349],{"id":1348},"quando-qualcosa-va-storto","Quando qualcosa va storto",[161,1351,1352],{},"Una risposta di errore è così:",[230,1354,1358],{"className":1355,"code":1356,"language":1357,"meta":235,"style":235},"language-json shiki shiki-themes github-light github-dark","{ \"error\": { \"code\": \"R422-LOG-004\", \"message\": \"…\" } }\n","json",[185,1359,1360],{"__ignoreMap":235},[239,1361,1362,1365,1368,1371,1374,1376,1379,1381,1384,1386,1389],{"class":241,"line":8},[239,1363,1364],{"class":428},"{ ",[239,1366,1367],{"class":418},"\"error\"",[239,1369,1370],{"class":428},": { ",[239,1372,1373],{"class":418},"\"code\"",[239,1375,975],{"class":428},[239,1377,1378],{"class":248},"\"R422-LOG-004\"",[239,1380,585],{"class":428},[239,1382,1383],{"class":418},"\"message\"",[239,1385,975],{"class":428},[239,1387,1388],{"class":248},"\"…\"",[239,1390,1391],{"class":428}," } }\n",[266,1393,1394,1406],{},[269,1395,1396],{},[272,1397,1398,1400,1403],{},[275,1399,286],{},[275,1401,1402],{},"Significa",[275,1404,1405],{},"Rimandare?",[288,1407,1408,1419,1432,1444,1457,1469,1482,1497],{},[272,1409,1410,1414,1416],{},[293,1411,1412],{},[185,1413,389],{},[293,1415,393],{},[293,1417,1418],{},"no",[272,1420,1421,1426,1429],{},[293,1422,1423],{},[185,1424,1425],{},"401",[293,1427,1428],{},"token mancante, sbagliato o revocato",[293,1430,1431],{},"no: correggi il token",[272,1433,1434,1439,1442],{},[293,1435,1436],{},[185,1437,1438],{},"403",[293,1440,1441],{},"il token non può fare questa cosa",[293,1443,1418],{},[272,1445,1446,1451,1454],{},[293,1447,1448],{},[185,1449,1450],{},"404",[293,1452,1453],{},"il progetto nell'indirizzo non è quello del token",[293,1455,1456],{},"no: correggi l'indirizzo",[272,1458,1459,1463,1466],{},[293,1460,1461],{},[185,1462,1328],{},[293,1464,1465],{},"troppi elementi in una richiesta",[293,1467,1468],{},"no: manda gruppi più piccoli",[272,1470,1471,1476,1479],{},[293,1472,1473],{},[185,1474,1475],{},"422",[293,1477,1478],{},"il corpo non è JSON valido, o nessun elemento dentro è valido",[293,1480,1481],{},"no: correggi il corpo",[272,1483,1484,1488,1491],{},[293,1485,1486],{},[185,1487,1332],{},[293,1489,1490],{},"troppe richieste",[293,1492,1493,1494,1496],{},"sì, dopo ",[185,1495,1336],{}," secondi",[272,1498,1499,1514,1517],{},[293,1500,1501,585,1504,585,1507,585,1510,1513],{},[185,1502,1503],{},"500",[185,1505,1506],{},"502",[185,1508,1509],{},"503",[185,1511,1512],{},"504",", o nessuna risposta",[293,1515,1516],{},"l'app è occupata o sta ripartendo",[293,1518,1519],{},"sì, con pause sempre più lunghe",[161,1521,1522,1523,1530],{},"Per ritentare senza doppioni ",[180,1524,1525,1526,595,1528],{},"tieni lo stesso ",[185,1527,559],{},[185,1529,1063],{},": CloseYourIt ignora la copia se il primo tentativo era arrivato. Fanno eccezione i pezzi di registrazione: un pezzo rimandato può essere salvato due volte.",[165,1532,1534],{"id":1533},"rileggere-i-dati","Rileggere i dati",[161,1536,1537],{},"Lo stesso token legge i dati del progetto. Ogni indirizzo restituisce gli ultimi 25 elementi.",[266,1539,1540,1549],{},[269,1541,1542],{},[272,1543,1544,1546],{},[275,1545,280],{},[275,1547,1548],{},"Filtri",[288,1550,1551,1572,1581,1598,1613],{},[272,1552,1553,1558],{},[293,1554,1555],{},[185,1556,1557],{},"GET \u002Fapi\u002Fv1\u002Ferror_groups",[293,1559,1560,975,1563,585,1566,585,1569],{},[185,1561,1562],{},"status",[185,1564,1565],{},"unresolved",[185,1567,1568],{},"resolved",[185,1570,1571],{},"ignored",[272,1573,1574,1579],{},[293,1575,1576],{},[185,1577,1578],{},"GET \u002Fapi\u002Fv1\u002Ferror_groups\u002F\u003Cid>",[293,1580],{},[272,1582,1583,1588],{},[293,1584,1585],{},[185,1586,1587],{},"GET \u002Fapi\u002Fv1\u002Fmetric_groups",[293,1589,1590,975,1592,585,1594,585,1596],{},[185,1591,970],{},[185,1593,978],{},[185,1595,981],{},[185,1597,984],{},[272,1599,1600,1605],{},[293,1601,1602],{},[185,1603,1604],{},"GET \u002Fapi\u002Fv1\u002Flog_entries",[293,1606,1607,585,1609,585,1611],{},[185,1608,579],{},[185,1610,708],{},[185,1612,645],{},[272,1614,1615,1620],{},[293,1616,1617],{},[185,1618,1619],{},"GET \u002Fapi\u002Fv1\u002Fprojects\u002F\u003Cid>\u002Fanalytics",[293,1621,1622,975,1625,585,1628,585,1631,585,1634,1019,1637],{},[185,1623,1624],{},"range",[185,1626,1627],{},"24h",[185,1629,1630],{},"7d",[185,1632,1633],{},"30d",[185,1635,1636],{},"1y",[185,1638,645],{},[230,1640,1642],{"className":232,"code":1641,"language":234,"meta":235,"style":235},"curl -H \"Authorization: Bearer $CYI_TOKEN\" \\\n  \"https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Ferror_groups?status=unresolved\"\n",[185,1643,1644,1659],{"__ignoreMap":235},[239,1645,1646,1648,1651,1653,1655,1657],{"class":241,"line":8},[239,1647,415],{"class":244},[239,1649,1650],{"class":418}," -H",[239,1652,443],{"class":248},[239,1654,446],{"class":428},[239,1656,449],{"class":248},[239,1658,435],{"class":418},[239,1660,1661],{"class":241,"line":15},[239,1662,1663],{"class":248},"  \"https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Ferror_groups?status=unresolved\"\n",[161,1665,1666,1667,1670,1671,1674],{},"Per segnare un errore come risolto: ",[185,1668,1669],{},"PUT \u002Fapi\u002Fv1\u002Ferror_groups\u002F\u003Cid>\u002Fresolution",". Per riaprirlo: ",[185,1672,1673],{},"DELETE"," sullo stesso indirizzo.",[165,1676,1678],{"id":1677},"se-vieni-da-sentry","Se vieni da Sentry",[161,1680,1681,1682,221],{},"Le applicazioni che usano già un SDK di Sentry non hanno bisogno di questa pagina: tengono il loro SDK e cambiano un'impostazione. Vedi ",[217,1683,75],{"href":1684},"\u002Fit\u002Fdocs\u002Fsdk-sentry",[1686,1687,1688],"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);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":235,"searchDepth":15,"depth":15,"links":1690},[1691,1692,1693,1694,1695,1696,1697,1698,1699,1700],{"id":167,"depth":15,"text":168},{"id":263,"depth":15,"text":264},{"id":401,"depth":15,"text":402},{"id":727,"depth":15,"text":728},{"id":883,"depth":15,"text":884},{"id":1082,"depth":15,"text":1083},{"id":1252,"depth":15,"text":1253},{"id":1348,"depth":15,"text":1349},{"id":1533,"depth":15,"text":1534},{"id":1677,"depth":15,"text":1678},"md",{},true,{"title":116,"description":117},"docs\u002Fhttp-api","DJOdLobZ4w80VmdsWcLZU5sNtJjavvYxQcwcj7D5-f8",1791302513751]