[{"data":1,"prerenderedAt":1629},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-telemetry-opentelemetry":442,"-hu-telemetry-opentelemetry-surround":1624},[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":188,"body":444,"description":1617,"extension":1618,"links":1619,"meta":1620,"navigation":1621,"path":189,"seo":1622,"stem":190,"__hash__":1623},"docs_hu\u002Fhu\u002F16.telemetry\u002F3.opentelemetry.md",{"type":445,"value":446,"toc":1607},"minimark",[447,455,460,671,674,722,740,755,759,835,846,937,957,961,964,1089,1096,1100,1110,1118,1144,1148,1151,1231,1241,1245,1252,1516,1533,1548,1552,1566,1570,1574,1594,1603],[448,449,450,451,454],"p",{},"Az OpenTelemetry a kit observability-gerince: minden span, metrika és exportált logrekord rajta megy keresztül, a ",[452,453,193],"a",{"href":194}," is csak egy plusz exporter a tetején. A Go-ökoszisztémában az elosztott trace-elés standard, gyártófüggetlen infrastruktúra: a kit ezt kapcsolja be úgy, hogy nem kell hozzá megtanulnod az OTel SDK-t.",[456,457,459],"h2",{"id":458},"otelx-a-bootstrap","otelx: a bootstrap",[461,462,467],"pre",{"className":463,"code":464,"language":465,"meta":466,"style":466},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import \"github.com\u002Fgp-system\u002Ftelemetry\u002Fotelx\"\n\nfunc Setup(ctx context.Context, cfg Config, opts ...Option) (*Handle, error)\n\nfunc (h *Handle) SlogHandler() slog.Handler              \u002F\u002F OTLP log-bridge (dev módban nil)\nfunc (h *Handle) Shutdown(ctx context.Context) error     \u002F\u002F providerek flush + stop\n\nfunc WithSpanExporter(exp sdktrace.SpanExporter) Option  \u002F\u002F plusz span-sink a fő OTLP mellé\n","go","",[468,469,470,490,497,561,566,602,637,642],"code",{"__ignoreMap":466},[471,472,475,479,483,487],"span",{"class":473,"line":474},"line",1,[471,476,478],{"class":477},"s7zQu","import",[471,480,482],{"class":481},"sMK4o"," \"",[471,484,486],{"class":485},"sBMFI","github.com\u002Fgp-system\u002Ftelemetry\u002Fotelx",[471,488,489],{"class":481},"\"\n",[471,491,493],{"class":473,"line":492},2,[471,494,496],{"emptyLinePlaceholder":495},true,"\n",[471,498,500,503,507,510,514,517,520,523,526,529,532,534,537,540,543,546,549,552,554,558],{"class":473,"line":499},3,[471,501,502],{"class":481},"func",[471,504,506],{"class":505},"s2Zo4"," Setup",[471,508,509],{"class":481},"(",[471,511,513],{"class":512},"sHdIc","ctx",[471,515,516],{"class":485}," context",[471,518,519],{"class":481},".",[471,521,522],{"class":485},"Context",[471,524,525],{"class":481},",",[471,527,528],{"class":512}," cfg",[471,530,531],{"class":485}," Config",[471,533,525],{"class":481},[471,535,536],{"class":512}," opts",[471,538,539],{"class":481}," ...",[471,541,542],{"class":485},"Option",[471,544,545],{"class":481},")",[471,547,548],{"class":481}," (*",[471,550,551],{"class":485},"Handle",[471,553,525],{"class":481},[471,555,557],{"class":556},"spNyl"," error",[471,559,560],{"class":481},")\n",[471,562,564],{"class":473,"line":563},4,[471,565,496],{"emptyLinePlaceholder":495},[471,567,569,571,574,577,580,582,584,587,590,593,595,598],{"class":473,"line":568},5,[471,570,502],{"class":481},[471,572,573],{"class":481}," (",[471,575,576],{"class":512},"h ",[471,578,579],{"class":481},"*",[471,581,551],{"class":485},[471,583,545],{"class":481},[471,585,586],{"class":505}," SlogHandler",[471,588,589],{"class":481},"()",[471,591,592],{"class":485}," slog",[471,594,519],{"class":481},[471,596,597],{"class":485},"Handler",[471,599,601],{"class":600},"sHwdD","              \u002F\u002F OTLP log-bridge (dev módban nil)\n",[471,603,605,607,609,611,613,615,617,620,622,624,626,628,630,632,634],{"class":473,"line":604},6,[471,606,502],{"class":481},[471,608,573],{"class":481},[471,610,576],{"class":512},[471,612,579],{"class":481},[471,614,551],{"class":485},[471,616,545],{"class":481},[471,618,619],{"class":505}," Shutdown",[471,621,509],{"class":481},[471,623,513],{"class":512},[471,625,516],{"class":485},[471,627,519],{"class":481},[471,629,522],{"class":485},[471,631,545],{"class":481},[471,633,557],{"class":556},[471,635,636],{"class":600},"     \u002F\u002F providerek flush + stop\n",[471,638,640],{"class":473,"line":639},7,[471,641,496],{"emptyLinePlaceholder":495},[471,643,645,647,650,652,655,658,660,663,665,668],{"class":473,"line":644},8,[471,646,502],{"class":481},[471,648,649],{"class":505}," WithSpanExporter",[471,651,509],{"class":481},[471,653,654],{"class":512},"exp",[471,656,657],{"class":485}," sdktrace",[471,659,519],{"class":481},[471,661,662],{"class":485},"SpanExporter",[471,664,545],{"class":481},[471,666,667],{"class":485}," Option",[471,669,670],{"class":600},"  \u002F\u002F plusz span-sink a fő OTLP mellé\n",[448,672,673],{},"Egy hívás beköti:",[675,676,677,693,716],"ul",{},[678,679,680,684,685,688,689,692],"li",{},[681,682,683],"strong",{},"Resource",": ",[468,686,687],{},"service.name"," \u002F ",[468,690,691],{},"service.version"," plusz host-detektorok, minden szignálon.",[678,694,695,698,699,702,703,706,707,711,712,715],{},[681,696,697],{},"Tracer, meter és logger provider"," OTLP exporterekkel; a ",[468,700,701],{},"Handle.SlogHandler()"," a hivatalos ",[468,704,705],{},"otelslog"," bridge, amit a ",[452,708,709],{"href":180},[468,710,174],{}," a log-fanoutba fűz, így minden ",[468,713,714],{},"slog.InfoContext(ctx, ...)"," trace\u002Fspan ID-val exportálódik.",[678,717,718,721],{},[681,719,720],{},"Propagáció",": W3C TraceContext + Baggage, tehát az upstream hívók trace-e automatikusan folytatódik, a tieid pedig továbbadódnak.",[448,723,724,725,728,729,732,733,735,736,739],{},"Közvetlenül ritkán hívod: a chassis a ",[468,726,727],{},"telemetry.Setup","-on keresztül futtatja. A ",[468,730,731],{},"WithSpanExporter"," is elsősorban a ",[468,734,174],{}," csomagnak létezik: így kapja meg a Sentry ugyanazokat a spaneket egy második batcherrel (a ",[468,737,738],{},"nil"," exportert csendben eldobja, ezért feltétel nélkül átadható).",[448,741,742,743,746,747,750,751,754],{},"Az alkalmazáskód ",[681,744,745],{},"soha nem importál OTel SDK-csomagot",": az OTel logs SDK még 1.0 előtti, és a verzió-churn a kit ",[468,748,749],{},"otelx"," csomagjában marad, nem a projektjeidben. Amit importálsz, az a stabil ",[468,752,753],{},"go.opentelemetry.io\u002Fotel"," API (lásd lentebb, a saját spaneknél).",[456,756,758],{"id":757},"konfiguráció-két-kit-kapcsoló-minden-más-standard","Konfiguráció: két kit-kapcsoló, minden más standard",[461,760,762],{"className":463,"code":761,"language":465,"meta":466,"style":466},"type Config struct {\n    ServiceName    string `env:\"OTEL_SERVICE_NAME\"`                    \u002F\u002F dev módon kívül kötelező\n    ServiceVersion string `env:\"OTEL_SERVICE_VERSION\" envDefault:\"dev\"`\n    Dev            bool   `env:\"OTEL_DEV_MODE\" envDefault:\"false\"`\n}\n",[468,763,764,777,799,814,830],{"__ignoreMap":466},[471,765,766,769,771,774],{"class":473,"line":474},[471,767,768],{"class":481},"type",[471,770,531],{"class":485},[471,772,773],{"class":481}," struct",[471,775,776],{"class":481}," {\n",[471,778,779,783,786,789,793,796],{"class":473,"line":492},[471,780,782],{"class":781},"sTEyZ","    ServiceName    ",[471,784,785],{"class":556},"string",[471,787,788],{"class":481}," `",[471,790,792],{"class":791},"sfazB","env:\"OTEL_SERVICE_NAME\"",[471,794,795],{"class":481},"`",[471,797,798],{"class":600},"                    \u002F\u002F dev módon kívül kötelező\n",[471,800,801,804,806,808,811],{"class":473,"line":499},[471,802,803],{"class":781},"    ServiceVersion ",[471,805,785],{"class":556},[471,807,788],{"class":481},[471,809,810],{"class":791},"env:\"OTEL_SERVICE_VERSION\" envDefault:\"dev\"",[471,812,813],{"class":481},"`\n",[471,815,816,819,822,825,828],{"class":473,"line":563},[471,817,818],{"class":781},"    Dev            ",[471,820,821],{"class":556},"bool",[471,823,824],{"class":481},"   `",[471,826,827],{"class":791},"env:\"OTEL_DEV_MODE\" envDefault:\"false\"",[471,829,813],{"class":481},[471,831,832],{"class":473,"line":568},[471,833,834],{"class":481},"}\n",[448,836,837,838,841,842,845],{},"Az exporter-végpontok ",[681,839,840],{},"szándékosan nem"," kit-konfiguráció. Az exportereket a ",[468,843,844],{},"contrib\u002Fexporters\u002Fautoexport"," választja ki a standard OTel változókból, így a deploymentedet ugyanúgy konfigurálod, mint bármely más OTel-instrumentált appot: a platformcsapat OTel-tudása és minden vendor-dokumentáció változtatás nélkül érvényes:",[461,847,851],{"className":848,"code":849,"language":850,"meta":466,"style":466},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","OTEL_SERVICE_NAME=shop\nOTEL_EXPORTER_OTLP_ENDPOINT=http:\u002F\u002Fcollector:4317\n# szignálonkénti felülbírálás (default mindenhol: otlp):\nOTEL_TRACES_EXPORTER=otlp\nOTEL_METRICS_EXPORTER=otlp     # vagy: prometheus → scrape-endpoint OTLP-push helyett\nOTEL_LOGS_EXPORTER=otlp\n# sampling is OTel-standard:\nOTEL_TRACES_SAMPLER=parentbased_traceidratio\nOTEL_TRACES_SAMPLER_ARG=0.1\n","sh",[468,852,853,864,874,879,889,902,911,916,926],{"__ignoreMap":466},[471,854,855,858,861],{"class":473,"line":474},[471,856,857],{"class":781},"OTEL_SERVICE_NAME",[471,859,860],{"class":481},"=",[471,862,863],{"class":791},"shop\n",[471,865,866,869,871],{"class":473,"line":492},[471,867,868],{"class":781},"OTEL_EXPORTER_OTLP_ENDPOINT",[471,870,860],{"class":481},[471,872,873],{"class":791},"http:\u002F\u002Fcollector:4317\n",[471,875,876],{"class":473,"line":499},[471,877,878],{"class":600},"# szignálonkénti felülbírálás (default mindenhol: otlp):\n",[471,880,881,884,886],{"class":473,"line":563},[471,882,883],{"class":781},"OTEL_TRACES_EXPORTER",[471,885,860],{"class":481},[471,887,888],{"class":791},"otlp\n",[471,890,891,894,896,899],{"class":473,"line":568},[471,892,893],{"class":781},"OTEL_METRICS_EXPORTER",[471,895,860],{"class":481},[471,897,898],{"class":791},"otlp",[471,900,901],{"class":600},"     # vagy: prometheus → scrape-endpoint OTLP-push helyett\n",[471,903,904,907,909],{"class":473,"line":604},[471,905,906],{"class":781},"OTEL_LOGS_EXPORTER",[471,908,860],{"class":481},[471,910,888],{"class":791},[471,912,913],{"class":473,"line":639},[471,914,915],{"class":600},"# sampling is OTel-standard:\n",[471,917,918,921,923],{"class":473,"line":644},[471,919,920],{"class":781},"OTEL_TRACES_SAMPLER",[471,922,860],{"class":481},[471,924,925],{"class":791},"parentbased_traceidratio\n",[471,927,929,932,934],{"class":473,"line":928},9,[471,930,931],{"class":781},"OTEL_TRACES_SAMPLER_ARG",[471,933,860],{"class":481},[471,935,936],{"class":791},"0.1\n",[448,938,939,573,942,945,946,949,950,952,953,956],{},[681,940,941],{},"Dev módban",[468,943,944],{},"OTEL_DEV_MODE=true",") egyáltalán nem készül exporter: a trace-ek és metrikák no-opok, OTLP log-bridge sincs, a logok a ",[452,947,948],{"href":184},"konzol-handlerre"," mennek. Nem kell collector, nem kell semmi. Egyetlen kivétel: ha a ",[468,951,731],{},"-rel kap egy extra sinket (a gyakorlatban: dev módban beállított ",[468,954,955],{},"SENTRY_DSN","), akkor egy dev-only tracer provider mégis felépül, és a spanek collector nélkül, egyenesen oda mennek.",[456,958,960],{"id":959},"mit-instrumentál-a-kit-magától","Mit instrumentál a kit magától",[448,962,963],{},"Ez a „részletes metrikák\" sztori: nem neked kell span-kódot írnod, a kit minden rétege eleve instrumentálva érkezik.",[965,966,967,983],"table",{},[968,969,970],"thead",{},[971,972,973,977,980],"tr",{},[974,975,976],"th",{},"Réteg",[974,978,979],{},"Instrumentáció",[974,981,982],{},"Mit kapsz",[984,985,986,1008,1022,1036,1063,1076],"tbody",{},[971,987,988,992,998],{},[989,990,991],"td",{},"HTTP (chi)",[989,993,994,997],{},[468,995,996],{},"otelhttp.NewHandler"," a router körül",[989,999,1000,1003,1004,1007],{},[468,1001,1002],{},"http.server"," szerver-spanek + ",[468,1005,1006],{},"http.server.request.duration"," és társai, standard szemantikus konvenciókkal",[971,1009,1010,1013,1019],{},[989,1011,1012],{},"PostgreSQL (pgx)",[989,1014,1015,1018],{},[468,1016,1017],{},"otelpgx"," tracer a poolon",[989,1020,1021],{},"span minden query-re, a SQL-lel (rövidített span-névvel) és időzítéssel",[971,1023,1024,1027,1033],{},[989,1025,1026],{},"PostgreSQL (bun)",[989,1028,1029,1032],{},[468,1030,1031],{},"bunotel"," query hook",[989,1034,1035],{},"ugyanez a bun-os projektekben, formázott query-vel",[971,1037,1038,1041,1056],{},[989,1039,1040],{},"Queue (asynq)",[989,1042,1043,1044,1047,1048,1051,1052,1055],{},"producer-span az ",[468,1045,1046],{},"Enqueue","-ban, consumer-span a workerben; az ",[468,1049,1050],{},"Envelope"," ",[468,1053,1054],{},"traceparent","-et hordoz",[989,1057,1058,1059,1062],{},"a trace ",[681,1060,1061],{},"átér a Valkeyen",": a listener spanje a kiváltó HTTP-kérés trace-ében ül",[971,1064,1065,1067,1073],{},[989,1066,164],{},[989,1068,1069,1072],{},[468,1070,1071],{},"otelaws"," middleware az AWS SDK-n",[989,1074,1075],{},"span minden storage-hívásra",[971,1077,1078,1081,1086],{},[989,1079,1080],{},"Logok",[989,1082,1083,1085],{},[468,1084,705],{}," bridge",[989,1087,1088],{},"minden ctx-szel logolt rekord trace\u002Fspan ID-val exportálódik",[448,1090,1091,1092,1095],{},"A metrikákat az autoexport által épített MeterProvider gyűjti: alapból OTLP-push a collectorba, ",[468,1093,1094],{},"OTEL_METRICS_EXPORTER=prometheus","-szal pedig Prometheus scrape-endpoint. Grafana-dashboardhoz a HTTP-réteg metrikái (kérés-időtartam hisztogram, aktív kérések) azonnal ott vannak, anélkül, hogy egy sor mérőkódot írtál volna.",[456,1097,1099],{"id":1098},"kövesd-a-rendelést-egyetlen-trace","Kövesd a rendelést: egyetlen trace",[448,1101,1102,1103,1051,1106,1109],{},"A ",[452,1104,1105],{"href":41},"shop",[468,1107,1108],{},"POST \u002Fapi\u002Fv1\u002Fshop\u002Forders"," kérése így néz ki a trace-nézőben (Jaeger, Grafana Tempo, Sentry, bármelyik):",[461,1111,1116],{"className":1112,"code":1114,"language":1115,"meta":466},[1113],"language-text","POST \u002Fapi\u002Fv1\u002Fshop\u002Forders                        ← HTTP szerver-span (chi middleware)\n├── INSERT INTO orders ...                      ← otelpgx, a tranzakción belül\n├── UPDATE inventory SET ...                    ← otelpgx\n├── INSERT INTO outbox ...                      ← otelpgx (az esemény a tranzakcióval együtt commitol)\n└── task event:orderPlaced                      ← consumer-span a workerben: a trace átjött az outboxon és a Valkeyen\n    └── enqueue listener:orderPlaced:sendOrderConfirmation   ← fan-out producer-span\n        └── task listener:orderPlaced:sendOrderConfirmation  ← itt fut a listener\n            └── (a listener spanjei: DB, S3, SMTP, ami a kódjában történik)\n","text",[468,1117,1114],{"__ignoreMap":466},[448,1119,1120,1121,1125,1126,1128,1129,1132,1133,1136,1137,1140,1141,1143],{},"A kulcs a queue ",[452,1122,1123],{"href":68},[468,1124,1050],{},": a dispatcher a kérés contextjéből W3C ",[468,1127,1054],{},"-et injektál bele, az envelope túléli az ",[452,1130,1131],{"href":73},"outbox-táblát"," és a Valkeyt, a worker consumer-spanje pedig kicsomagolja és folytatja a trace-t. (Az outbox-relay saját feladó-spanje a relay polling-loopjához tartozik, nem ehhez a trace-hez: a staféta maga az envelope.) A HTTP-kéréstől a visszaigazoló e-mailig ",[681,1134,1135],{},"egyetlen trace ID",", pontosan az, amit a ",[452,1138,1139],{"href":41},"mintaalkalmazás"," „kövesd a rendelést\" táblázata ígér. Ha közben bárhol hiba történik, a ",[452,1142,193],{"href":194}," eventje erre a trace-re linkelődik.",[456,1145,1147],{"id":1146},"trace-ek-megnézése-lokálisan","Trace-ek megnézése lokálisan",[448,1149,1150],{},"Dev módban a trace-elés alapból no-op, de két olcsó út van, ha látni akarod, mit termel a kit:",[1152,1153,1155,1160,1168,1172,1187,1228],"steps",{"level":1154},"4",[1156,1157,1159],"h4",{"id":1158},"a-leggyorsabb-dev-mód-sentry","A leggyorsabb: dev mód + Sentry",[448,1161,1162,1163,1165,1166,519],{},"Állíts be egy dev Sentry-projekt DSN-t az ",[468,1164,944],{}," mellé: a kit ilyenkor egy Sentry-only tracer providert épít, és a spanek collector nélkül a Sentry trace-nézetében landolnak. Részletek: ",[452,1167,193],{"href":194},[1156,1169,1171],{"id":1170},"a-teljes-kép-lokális-collector","A teljes kép: lokális collector",[448,1173,1174,1175,1178,1179,1182,1183,1186],{},"A generált ",[468,1176,1177],{},"compose.yml","-ben kikommentezve ott az ",[468,1180,1181],{},"otel-collector"," service. Élesítsd, tedd le a hivatkozott ",[468,1184,1185],{},"deploy\u002Fotel-collector.yaml"," configot (egy minimál OTLP-receiver + a kedvenc backended exportere, Jaeger, Tempo, bármi), majd:",[461,1188,1190],{"className":848,"code":1189,"language":850,"meta":466,"style":466},"OTEL_DEV_MODE=false OTEL_SERVICE_NAME=shop \\\nOTEL_EXPORTER_OTLP_ENDPOINT=http:\u002F\u002Flocalhost:4317 \\\ngo run .\u002Fcmd\u002Fshop\n",[468,1191,1192,1212,1217],{"__ignoreMap":466},[471,1193,1194,1197,1199,1202,1205,1207,1209],{"class":473,"line":474},[471,1195,1196],{"class":781},"OTEL_DEV_MODE",[471,1198,860],{"class":481},[471,1200,1201],{"class":791},"false",[471,1203,1204],{"class":781}," OTEL_SERVICE_NAME",[471,1206,860],{"class":481},[471,1208,1105],{"class":791},[471,1210,1211],{"class":485}," \\\n",[471,1213,1214],{"class":473,"line":492},[471,1215,1216],{"class":781},"OTEL_EXPORTER_OTLP_ENDPOINT=http:\u002F\u002Flocalhost:4317 \\\n",[471,1218,1219,1222,1225],{"class":473,"line":499},[471,1220,1221],{"class":781},"go ",[471,1223,1224],{"class":791},"run",[471,1226,1227],{"class":791}," .\u002Fcmd\u002Fshop\n",[448,1229,1230],{},"Innentől a service pontosan úgy exportál, mint élesben: a logok is, OTLP-n.",[448,1232,1233,1234,1236,1237,1240],{},"A worker binárist ugyanezekkel a változókkal indítsd (saját ",[468,1235,857],{},"-mel, pl. ",[468,1238,1239],{},"shop-worker","), különben a „kövesd a rendelést\" trace-nek csak a HTTP-oldali felét látod.",[456,1242,1244],{"id":1243},"saját-spanek-és-metrikák","Saját spanek és metrikák",[448,1246,1247,1248,1251],{},"A kit elve itt is érvényes: ",[452,1249,1250],{"href":221},"centralizál, nem absztrahál",". Nincs kit-wrapper a trace-API körül: ahol üzleti szempontból értelmes mérési pont kell, ott a stabil OTel API-t hívod közvetlenül:",[461,1253,1255],{"className":463,"code":1254,"language":465,"meta":466,"style":466},"import (\n    \"go.opentelemetry.io\u002Fotel\"\n    \"go.opentelemetry.io\u002Fotel\u002Fattribute\"\n)\n\nvar tracer = otel.Tracer(\"github.com\u002Facme\u002Fshop\u002Finternal\u002Fmodules\u002Fshop\")\nvar meter = otel.Meter(\"github.com\u002Facme\u002Fshop\u002Finternal\u002Fmodules\u002Fshop\")\n\nfunc (s *OrderService) PlaceOrder(ctx context.Context, in PlaceOrder) error {\n    ctx, span := tracer.Start(ctx, \"shop.place_order\")\n    defer span.End()\n    span.SetAttributes(attribute.Int(\"order.items\", len(in.Items)))\n\n    \u002F\u002F ... a span automatikusan a HTTP szerver-span gyereke,\n    \u002F\u002F mert ugyanazt a ctx-et viszed tovább\n}\n",[468,1256,1257,1264,1273,1282,1286,1290,1320,1346,1350,1392,1429,1446,1494,1499,1505,1511],{"__ignoreMap":466},[471,1258,1259,1261],{"class":473,"line":474},[471,1260,478],{"class":477},[471,1262,1263],{"class":481}," (\n",[471,1265,1266,1269,1271],{"class":473,"line":492},[471,1267,1268],{"class":481},"    \"",[471,1270,753],{"class":485},[471,1272,489],{"class":481},[471,1274,1275,1277,1280],{"class":473,"line":499},[471,1276,1268],{"class":481},[471,1278,1279],{"class":485},"go.opentelemetry.io\u002Fotel\u002Fattribute",[471,1281,489],{"class":481},[471,1283,1284],{"class":473,"line":563},[471,1285,560],{"class":481},[471,1287,1288],{"class":473,"line":568},[471,1289,496],{"emptyLinePlaceholder":495},[471,1291,1292,1295,1298,1300,1303,1305,1308,1310,1313,1316,1318],{"class":473,"line":604},[471,1293,1294],{"class":481},"var",[471,1296,1297],{"class":781}," tracer ",[471,1299,860],{"class":481},[471,1301,1302],{"class":781}," otel",[471,1304,519],{"class":481},[471,1306,1307],{"class":505},"Tracer",[471,1309,509],{"class":481},[471,1311,1312],{"class":481},"\"",[471,1314,1315],{"class":791},"github.com\u002Facme\u002Fshop\u002Finternal\u002Fmodules\u002Fshop",[471,1317,1312],{"class":481},[471,1319,560],{"class":481},[471,1321,1322,1324,1327,1329,1331,1333,1336,1338,1340,1342,1344],{"class":473,"line":639},[471,1323,1294],{"class":481},[471,1325,1326],{"class":781}," meter ",[471,1328,860],{"class":481},[471,1330,1302],{"class":781},[471,1332,519],{"class":481},[471,1334,1335],{"class":505},"Meter",[471,1337,509],{"class":481},[471,1339,1312],{"class":481},[471,1341,1315],{"class":791},[471,1343,1312],{"class":481},[471,1345,560],{"class":481},[471,1347,1348],{"class":473,"line":644},[471,1349,496],{"emptyLinePlaceholder":495},[471,1351,1352,1354,1356,1359,1361,1364,1366,1369,1371,1373,1375,1377,1379,1381,1384,1386,1388,1390],{"class":473,"line":928},[471,1353,502],{"class":481},[471,1355,573],{"class":481},[471,1357,1358],{"class":512},"s ",[471,1360,579],{"class":481},[471,1362,1363],{"class":485},"OrderService",[471,1365,545],{"class":481},[471,1367,1368],{"class":505}," PlaceOrder",[471,1370,509],{"class":481},[471,1372,513],{"class":512},[471,1374,516],{"class":485},[471,1376,519],{"class":481},[471,1378,522],{"class":485},[471,1380,525],{"class":481},[471,1382,1383],{"class":512}," in",[471,1385,1368],{"class":485},[471,1387,545],{"class":481},[471,1389,557],{"class":556},[471,1391,776],{"class":481},[471,1393,1395,1398,1400,1403,1406,1409,1411,1414,1416,1418,1420,1422,1425,1427],{"class":473,"line":1394},10,[471,1396,1397],{"class":781},"    ctx",[471,1399,525],{"class":481},[471,1401,1402],{"class":781}," span ",[471,1404,1405],{"class":481},":=",[471,1407,1408],{"class":781}," tracer",[471,1410,519],{"class":481},[471,1412,1413],{"class":505},"Start",[471,1415,509],{"class":481},[471,1417,513],{"class":781},[471,1419,525],{"class":481},[471,1421,482],{"class":481},[471,1423,1424],{"class":791},"shop.place_order",[471,1426,1312],{"class":481},[471,1428,560],{"class":481},[471,1430,1432,1435,1438,1440,1443],{"class":473,"line":1431},11,[471,1433,1434],{"class":477},"    defer",[471,1436,1437],{"class":781}," span",[471,1439,519],{"class":481},[471,1441,1442],{"class":505},"End",[471,1444,1445],{"class":481},"()\n",[471,1447,1449,1452,1454,1457,1459,1462,1464,1467,1469,1471,1474,1476,1478,1481,1483,1486,1488,1491],{"class":473,"line":1448},12,[471,1450,1451],{"class":781},"    span",[471,1453,519],{"class":481},[471,1455,1456],{"class":505},"SetAttributes",[471,1458,509],{"class":481},[471,1460,1461],{"class":781},"attribute",[471,1463,519],{"class":481},[471,1465,1466],{"class":505},"Int",[471,1468,509],{"class":481},[471,1470,1312],{"class":481},[471,1472,1473],{"class":791},"order.items",[471,1475,1312],{"class":481},[471,1477,525],{"class":481},[471,1479,1480],{"class":505}," len",[471,1482,509],{"class":481},[471,1484,1485],{"class":781},"in",[471,1487,519],{"class":481},[471,1489,1490],{"class":781},"Items",[471,1492,1493],{"class":481},")))\n",[471,1495,1497],{"class":473,"line":1496},13,[471,1498,496],{"emptyLinePlaceholder":495},[471,1500,1502],{"class":473,"line":1501},14,[471,1503,1504],{"class":600},"    \u002F\u002F ... a span automatikusan a HTTP szerver-span gyereke,\n",[471,1506,1508],{"class":473,"line":1507},15,[471,1509,1510],{"class":600},"    \u002F\u002F mert ugyanazt a ctx-et viszed tovább\n",[471,1512,1514],{"class":473,"line":1513},16,[471,1515,834],{"class":481},[448,1517,1102,1518,688,1521,1524,1525,1528,1529,1532],{},[468,1519,1520],{},"otel.Tracer",[468,1522,1523],{},"otel.Meter"," a globális providerekből dolgozik, amiket a ",[468,1526,1527],{},"Setup"," állított be. Dev módban ugyanez a kód no-op, nem kell feltételekkel körbeírni. Számlálóhoz, hisztogramhoz ugyanígy a ",[468,1530,1531],{},"meter.Int64Counter(...)"," és társai. Az upstream OTel-dokumentáció egy az egyben érvényes.",[1534,1535,1536,1537,1539,1540,1543,1544,1547],"warning",{},"A saját span contextjét (",[468,1538,513],{},") mindig add tovább lefelé: a repository-hívásoknak, a ",[468,1541,1542],{},"slog.*Context","-nek, a dispatchernek. A szülő-gyerek viszonyt kizárólag a context hordozza; egy ",[468,1545,1546],{},"context.Background()","-dal indított hívás kiszakad a trace-ből.",[456,1549,1551],{"id":1550},"shutdown","Shutdown",[448,1553,1102,1554,1557,1558,1561,1562,1565],{},[468,1555,1556],{},"Handle.Shutdown"," fordított sorrendben állítja le a providereket (előbb a logok, hivatkozhatnak spanekre, utoljára a trace-ek), és a chassis az ",[452,1559,1560],{"href":254},"életciklus legvégén"," hívja, minden closered után. Egy ",[468,1563,1564],{},"SIGTERM"," után a leállás közben nyitott spanek is elérik a collectort.",[1567,1568,1569],"note",{},"Az elérhetetlen collector-végpont nem dönti be a service-t: az exporterek a háttérben újrapróbálkoznak, és végül eldobják a batcheiket, a kérések kiszolgálását nem érinti. A telemetria best-effort, sosem a rendelkezésre állás ára.",[456,1571,1573],{"id":1572},"használt-patternek","Használt patternek",[675,1575,1576,1588],{},[678,1577,1578,1581,1582,1584,1585,519],{},[681,1579,1580],{},"Isolation layer"," a pre-1.0 OTel log SDK köré (",[468,1583,551],{},", az alkalmazáskód sosem importál OTel SDK-csomagot); lásd ",[452,1586,238],{"href":1587},"\u002Fhu\u002Fconcepts\u002Fdesign-patterns#functional-options",[678,1589,1590,1593],{},[681,1591,1592],{},"LIFO shutdown closer-lánccal",": a logok előbb, a trace-ek utoljára állnak le.",[448,1595,1596,1597,519],{},"Az OpenTelemetry Go-specifikus dokumentációja: ",[452,1598,1602],{"href":1599,"rel":1600},"https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002Flanguages\u002Fgo\u002Fgetting-started\u002F",[1601],"nofollow","opentelemetry.io\u002Fdocs\u002Flanguages\u002Fgo",[1604,1605,1606],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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}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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":466,"searchDepth":492,"depth":492,"links":1608},[1609,1610,1611,1612,1613,1614,1615,1616],{"id":458,"depth":492,"text":459},{"id":757,"depth":492,"text":758},{"id":959,"depth":492,"text":960},{"id":1098,"depth":492,"text":1099},{"id":1146,"depth":492,"text":1147},{"id":1243,"depth":492,"text":1244},{"id":1550,"depth":492,"text":1551},{"id":1572,"depth":492,"text":1573},"Trace-ek, metrikák és logok egy hívással, HTTP, adatbázis, queue és S3 instrumentáció, standard OTEL_* konfigurációval.","md",null,{},{"icon":191},{"title":188,"description":1617},"h-Dk5F2SU2FUiQnPnNpORiynm7eelyp8L8m5jV4L5hA",[1625,1627],{"title":183,"path":184,"stem":185,"description":1626,"icon":186,"children":-1},"Standard log\u002Fslog, komponálva, és egy Monolog-formátumú dev konzol, PHP-stílusú stack trace-ekkel.",{"title":193,"path":194,"stem":195,"description":1628,"icon":196,"children":-1},"Env-kapcsolós hibariportolás az OTel tetején: errs-kód szerinti issue-csoportosítással és teljes trace-linkeléssel.",1785445886072]