[{"data":1,"prerenderedAt":1320},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-telemetry-overview":442,"-hu-telemetry-overview-surround":1315},[4,45,60,81,112,129,146,173,197,213,242,280,357,373,385,404,430],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Kezdő lépések","i-lucide-rocket","\u002Fhu\u002Fgetting-started","hu\u002F1.getting-started",[10,15,20,24,29,34,39],{"title":11,"path":12,"stem":13,"icon":14},"Bevezetés","\u002Fhu\u002Fgetting-started\u002Fintroduction","hu\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Laravelből érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-laravel","hu\u002F1.getting-started\u002F2.coming-from-laravel","i-lucide-arrow-right-left",{"title":21,"path":22,"stem":23,"icon":19},"Symfonyból érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-symfony","hu\u002F1.getting-started\u002F3.coming-from-symfony",{"title":25,"path":26,"stem":27,"icon":28},"Telepítés","\u002Fhu\u002Fgetting-started\u002Finstallation","hu\u002F1.getting-started\u002F4.installation","i-lucide-download",{"title":30,"path":31,"stem":32,"icon":33},"Az első modulod","\u002Fhu\u002Fgetting-started\u002Ffirst-module","hu\u002F1.getting-started\u002F5.first-module","i-lucide-package-plus",{"title":35,"path":36,"stem":37,"icon":38},"Projektstruktúra","\u002Fhu\u002Fgetting-started\u002Fproject-structure","hu\u002F1.getting-started\u002F6.project-structure","i-lucide-folder-tree",{"title":40,"path":41,"stem":42,"icon":43},"A shop mintaalkalmazás","\u002Fhu\u002Fgetting-started\u002Fsample-app","hu\u002F1.getting-started\u002F7.sample-app","i-lucide-shopping-cart",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"queue","i-lucide-layers","\u002Fhu\u002Fqueue","hu\u002F10.queue",[51,56],{"title":52,"path":53,"stem":54,"icon":55},"Áttekintés","\u002Fhu\u002Fqueue\u002Foverview","hu\u002F10.queue\u002F1.overview","i-lucide-list-ordered",{"title":57,"path":58,"stem":59,"icon":47},"Taskok","\u002Fhu\u002Fqueue\u002Ftasks","hu\u002F10.queue\u002F2.tasks",{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":44},"events","i-lucide-workflow","\u002Fhu\u002Fevents","hu\u002F11.events",[66,71,76],{"title":67,"path":68,"stem":69,"icon":70},"Események","\u002Fhu\u002Fevents\u002Foverview","hu\u002F11.events\u002F1.overview","i-lucide-radio",{"title":72,"path":73,"stem":74,"icon":75},"Outbox","\u002Fhu\u002Fevents\u002Foutbox","hu\u002F11.events\u002F2.outbox","i-lucide-inbox",{"title":77,"path":78,"stem":79,"icon":80},"Ütemezés","\u002Fhu\u002Fevents\u002Fscheduler","hu\u002F11.events\u002F3.scheduler","i-lucide-calendar-clock",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":44},"auth","i-lucide-shield-check","\u002Fhu\u002Fauth","hu\u002F12.auth",[87,92,97,102,107],{"title":88,"path":89,"stem":90,"icon":91},"Autentikáció","\u002Fhu\u002Fauth\u002Foverview","hu\u002F12.auth\u002F1.overview","i-lucide-key-round",{"title":93,"path":94,"stem":95,"icon":96},"RBAC","\u002Fhu\u002Fauth\u002Frbac","hu\u002F12.auth\u002F2.rbac","i-lucide-users",{"title":98,"path":99,"stem":100,"icon":101},"Policy-k","\u002Fhu\u002Fauth\u002Fpolicy","hu\u002F12.auth\u002F3.policy","i-lucide-gavel",{"title":103,"path":104,"stem":105,"icon":106},"Az auth önálló használata","\u002Fhu\u002Fauth\u002Fstandalone","hu\u002F12.auth\u002F4.standalone","i-lucide-plug",{"title":108,"path":109,"stem":110,"icon":111},"Social login goth-tal, önállóan","\u002Fhu\u002Fauth\u002Fsocial-standalone","hu\u002F12.auth\u002F5.social-standalone","i-lucide-log-in",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":44},"mail","i-lucide-mail","\u002Fhu\u002Fmail","hu\u002F13.mail",[118,121,125],{"title":52,"path":119,"stem":120,"icon":114},"\u002Fhu\u002Fmail\u002Foverview","hu\u002F13.mail\u002F1.overview",{"title":122,"path":123,"stem":124,"icon":114},"SMTP","\u002Fhu\u002Fmail\u002Fsmtp","hu\u002F13.mail\u002F2.smtp",{"title":126,"path":127,"stem":128,"icon":114},"MJML","\u002Fhu\u002Fmail\u002Fmjml","hu\u002F13.mail\u002F3.mjml",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":44},"notify","i-lucide-bell","\u002Fhu\u002Fnotify","hu\u002F14.notify",[135,138,142],{"title":52,"path":136,"stem":137,"icon":131},"\u002Fhu\u002Fnotify\u002Foverview","hu\u002F14.notify\u002F1.overview",{"title":139,"path":140,"stem":141,"icon":131},"Database csatorna","\u002Fhu\u002Fnotify\u002Fdatabase","hu\u002F14.notify\u002F2.database",{"title":143,"path":144,"stem":145,"icon":131},"Broadcast csatorna","\u002Fhu\u002Fnotify\u002Fbroadcast","hu\u002F14.notify\u002F3.broadcast",{"title":147,"icon":148,"path":149,"stem":150,"children":151,"page":44},"storage","i-lucide-hard-drive","\u002Fhu\u002Fstorage","hu\u002F15.storage",[152,155,159,163,168],{"title":52,"path":153,"stem":154,"icon":148},"\u002Fhu\u002Fstorage\u002Foverview","hu\u002F15.storage\u002F1.overview",{"title":156,"path":157,"stem":158},"Disk API","\u002Fhu\u002Fstorage\u002Fdisk-api","hu\u002F15.storage\u002F2.disk-api",{"title":160,"path":161,"stem":162,"icon":148},"Memória és helyi lemez","\u002Fhu\u002Fstorage\u002Flocal","hu\u002F15.storage\u002F3.local",{"title":164,"path":165,"stem":166,"icon":167},"S3","\u002Fhu\u002Fstorage\u002Fs3","hu\u002F15.storage\u002F4.s3","i-lucide-cloud",{"title":169,"path":170,"stem":171,"icon":172},"Tesztelés","\u002Fhu\u002Fstorage\u002Ftesting","hu\u002F15.storage\u002F5.testing","i-lucide-flask-conical",{"title":174,"icon":175,"path":176,"stem":177,"children":178,"page":44},"telemetry","i-lucide-activity","\u002Fhu\u002Ftelemetry","hu\u002F16.telemetry",[179,182,187,192],{"title":52,"path":180,"stem":181,"icon":175},"\u002Fhu\u002Ftelemetry\u002Foverview","hu\u002F16.telemetry\u002F1.overview",{"title":183,"path":184,"stem":185,"icon":186},"Logolás","\u002Fhu\u002Ftelemetry\u002Flogging","hu\u002F16.telemetry\u002F2.logging","i-lucide-scroll-text",{"title":188,"path":189,"stem":190,"icon":191},"OpenTelemetry","\u002Fhu\u002Ftelemetry\u002Fopentelemetry","hu\u002F16.telemetry\u002F3.opentelemetry","i-lucide-radar",{"title":193,"path":194,"stem":195,"icon":196},"Sentry","\u002Fhu\u002Ftelemetry\u002Fsentry","hu\u002F16.telemetry\u002F4.sentry","i-lucide-bug",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":44},"Referencia","i-lucide-book-open","\u002Fhu\u002Freference","hu\u002F17.reference",[203,208],{"title":204,"path":205,"stem":206,"icon":207},"Konfiguráció","\u002Fhu\u002Freference\u002Fconfiguration","hu\u002F17.reference\u002F1.configuration","i-lucide-settings",{"title":209,"path":210,"stem":211,"icon":212},"Külső függőségek","\u002Fhu\u002Freference\u002Fdependencies","hu\u002F17.reference\u002F2.dependencies","i-lucide-package",{"title":214,"icon":215,"path":216,"stem":217,"children":218,"page":44},"Koncepciók","i-lucide-lightbulb","\u002Fhu\u002Fconcepts","hu\u002F2.concepts",[219,223,228,232,237],{"title":220,"path":221,"stem":222,"icon":47},"Architektúra","\u002Fhu\u002Fconcepts\u002Farchitecture","hu\u002F2.concepts\u002F1.architecture",{"title":224,"path":225,"stem":226,"icon":227},"Hibamodell","\u002Fhu\u002Fconcepts\u002Ferror-model","hu\u002F2.concepts\u002F2.error-model","i-lucide-shield-alert",{"title":204,"path":229,"stem":230,"icon":231},"\u002Fhu\u002Fconcepts\u002Fconfiguration","hu\u002F2.concepts\u002F3.configuration","i-lucide-settings-2",{"title":233,"path":234,"stem":235,"icon":236},"Codegen pipeline","\u002Fhu\u002Fconcepts\u002Fcodegen-pipeline","hu\u002F2.concepts\u002F4.codegen-pipeline","i-lucide-file-json",{"title":238,"path":239,"stem":240,"icon":241},"Design patternek","\u002Fhu\u002Fconcepts\u002Fdesign-patterns","hu\u002F2.concepts\u002F5.design-patterns","i-lucide-puzzle",{"title":243,"icon":244,"path":245,"stem":246,"children":247,"page":44},"A kit","i-lucide-box","\u002Fhu\u002Fkit","hu\u002F3.kit",[248,252,257,262,267,271,276],{"title":249,"path":250,"stem":251,"icon":244},"A kit áttekintése","\u002Fhu\u002Fkit\u002Foverview","hu\u002F3.kit\u002F1.overview",{"title":253,"path":254,"stem":255,"icon":256},"Alkalmazás-életciklus","\u002Fhu\u002Fkit\u002Fapp","hu\u002F3.kit\u002F2.app","i-lucide-power",{"title":258,"path":259,"stem":260,"icon":261},"Szerver","\u002Fhu\u002Fkit\u002Fserver","hu\u002F3.kit\u002F3.server","i-lucide-server",{"title":263,"path":264,"stem":265,"icon":266},"Worker","\u002Fhu\u002Fkit\u002Fworker","hu\u002F3.kit\u002F4.worker","i-lucide-cog",{"title":268,"path":269,"stem":270,"icon":70},"Realtime","\u002Fhu\u002Fkit\u002Frealtime","hu\u002F3.kit\u002F5.realtime",{"title":272,"path":273,"stem":274,"icon":275},"Migrációk","\u002Fhu\u002Fkit\u002Fmigrations","hu\u002F3.kit\u002F6.migrations","i-lucide-file-stack",{"title":277,"path":278,"stem":279,"icon":111},"Social login","\u002Fhu\u002Fkit\u002Fsocial-login","hu\u002F3.kit\u002F7.social-login",{"title":281,"icon":282,"path":283,"stem":284,"children":285,"page":44},"CLI referencia","i-lucide-terminal","\u002Fhu\u002Fcli","hu\u002F4.cli",[286,289,294,299,304,309,314,319,324,329,334,338,343,348,352],{"title":52,"path":287,"stem":288,"icon":282},"\u002Fhu\u002Fcli\u002Foverview","hu\u002F4.cli\u002F1.overview",{"title":290,"path":291,"stem":292,"icon":293},"add db","\u002Fhu\u002Fcli\u002Fadd-db","hu\u002F4.cli\u002F10.add-db","i-lucide-database-zap",{"title":295,"path":296,"stem":297,"icon":298},"add compose \u002F add docker","\u002Fhu\u002Fcli\u002Fadd-compose","hu\u002F4.cli\u002F11.add-compose","i-lucide-container",{"title":300,"path":301,"stem":302,"icon":303},"add mail","\u002Fhu\u002Fcli\u002Fadd-mail","hu\u002F4.cli\u002F12.add-mail","i-lucide-mail-plus",{"title":305,"path":306,"stem":307,"icon":308},"add notification","\u002Fhu\u002Fcli\u002Fadd-notification","hu\u002F4.cli\u002F13.add-notification","i-lucide-bell-plus",{"title":310,"path":311,"stem":312,"icon":313},"add realtime","\u002Fhu\u002Fcli\u002Fadd-realtime","hu\u002F4.cli\u002F14.add-realtime","i-lucide-radio-tower",{"title":315,"path":316,"stem":317,"icon":318},"add seeder","\u002Fhu\u002Fcli\u002Fadd-seeder","hu\u002F4.cli\u002F15.add-seeder","i-lucide-sprout",{"title":320,"path":321,"stem":322,"icon":323},"new project","\u002Fhu\u002Fcli\u002Fnew-project","hu\u002F4.cli\u002F2.new-project","i-lucide-folder-plus",{"title":325,"path":326,"stem":327,"icon":328},"new module","\u002Fhu\u002Fcli\u002Fnew-module","hu\u002F4.cli\u002F3.new-module","i-lucide-blocks",{"title":330,"path":331,"stem":332,"icon":333},"add surface","\u002Fhu\u002Fcli\u002Fadd-surface","hu\u002F4.cli\u002F4.add-surface","i-lucide-layers-2",{"title":335,"path":336,"stem":337,"icon":244},"add core","\u002Fhu\u002Fcli\u002Fadd-core","hu\u002F4.cli\u002F5.add-core",{"title":339,"path":340,"stem":341,"icon":342},"add handler","\u002Fhu\u002Fcli\u002Fadd-handler","hu\u002F4.cli\u002F6.add-handler","i-lucide-webhook",{"title":344,"path":345,"stem":346,"icon":347},"new migration","\u002Fhu\u002Fcli\u002Fnew-migration","hu\u002F4.cli\u002F7.new-migration","i-lucide-file-plus",{"title":349,"path":350,"stem":351,"icon":266},"worker generátorok","\u002Fhu\u002Fcli\u002Fworker-generators","hu\u002F4.cli\u002F8.worker-generators",{"title":353,"path":354,"stem":355,"icon":356},"upgrade templates","\u002Fhu\u002Fcli\u002Fupgrade-templates","hu\u002F4.cli\u002F9.upgrade-templates","i-lucide-refresh-cw",{"title":358,"icon":227,"path":359,"stem":360,"children":361,"page":44},"errs","\u002Fhu\u002Ferrs","hu\u002F5.errs",[362,365,369],{"title":52,"path":363,"stem":364,"icon":227},"\u002Fhu\u002Ferrs\u002Foverview","hu\u002F5.errs\u002F1.overview",{"title":366,"path":367,"stem":368},"API","\u002Fhu\u002Ferrs\u002Fapi","hu\u002F5.errs\u002F2.api",{"title":370,"path":371,"stem":372,"icon":227},"Integráció","\u002Fhu\u002Ferrs\u002Fintegration","hu\u002F5.errs\u002F3.integration",{"title":374,"icon":231,"path":375,"stem":376,"children":377,"page":44},"envconf","\u002Fhu\u002Fenvconf","hu\u002F6.envconf",[378,381],{"title":52,"path":379,"stem":380,"icon":231},"\u002Fhu\u002Fenvconf\u002Foverview","hu\u002F6.envconf\u002F1.overview",{"title":382,"path":383,"stem":384},"Receptek","\u002Fhu\u002Fenvconf\u002Frecipes","hu\u002F6.envconf\u002F2.recipes",{"title":386,"icon":387,"path":388,"stem":389,"children":390,"page":44},"httperr","i-lucide-globe","\u002Fhu\u002Fhttperr","hu\u002F7.httperr",[391,394,399],{"title":52,"path":392,"stem":393,"icon":387},"\u002Fhu\u002Fhttperr\u002Foverview","hu\u002F7.httperr\u002F1.overview",{"title":395,"path":396,"stem":397,"icon":398},"Hibaválaszok","\u002Fhu\u002Fhttperr\u002Ferror-responses","hu\u002F7.httperr\u002F2.error-responses","i-lucide-octagon-alert",{"title":400,"path":401,"stem":402,"icon":403},"Validáció","\u002Fhu\u002Fhttperr\u002Fvalidation","hu\u002F7.httperr\u002F3.validation","i-lucide-badge-check",{"title":405,"icon":406,"path":407,"stem":408,"children":409,"page":44},"dbx","i-lucide-database","\u002Fhu\u002Fdbx","hu\u002F8.dbx",[410,413,417,421,426],{"title":52,"path":411,"stem":412,"icon":406},"\u002Fhu\u002Fdbx\u002Foverview","hu\u002F8.dbx\u002F1.overview",{"title":414,"path":415,"stem":416,"icon":106},"pgx","\u002Fhu\u002Fdbx\u002Fpg","hu\u002F8.dbx\u002F2.pg",{"title":418,"path":419,"stem":420,"icon":47},"bun","\u002Fhu\u002Fdbx\u002Fbunx","hu\u002F8.dbx\u002F3.bunx",{"title":422,"path":423,"stem":424,"icon":425},"Tranzakciók","\u002Fhu\u002Fdbx\u002Ftransactions","hu\u002F8.dbx\u002F4.transactions","i-lucide-git-merge",{"title":427,"path":428,"stem":429,"icon":318},"Seederek","\u002Fhu\u002Fdbx\u002Fseed","hu\u002F8.dbx\u002F5.seed",{"title":431,"icon":55,"path":432,"stem":433,"children":434,"page":44},"paginate","\u002Fhu\u002Fpaginate","hu\u002F9.paginate",[435,438],{"title":52,"path":436,"stem":437,"icon":55},"\u002Fhu\u002Fpaginate\u002Foverview","hu\u002F9.paginate\u002F1.overview",{"title":439,"path":440,"stem":441,"icon":19},"Cursor-lapozás","\u002Fhu\u002Fpaginate\u002Fcursor","hu\u002F9.paginate\u002F2.cursor",{"id":443,"title":52,"body":444,"description":1308,"extension":1309,"links":1310,"meta":1311,"navigation":1312,"path":180,"seo":1313,"stem":181,"__hash__":1314},"docs_hu\u002Fhu\u002F16.telemetry\u002F1.overview.md",{"type":445,"value":446,"toc":1299},"minimark",[447,495,499,538,610,616,620,623,707,720,794,800,871,890,894,897,950,957,961,1056,1071,1084,1088,1108,1115,1119,1122,1240,1252,1267,1271,1295],[448,449,450,451,454,455,458,459,458,462,458,465,468,469,473,474,477,478,481,482,485,486,490,491,494],"p",{},"A ",[452,453,174],"code",{}," önálló Go modul (",[452,456,457],{},"github.com\u002Fgp-system\u002Ftelemetry",", +",[452,460,461],{},"telemetry\u002Flogx",[452,463,464],{},"telemetry\u002Fotelx",[452,466,467],{},"telemetry\u002Fsentryx","): a logolást, a mérést és a hibariportolást ",[470,471,472],"strong",{},"egyetlen hívás"," bootolja. Egy generált projektben ezt a hívást sem te írod: a ",[452,475,476],{},"server.Run"," és a ",[452,479,480],{},"worker.Run"," első dolga a ",[452,483,484],{},"telemetry.Setup",". Amikor a ",[487,488,489],"a",{"href":41},"shop"," ",[452,492,493],{},"main.go","-ja elindul, a logolás, a trace-elés és a hibariportolás már be van kötve, mielőtt az első kérés beérkezne.",[496,497,25],"h2",{"id":498},"telepítés",[500,501,506],"pre",{"className":502,"code":503,"language":504,"meta":505,"style":505},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","go get github.com\u002Fgp-system\u002Ftelemetry@v0.1.0 # a kit is ezt a taget használja\ngo get github.com\u002Fgp-system\u002Ftelemetry@latest\n","sh","",[452,507,508,528],{"__ignoreMap":505},[509,510,513,517,521,524],"span",{"class":511,"line":512},"line",1,[509,514,516],{"class":515},"sBMFI","go",[509,518,520],{"class":519},"sfazB"," get",[509,522,523],{"class":519}," github.com\u002Fgp-system\u002Ftelemetry@v0.1.0",[509,525,527],{"class":526},"sHwdD"," # a kit is ezt a taget használja\n",[509,529,531,533,535],{"class":511,"line":530},2,[509,532,516],{"class":515},[509,534,520],{"class":519},[509,536,537],{"class":519}," github.com\u002Fgp-system\u002Ftelemetry@latest\n",[539,540,541,554],"table",{},[542,543,544],"thead",{},[545,546,547,551],"tr",{},[548,549,550],"th",{},"Import-út",[548,552,553],{},"Mit ad hozzá",[555,556,557,571,590,600],"tbody",{},[545,558,559,564],{},[560,561,562],"td",{},[452,563,457],{},[560,565,566,567,570],{},"a facade-ot: a ",[452,568,569],{},"Setup"," egy hívásba komponálja a lenti hármat",[545,572,573,583],{},[560,574,575,578,579,582],{},[452,576,577],{},"github.com\u002Fgp-system\u002Ftelemetry\u002Flogx"," (+",[452,580,581],{},"\u002Fmonolog",")",[560,584,585,586,589],{},"a ",[452,587,588],{},"slog"," kompozíciót: konzolformátum, szintszűrés, fanout",[545,591,592,597],{},[560,593,594],{},[452,595,596],{},"github.com\u002Fgp-system\u002Ftelemetry\u002Fotelx",[560,598,599],{},"az OpenTelemetry SDK bootstrapjét",[545,601,602,607],{},[560,603,604],{},[452,605,606],{},"github.com\u002Fgp-system\u002Ftelemetry\u002Fsentryx",[560,608,609],{},"az opcionális Sentry-integrációt",[448,611,612,613,615],{},"Egy bináris, aminek csak egy darabra van szüksége, importálhatja önmagában azt az alcsomagot: egy CLI vagy migrátor, ami OTel-trace-elést akar, de Sentryt nem, önmagában importálja a ",[452,614,464],{},"-et, és sosem linkeli be a sentry-go-t.",[496,617,619],{"id":618},"a-telemetry-facade","A telemetry facade",[448,621,622],{},"Három csomag birtokol egy-egy képességet, és egy negyedik komponálja őket:",[539,624,625,638],{},[542,626,627],{},[545,628,629,632,635],{},[548,630,631],{},"Csomag",[548,633,634],{},"Mit birtokol",[548,636,637],{},"Oldal",[555,639,640,661,675,689],{},[545,641,642,651,657],{},[560,643,644,647,648,582],{},[452,645,646],{},"logx"," (+ ",[452,649,650],{},"logx\u002Fmonolog",[560,652,653,654,656],{},"a default ",[452,655,588],{}," logger kompozíciója: konzolformátum, szintszűrés, fanout",[560,658,659],{},[487,660,183],{"href":184},[545,662,663,668,671],{},[560,664,665],{},[452,666,667],{},"otelx",[560,669,670],{},"az OpenTelemetry SDK bootstrapje: trace-ek, metrikák, OTLP log-bridge",[560,672,673],{},[487,674,188],{"href":189},[545,676,677,682,685],{},[560,678,679],{},[452,680,681],{},"sentryx",[560,683,684],{},"az opcionális Sentry-integráció: span-exporter + slog capture handler",[560,686,687],{},[487,688,193],{"href":194},[545,690,691,695,704],{},[560,692,693],{},[452,694,174],{},[560,696,697,700,701,703],{},[470,698,699],{},"a facade, amit a chassis hív"," (a másik hármat egyetlen ",[452,702,569],{},"-ban komponálja)",[560,705,706],{},"ez az oldal",[448,708,450,709,712,713,477,716,719],{},[452,710,711],{},"telemetry.Config"," pontosan az, amit a ",[452,714,715],{},"server.Config.Telemetry",[452,717,718],{},"worker.Config.Telemetry"," mező hordoz:",[500,721,724],{"className":722,"code":723,"language":516,"meta":505,"style":505},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","type Config struct {\n    Otel   otelx.Config   \u002F\u002F OTEL_SERVICE_NAME, OTEL_SERVICE_VERSION, OTEL_DEV_MODE\n    Log    logx.Config    \u002F\u002F LOG_LEVEL, LOG_STDOUT, LOG_FORMAT\n    Sentry sentryx.Config \u002F\u002F SENTRY_DSN, SENTRY_ENVIRONMENT, SENTRY_TRACES, SENTRY_DEBUG\n}\n",[452,725,726,741,758,773,788],{"__ignoreMap":505},[509,727,728,732,735,738],{"class":511,"line":512},[509,729,731],{"class":730},"sMK4o","type",[509,733,734],{"class":515}," Config",[509,736,737],{"class":730}," struct",[509,739,740],{"class":730}," {\n",[509,742,743,747,749,752,755],{"class":511,"line":530},[509,744,746],{"class":745},"sTEyZ","    Otel   ",[509,748,667],{"class":515},[509,750,751],{"class":730},".",[509,753,754],{"class":515},"Config",[509,756,757],{"class":526},"   \u002F\u002F OTEL_SERVICE_NAME, OTEL_SERVICE_VERSION, OTEL_DEV_MODE\n",[509,759,761,764,766,768,770],{"class":511,"line":760},3,[509,762,763],{"class":745},"    Log    ",[509,765,646],{"class":515},[509,767,751],{"class":730},[509,769,754],{"class":515},[509,771,772],{"class":526},"    \u002F\u002F LOG_LEVEL, LOG_STDOUT, LOG_FORMAT\n",[509,774,776,779,781,783,785],{"class":511,"line":775},4,[509,777,778],{"class":745},"    Sentry ",[509,780,681],{"class":515},[509,782,751],{"class":730},[509,784,754],{"class":515},[509,786,787],{"class":526}," \u002F\u002F SENTRY_DSN, SENTRY_ENVIRONMENT, SENTRY_TRACES, SENTRY_DEBUG\n",[509,789,791],{"class":511,"line":790},5,[509,792,793],{"class":730},"}\n",[448,795,796,797,751],{},"Prefix nélkül ágyazódik be, így az env-változók a standard neveiken töltődnek: a deployment ugyanúgy konfigurálja a service-t, mint bármely más OTel-instrumentált appot. A teljes változólista: ",[487,798,799],{"href":205},"Konfiguráció-referencia",[500,801,803],{"className":722,"code":802,"language":516,"meta":505,"style":505},"func Setup(ctx context.Context, cfg Config) (shutdown func(context.Context) error, err error)\n",[452,804,805],{"__ignoreMap":505},[509,806,807,810,814,817,821,824,826,829,832,835,837,839,842,845,848,851,853,855,857,861,863,866,868],{"class":511,"line":512},[509,808,809],{"class":730},"func",[509,811,813],{"class":812},"s2Zo4"," Setup",[509,815,816],{"class":730},"(",[509,818,820],{"class":819},"sHdIc","ctx",[509,822,823],{"class":515}," context",[509,825,751],{"class":730},[509,827,828],{"class":515},"Context",[509,830,831],{"class":730},",",[509,833,834],{"class":819}," cfg",[509,836,734],{"class":515},[509,838,582],{"class":730},[509,840,841],{"class":730}," (",[509,843,844],{"class":819},"shutdown",[509,846,847],{"class":730}," func(",[509,849,850],{"class":515},"context",[509,852,751],{"class":730},[509,854,828],{"class":515},[509,856,582],{"class":730},[509,858,860],{"class":859},"spNyl"," error",[509,862,831],{"class":730},[509,864,865],{"class":819}," err",[509,867,860],{"class":859},[509,869,870],{"class":730},")\n",[448,872,450,873,875,876,477,878,880,881,883,884,886,887,751],{},[452,874,174],{}," az egyetlen csomag, ami mindhárom építőkockát importálja: az ",[452,877,667],{},[452,879,681],{}," nem tud egymásról, a ",[452,882,646],{},"-nek pedig nincs véleménye arról, hova megy még egy logrekord. Ez nem kozmetika: egy nem-chassis bináris (egy CLI, egy migrátor), ami csak az ",[452,885,667],{},"-et használja, ",[470,888,889],{},"soha nem linkeli be a sentry-go-t",[496,891,893],{"id":892},"mi-történik-a-setup-ban","Mi történik a Setup-ban",[448,895,896],{},"A sorrend számít, mert a részek egymásba drótozódnak:",[898,899,900,915,929],"ol",{},[901,902,903,906,907,910,911,914],"li",{},[470,904,905],{},"Sentry először."," A ",[452,908,909],{},"sentryx.Setup"," fut le elsőnek: ",[452,912,913],{},"SENTRY_DSN"," nélkül minden hookja no-op, és minden pontosan úgy viselkedik, mintha a Sentry nem is létezne.",[901,916,917,920,921,924,925,928],{},[470,918,919],{},"OTel, a Sentry span-exporterével."," Az ",[452,922,923],{},"otelx.Setup"," az ",[452,926,927],{},"otelx.WithSpanExporter(sentryHandle.SpanExporter())"," opcióval kapja meg a Sentry exporterét: ugyanazok a spanek egy plusz batcherrel a Sentrybe is mennek, így egy hiba a teljes request-trace-hez linkelődik.",[901,930,931,937,938,941,942,945,946,949],{},[470,932,933,934,751],{},"Egy ",[452,935,936],{},"slog.Default()"," A konzol-handler (dev módban mindig, prodban ",[452,939,940],{},"LOG_STDOUT=true"," esetén), az OTLP log-bridge és a Sentry capture handler a ",[452,943,944],{},"logx.Fanout","-tal egyetlen handlerré áll össze, elé egy ",[452,947,948],{},"logx.LevelFilter(LOG_LEVEL, ...)"," kerül, és az egész lesz a processz default loggere.",[448,951,952,953,956],{},"Vagyis egyetlen ",[452,954,955],{},"slog.InfoContext(ctx, ...)"," hívás a service-edben egyszerre: olvasható konzolsor (dev), OTLP-n exportált, trace-korrelált logrekord (prod), és hiba esetén Sentry event breadcrumb-nyomvonallal.",[496,958,960],{"id":959},"mit-kapsz-nulla-konfigurációval","Mit kapsz nulla konfigurációval",[539,962,963,978],{},[542,964,965],{},[545,966,967,969,975],{},[548,968],{},[548,970,971,972,582],{},"Dev (",[452,973,974],{},"OTEL_DEV_MODE=true",[548,976,977],{},"Prod (default)",[555,979,980,997,1015,1026,1040],{},[545,981,982,985,991],{},[560,983,984],{},"Konzollog",[560,986,987,988,582],{},"mindig, olvasható szöveg (vagy ",[487,989,990],{"href":184},"Monolog-formátum",[560,992,993,994,996],{},"csak ",[452,995,940],{}," esetén, JSON",[545,998,999,1002,1008],{},[560,1000,1001],{},"Trace-ek \u002F metrikák",[560,1003,1004,1005],{},"nincs exporter, ",[470,1006,1007],{},"nem kell collector",[560,1009,1010,1011,1014],{},"OTLP a standard ",[452,1012,1013],{},"OTEL_*"," változók szerint",[545,1016,1017,1020,1023],{},[560,1018,1019],{},"OTLP log-bridge",[560,1021,1022],{},"nincs",[560,1024,1025],{},"van (a logok is a collectorba mennek)",[545,1027,1028,1030,1036],{},[560,1029,193],{},[560,1031,1032,1033,1035],{},"ki (",[452,1034,913],{}," üres)",[560,1037,1032,1038,1035],{},[452,1039,913],{},[545,1041,1042,1047,1050],{},[560,1043,1044],{},[452,1045,1046],{},"OTEL_SERVICE_NAME",[560,1048,1049],{},"opcionális",[560,1051,1052,1055],{},[470,1053,1054],{},"kötelező"," (a Setup hibával áll le nélküle)",[1057,1058,1059,1060,1062,1063,1066,1067,1070],"tip",{},"A lokális fejlesztés ennyi: ",[452,1061,974],{},". A service olvasható logokkal és request loggerrel bootol, infrastruktúra nélkül. Tedd mellé a ",[452,1064,1065],{},"LOG_FORMAT=monolog","-ot, és a konzol PHP-ról ismerős, ",[487,1068,1069],{"href":184},"Monolog-stílusú sorokat"," ír, kattintható stack trace-szel.",[448,1072,1073,1074,1076,1077,1080,1081,751],{},"Egy kivétel van: ha dev módban ",[452,1075,913],{},"-t állítasz be, a kit egy Sentry-only tracer providert épít, így ",[470,1078,1079],{},"collector nélkül, lokálisan is"," teljes trace-t és hibát kapsz a Sentryben; a részletek a ",[487,1082,1083],{"href":194},"Sentry oldalon",[496,1085,1087],{"id":1086},"a-flush-a-legvégén-fut","A flush a legvégén fut",[448,1089,450,1090,1092,1093,490,1096,1099,1100,1103,1104,1107],{},[452,1091,569],{}," visszatérési értéke egy aggregált shutdown-függvény, amit a chassis az ",[487,1094,1095],{"href":254},"alkalmazás-életciklus",[452,1097,1098],{},"Flush"," lépéseként, ",[470,1101,1102],{},"legutolsóként"," futtat, a HTTP-drain és az összes ",[452,1105,1106],{},"WithCloser"," closered után. Ez a sorrend nem véletlen: a closerek maguk is bocsátanak ki telemetriát (egy pool-lezárás logja, egy cleanup közben nyitott span), és ezek csak akkor érnek célba, ha az exporterek még élnek.",[448,1109,1110,1111,1114],{},"A shutdown-on belül is van sorrend: előbb az OTel providerek állnak le, és ",[470,1112,1113],{},"a Sentry flushol legutoljára",", így a providerek leállása közben keletkező eventek is kimennek.",[496,1116,1118],{"id":1117},"ha-nem-kell-vagy-magad-akarod","Ha nem kell, vagy magad akarod",[448,1120,1121],{},"Mindhárom chassis-nak van kikapcsolója:",[500,1123,1125],{"className":722,"code":1124,"language":516,"meta":505,"style":505},"server.Run(ctx, cfg.Server, register, server.WithoutTelemetry())\nworker.Run(ctx, cfg.Worker, register, worker.WithoutTelemetry())\nrealtime.Run(ctx, cfg.Realtime, register, realtime.WithoutTelemetry())\n",[452,1126,1127,1168,1204],{"__ignoreMap":505},[509,1128,1129,1132,1134,1137,1139,1141,1143,1145,1147,1150,1152,1155,1157,1160,1162,1165],{"class":511,"line":512},[509,1130,1131],{"class":745},"server",[509,1133,751],{"class":730},[509,1135,1136],{"class":812},"Run",[509,1138,816],{"class":730},[509,1140,820],{"class":745},[509,1142,831],{"class":730},[509,1144,834],{"class":745},[509,1146,751],{"class":730},[509,1148,1149],{"class":745},"Server",[509,1151,831],{"class":730},[509,1153,1154],{"class":745}," register",[509,1156,831],{"class":730},[509,1158,1159],{"class":745}," server",[509,1161,751],{"class":730},[509,1163,1164],{"class":812},"WithoutTelemetry",[509,1166,1167],{"class":730},"())\n",[509,1169,1170,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1198,1200,1202],{"class":511,"line":530},[509,1171,1172],{"class":745},"worker",[509,1174,751],{"class":730},[509,1176,1136],{"class":812},[509,1178,816],{"class":730},[509,1180,820],{"class":745},[509,1182,831],{"class":730},[509,1184,834],{"class":745},[509,1186,751],{"class":730},[509,1188,263],{"class":745},[509,1190,831],{"class":730},[509,1192,1154],{"class":745},[509,1194,831],{"class":730},[509,1196,1197],{"class":745}," worker",[509,1199,751],{"class":730},[509,1201,1164],{"class":812},[509,1203,1167],{"class":730},[509,1205,1206,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1234,1236,1238],{"class":511,"line":760},[509,1207,1208],{"class":745},"realtime",[509,1210,751],{"class":730},[509,1212,1136],{"class":812},[509,1214,816],{"class":730},[509,1216,820],{"class":745},[509,1218,831],{"class":730},[509,1220,834],{"class":745},[509,1222,751],{"class":730},[509,1224,268],{"class":745},[509,1226,831],{"class":730},[509,1228,1154],{"class":745},[509,1230,831],{"class":730},[509,1232,1233],{"class":745}," realtime",[509,1235,751],{"class":730},[509,1237,1164],{"class":812},[509,1239,1167],{"class":730},[448,1241,450,1242,1244,1245,1247,1248,1251],{},[452,1243,1164],{}," a ",[452,1246,484],{},"-ot ",[470,1249,1250],{},"és"," a HTTP-oldali OTel middleware-t is kihagyja. Tesztekben ez az alapfelállás (nincs globális állapot-piszkálás), élesben pedig akkor kell, ha a processz maga konfigurálja a telemetriáját: például egy már meglévő OTel-setupba illeszkedik.",[448,1253,1254,1255,1257,1258,1261,1262,1266],{},"Nem-chassis processzben (CLI, cron-szerű egyszeri futás) a ",[452,1256,484],{}," közvetlenül is hívható: ugyanazt a kompozíciót kapod, csak a shutdown-függvényt neked kell ",[452,1259,1260],{},"defer","-elni. Ha a Sentry sem kell, az ",[487,1263,1264],{"href":189},[452,1265,923],{}," önmagában is megáll.",[496,1268,1270],{"id":1269},"merre-tovább","Merre tovább",[1272,1273,1274,1282,1287],"ul",{},[901,1275,1276,1278,1279,1281],{},[487,1277,183],{"href":184},": a ",[452,1280,588],{}," kompozíció és a Monolog-formátumú dev konzol, PHP-s szemmel a leglátványosabb rész.",[901,1283,1284,1286],{},[487,1285,188],{"href":189},": mit instrumentál a kit magától, és hogyan áll össze a shop „kövesd a rendelést\" trace-e.",[901,1288,1289,1291,1292,1294],{},[487,1290,193],{"href":194},": hibariportolás ",[452,1293,358],{},"-kód szerinti issue-csoportosítással, az OTel tetején.",[1296,1297,1298],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":505,"searchDepth":530,"depth":530,"links":1300},[1301,1302,1303,1304,1305,1306,1307],{"id":498,"depth":530,"text":25},{"id":618,"depth":530,"text":619},{"id":892,"depth":530,"text":893},{"id":959,"depth":530,"text":960},{"id":1086,"depth":530,"text":1087},{"id":1117,"depth":530,"text":1118},{"id":1269,"depth":530,"text":1270},"A telemetry facade: logolás, OpenTelemetry és Sentry egyetlen hívással, egy shutdown-garanciával.","md",null,{},{"icon":175},{"title":52,"description":1308},"4INTfZlWYk5Yw7OFQFlGZNyMxwbOPzytzbe47VnG28M",[1316,1318],{"title":169,"path":170,"stem":171,"description":1317,"icon":172,"children":-1},"A storagetest konformancia-suite, és amit egy saját Drivernek implementálnia kell.",{"title":183,"path":184,"stem":185,"description":1319,"icon":186,"children":-1},"Standard log\u002Fslog, komponálva, és egy Monolog-formátumú dev konzol, PHP-stílusú stack trace-ekkel.",1785445879789]