[{"data":1,"prerenderedAt":1792},["ShallowReactive",2],{"navigation_docs":3,"-adapters-otlp":191,"-adapters-otlp-surround":1787},[4,30,65,115,132,146],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","/getting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","/getting-started/quick-start","1.getting-started/3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","/getting-started/agent-skills","1.getting-started/4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Core Concepts","/core-concepts","2.core-concepts",[35,40,45,50,55,60],{"title":36,"path":37,"stem":38,"icon":39},"Wide Events","/core-concepts/wide-events","2.core-concepts/1.wide-events","i-lucide-layers",{"title":41,"path":42,"stem":43,"icon":44},"Structured Errors","/core-concepts/structured-errors","2.core-concepts/2.structured-errors","i-lucide-shield-alert",{"title":46,"path":47,"stem":48,"icon":49},"Best Practices","/core-concepts/best-practices","2.core-concepts/3.best-practices","i-lucide-shield-check",{"title":51,"path":52,"stem":53,"icon":54},"Typed Fields","/core-concepts/typed-fields","2.core-concepts/4.typed-fields","i-simple-icons-typescript",{"title":56,"path":57,"stem":58,"icon":59},"Sampling","/core-concepts/sampling","2.core-concepts/5.sampling","i-lucide-filter",{"title":61,"path":62,"stem":63,"icon":64},"Client Logging","/core-concepts/client-logging","2.core-concepts/6.client-logging","i-lucide-monitor",{"title":66,"path":67,"stem":68,"children":69,"page":29},"Adapters","/adapters","3.adapters",[70,75,80,85,90,95,100,105,110],{"title":71,"path":72,"stem":73,"icon":74},"Overview","/adapters/overview","3.adapters/1.overview","i-custom-plug",{"title":76,"path":77,"stem":78,"icon":79},"Axiom","/adapters/axiom","3.adapters/2.axiom","i-custom-axiom",{"title":81,"path":82,"stem":83,"icon":84},"OTLP","/adapters/otlp","3.adapters/3.otlp","i-simple-icons-opentelemetry",{"title":86,"path":87,"stem":88,"icon":89},"PostHog","/adapters/posthog","3.adapters/4.posthog","i-simple-icons-posthog",{"title":91,"path":92,"stem":93,"icon":94},"Sentry","/adapters/sentry","3.adapters/5.sentry","i-simple-icons-sentry",{"title":96,"path":97,"stem":98,"icon":99},"Better Stack","/adapters/better-stack","3.adapters/6.better-stack","i-simple-icons-betterstack",{"title":101,"path":102,"stem":103,"icon":104},"Custom Adapters","/adapters/custom","3.adapters/7.custom","i-lucide-code",{"title":106,"path":107,"stem":108,"icon":109},"Pipeline","/adapters/pipeline","3.adapters/8.pipeline","i-lucide-workflow",{"title":111,"path":112,"stem":113,"icon":114},"Browser","/adapters/browser","3.adapters/9.browser","i-lucide-globe",{"title":116,"path":117,"stem":118,"children":119,"page":29},"Enrichers","/enrichers","4.enrichers",[120,123,128],{"title":71,"path":121,"stem":122,"icon":28},"/enrichers/overview","4.enrichers/1.overview",{"title":124,"path":125,"stem":126,"icon":127},"Built-in","/enrichers/built-in","4.enrichers/2.built-in","i-lucide-puzzle",{"title":129,"path":130,"stem":131,"icon":104},"Custom","/enrichers/custom","4.enrichers/3.custom",{"title":133,"path":134,"stem":135,"children":136,"page":29},"NuxtHub","/nuxthub","5.nuxthub",[137,141],{"title":71,"path":138,"stem":139,"icon":140},"/nuxthub/overview","5.nuxthub/1.overview","i-lucide-database",{"title":142,"path":143,"stem":144,"icon":145},"Retention","/nuxthub/retention","5.nuxthub/2.retention","i-lucide-clock",{"title":147,"path":148,"stem":149,"children":150,"page":29},"Examples","/examples","6.examples",[151,156,161,166,171,176,181,186],{"title":152,"path":153,"stem":154,"icon":155},"Next.js","/examples/nextjs","6.examples/1.nextjs","i-simple-icons-nextdotjs",{"title":157,"path":158,"stem":159,"icon":160},"SvelteKit","/examples/sveltekit","6.examples/2.sveltekit","i-simple-icons-svelte",{"title":162,"path":163,"stem":164,"icon":165},"TanStack Start","/examples/tanstack-start","6.examples/3.tanstack-start","i-custom-tanstack",{"title":167,"path":168,"stem":169,"icon":170},"NestJS","/examples/nestjs","6.examples/4.nestjs","i-simple-icons-nestjs",{"title":172,"path":173,"stem":174,"icon":175},"Express","/examples/express","6.examples/5.express","i-simple-icons-express",{"title":177,"path":178,"stem":179,"icon":180},"Hono","/examples/hono","6.examples/6.hono","i-simple-icons-hono",{"title":182,"path":183,"stem":184,"icon":185},"Fastify","/examples/fastify","6.examples/7.fastify","i-simple-icons-fastify",{"title":187,"path":188,"stem":189,"icon":190},"Elysia","/examples/elysia","6.examples/8.elysia","i-custom-elysia",{"id":192,"title":193,"body":194,"description":1772,"extension":1773,"links":1774,"meta":1783,"navigation":1784,"path":82,"seo":1785,"stem":83,"__hash__":1786},"docs/3.adapters/3.otlp.md","OTLP Adapter",{"type":195,"value":196,"toc":1743},"minimark",[197,201,242,246,249,293,296,301,320,324,431,435,438,479,483,552,555,597,601,674,678,872,876,987,991,994,1015,1042,1051,1054,1082,1086,1089,1220,1269,1281,1285,1288,1406,1410,1477,1481,1485,1493,1496,1500,1503,1517,1521,1528,1539,1543,1558,1562,1565,1710,1714,1739],[198,199,200],"p",{},"The OTLP (OpenTelemetry Protocol) adapter sends logs in the standard OpenTelemetry format. This works with any OTLP-compatible backend including:",[202,203,204,212,217,222,227,232,237],"ul",{},[205,206,207,211],"li",{},[208,209,210],"strong",{},"Grafana Cloud"," (Loki)",[205,213,214],{},[208,215,216],{},"Datadog",[205,218,219],{},[208,220,221],{},"Honeycomb",[205,223,224],{},[208,225,226],{},"Jaeger",[205,228,229],{},[208,230,231],{},"Splunk",[205,233,234],{},[208,235,236],{},"New Relic",[205,238,239],{},[208,240,241],{},"Self-hosted OpenTelemetry Collector",[243,244,15],"h2",{"id":245},"installation",[198,247,248],{},"The OTLP adapter comes bundled with evlog:",[250,251,257],"pre",{"className":252,"code":253,"filename":254,"language":255,"meta":256,"style":256},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createOTLPDrain } from 'evlog/otlp'\n","server/plugins/evlog-drain.ts","typescript","",[258,259,260],"code",{"__ignoreMap":256},[261,262,265,269,273,277,280,283,286,290],"span",{"class":263,"line":264},"line",1,[261,266,268],{"class":267},"s7zQu","import",[261,270,272],{"class":271},"sMK4o"," {",[261,274,276],{"class":275},"sTEyZ"," createOTLPDrain",[261,278,279],{"class":271}," }",[261,281,282],{"class":267}," from",[261,284,285],{"class":271}," '",[261,287,289],{"class":288},"sfazB","evlog/otlp",[261,291,292],{"class":271},"'\n",[243,294,20],{"id":295},"quick-start",[297,298,300],"h3",{"id":299},"_1-set-your-otlp-endpoint","1. Set your OTLP endpoint",[250,302,307],{"className":303,"code":304,"filename":305,"language":306,"meta":256,"style":256},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","NUXT_OTLP_ENDPOINT=http://localhost:4318\n",".env","bash",[258,308,309],{"__ignoreMap":256},[261,310,311,314,317],{"class":263,"line":264},[261,312,313],{"class":275},"NUXT_OTLP_ENDPOINT",[261,315,316],{"class":271},"=",[261,318,319],{"class":288},"http://localhost:4318\n",[297,321,323],{"id":322},"_2-create-the-drain-plugin","2. Create the drain plugin",[250,325,327],{"className":252,"code":326,"filename":254,"language":255,"meta":256,"style":256},"import { createOTLPDrain } from 'evlog/otlp'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createOTLPDrain())\n})\n",[258,328,329,347,354,386,422],{"__ignoreMap":256},[261,330,331,333,335,337,339,341,343,345],{"class":263,"line":264},[261,332,268],{"class":267},[261,334,272],{"class":271},[261,336,276],{"class":275},[261,338,279],{"class":271},[261,340,282],{"class":267},[261,342,285],{"class":271},[261,344,289],{"class":288},[261,346,292],{"class":271},[261,348,350],{"class":263,"line":349},2,[261,351,353],{"emptyLinePlaceholder":352},true,"\n",[261,355,357,360,363,367,370,372,376,379,383],{"class":263,"line":356},3,[261,358,359],{"class":267},"export",[261,361,362],{"class":267}," default",[261,364,366],{"class":365},"s2Zo4"," defineNitroPlugin",[261,368,369],{"class":275},"(",[261,371,369],{"class":271},[261,373,375],{"class":374},"sHdIc","nitroApp",[261,377,378],{"class":271},")",[261,380,382],{"class":381},"spNyl"," =>",[261,384,385],{"class":271}," {\n",[261,387,389,392,395,398,400,403,406,409,412,414,417,419],{"class":263,"line":388},4,[261,390,391],{"class":275},"  nitroApp",[261,393,394],{"class":271},".",[261,396,397],{"class":275},"hooks",[261,399,394],{"class":271},[261,401,402],{"class":365},"hook",[261,404,369],{"class":405},"swJcz",[261,407,408],{"class":271},"'",[261,410,411],{"class":288},"evlog:drain",[261,413,408],{"class":271},[261,415,416],{"class":271},",",[261,418,276],{"class":365},[261,420,421],{"class":405},"())\n",[261,423,425,428],{"class":263,"line":424},5,[261,426,427],{"class":271},"}",[261,429,430],{"class":275},")\n",[243,432,434],{"id":433},"configuration","Configuration",[198,436,437],{},"The adapter reads configuration from multiple sources (highest priority first):",[439,440,441,450,459,466],"ol",{},[205,442,443,446,447],{},[208,444,445],{},"Overrides"," passed to ",[258,448,449],{},"createOTLPDrain()",[205,451,452,455,456],{},[208,453,454],{},"Runtime config"," at ",[258,457,458],{},"runtimeConfig.evlog.otlp",[205,460,461,455,463],{},[208,462,454],{},[258,464,465],{},"runtimeConfig.otlp",[205,467,468,471,472,475,476,378],{},[208,469,470],{},"Environment variables"," (",[258,473,474],{},"NUXT_OTLP_*"," or ",[258,477,478],{},"OTEL_*",[297,480,482],{"id":481},"environment-variables","Environment Variables",[484,485,486,499],"table",{},[487,488,489],"thead",{},[490,491,492,496],"tr",{},[493,494,495],"th",{},"Variable",[493,497,498],{},"Description",[500,501,502,515,525,538],"tbody",{},[490,503,504,509],{},[505,506,507],"td",{},[258,508,313],{},[505,510,511,512,378],{},"OTLP HTTP endpoint (e.g., ",[258,513,514],{},"http://localhost:4318",[490,516,517,522],{},[505,518,519],{},[258,520,521],{},"NUXT_OTLP_SERVICE_NAME",[505,523,524],{},"Override service name",[490,526,527,532],{},[505,528,529],{},[258,530,531],{},"NUXT_OTLP_HEADERS",[505,533,534,535,378],{},"Custom headers (format: ",[258,536,537],{},"Key=Value,Key2=Value2",[490,539,540,545],{},[505,541,542],{},[258,543,544],{},"NUXT_OTLP_AUTH",[505,546,547,548,551],{},"Shortcut for ",[258,549,550],{},"Authorization"," header",[198,553,554],{},"Standard OpenTelemetry variables are also supported:",[484,556,557,565],{},[487,558,559],{},[490,560,561,563],{},[493,562,495],{},[493,564,498],{},[500,566,567,577,587],{},[490,568,569,574],{},[505,570,571],{},[258,572,573],{},"OTEL_EXPORTER_OTLP_ENDPOINT",[505,575,576],{},"OTLP endpoint (fallback)",[490,578,579,584],{},[505,580,581],{},[258,582,583],{},"OTEL_EXPORTER_OTLP_HEADERS",[505,585,586],{},"Headers in OTEL format",[490,588,589,594],{},[505,590,591],{},[258,592,593],{},"OTEL_SERVICE_NAME",[505,595,596],{},"Service name (fallback)",[297,598,600],{"id":599},"runtime-config","Runtime Config",[250,602,605],{"className":252,"code":603,"filename":604,"language":255,"meta":256,"style":256},"export default defineNuxtConfig({\n  runtimeConfig: {\n    otlp: {\n      endpoint: '', // Set via NUXT_OTLP_ENDPOINT\n    },\n  },\n})\n","nuxt.config.ts",[258,606,607,621,631,640,656,661,667],{"__ignoreMap":256},[261,608,609,611,613,616,618],{"class":263,"line":264},[261,610,359],{"class":267},[261,612,362],{"class":267},[261,614,615],{"class":365}," defineNuxtConfig",[261,617,369],{"class":275},[261,619,620],{"class":271},"{\n",[261,622,623,626,629],{"class":263,"line":349},[261,624,625],{"class":405},"  runtimeConfig",[261,627,628],{"class":271},":",[261,630,385],{"class":271},[261,632,633,636,638],{"class":263,"line":356},[261,634,635],{"class":405},"    otlp",[261,637,628],{"class":271},[261,639,385],{"class":271},[261,641,642,645,647,650,652],{"class":263,"line":388},[261,643,644],{"class":405},"      endpoint",[261,646,628],{"class":271},[261,648,649],{"class":271}," ''",[261,651,416],{"class":271},[261,653,655],{"class":654},"sHwdD"," // Set via NUXT_OTLP_ENDPOINT\n",[261,657,658],{"class":263,"line":424},[261,659,660],{"class":271},"    },\n",[261,662,664],{"class":263,"line":663},6,[261,665,666],{"class":271},"  },\n",[261,668,670,672],{"class":263,"line":669},7,[261,671,427],{"class":271},[261,673,430],{"class":275},[297,675,677],{"id":676},"override-options","Override Options",[250,679,681],{"className":252,"code":680,"filename":254,"language":255,"meta":256,"style":256},"import { createOTLPDrain } from 'evlog/otlp'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createOTLPDrain({\n    endpoint: 'http://localhost:4318',\n    serviceName: 'my-api',\n    headers: {\n      'Authorization': 'Bearer xxx',\n    },\n    resourceAttributes: {\n      'deployment.environment': 'staging',\n    },\n  }))\n})\n",[258,682,683,701,705,725,753,769,785,794,815,820,830,851,856,865],{"__ignoreMap":256},[261,684,685,687,689,691,693,695,697,699],{"class":263,"line":264},[261,686,268],{"class":267},[261,688,272],{"class":271},[261,690,276],{"class":275},[261,692,279],{"class":271},[261,694,282],{"class":267},[261,696,285],{"class":271},[261,698,289],{"class":288},[261,700,292],{"class":271},[261,702,703],{"class":263,"line":349},[261,704,353],{"emptyLinePlaceholder":352},[261,706,707,709,711,713,715,717,719,721,723],{"class":263,"line":356},[261,708,359],{"class":267},[261,710,362],{"class":267},[261,712,366],{"class":365},[261,714,369],{"class":275},[261,716,369],{"class":271},[261,718,375],{"class":374},[261,720,378],{"class":271},[261,722,382],{"class":381},[261,724,385],{"class":271},[261,726,727,729,731,733,735,737,739,741,743,745,747,749,751],{"class":263,"line":388},[261,728,391],{"class":275},[261,730,394],{"class":271},[261,732,397],{"class":275},[261,734,394],{"class":271},[261,736,402],{"class":365},[261,738,369],{"class":405},[261,740,408],{"class":271},[261,742,411],{"class":288},[261,744,408],{"class":271},[261,746,416],{"class":271},[261,748,276],{"class":365},[261,750,369],{"class":405},[261,752,620],{"class":271},[261,754,755,758,760,762,764,766],{"class":263,"line":424},[261,756,757],{"class":405},"    endpoint",[261,759,628],{"class":271},[261,761,285],{"class":271},[261,763,514],{"class":288},[261,765,408],{"class":271},[261,767,768],{"class":271},",\n",[261,770,771,774,776,778,781,783],{"class":263,"line":663},[261,772,773],{"class":405},"    serviceName",[261,775,628],{"class":271},[261,777,285],{"class":271},[261,779,780],{"class":288},"my-api",[261,782,408],{"class":271},[261,784,768],{"class":271},[261,786,787,790,792],{"class":263,"line":669},[261,788,789],{"class":405},"    headers",[261,791,628],{"class":271},[261,793,385],{"class":271},[261,795,797,800,802,804,806,808,811,813],{"class":263,"line":796},8,[261,798,799],{"class":271},"      '",[261,801,550],{"class":405},[261,803,408],{"class":271},[261,805,628],{"class":271},[261,807,285],{"class":271},[261,809,810],{"class":288},"Bearer xxx",[261,812,408],{"class":271},[261,814,768],{"class":271},[261,816,818],{"class":263,"line":817},9,[261,819,660],{"class":271},[261,821,823,826,828],{"class":263,"line":822},10,[261,824,825],{"class":405},"    resourceAttributes",[261,827,628],{"class":271},[261,829,385],{"class":271},[261,831,833,835,838,840,842,844,847,849],{"class":263,"line":832},11,[261,834,799],{"class":271},[261,836,837],{"class":405},"deployment.environment",[261,839,408],{"class":271},[261,841,628],{"class":271},[261,843,285],{"class":271},[261,845,846],{"class":288},"staging",[261,848,408],{"class":271},[261,850,768],{"class":271},[261,852,854],{"class":263,"line":853},12,[261,855,660],{"class":271},[261,857,859,862],{"class":263,"line":858},13,[261,860,861],{"class":271},"  }",[261,863,864],{"class":405},"))\n",[261,866,868,870],{"class":263,"line":867},14,[261,869,427],{"class":271},[261,871,430],{"class":275},[297,873,875],{"id":874},"full-configuration-reference","Full Configuration Reference",[484,877,878,893],{},[487,879,880],{},[490,881,882,885,888,891],{},[493,883,884],{},"Option",[493,886,887],{},"Type",[493,889,890],{},"Default",[493,892,498],{},[500,894,895,913,934,951,967],{},[490,896,897,902,907,910],{},[505,898,899],{},[258,900,901],{},"endpoint",[505,903,904],{},[258,905,906],{},"string",[505,908,909],{},"-",[505,911,912],{},"OTLP HTTP endpoint (required)",[490,914,915,920,924,927],{},[505,916,917],{},[258,918,919],{},"serviceName",[505,921,922],{},[258,923,906],{},[505,925,926],{},"From event",[505,928,929,930,933],{},"Override ",[258,931,932],{},"service.name"," resource attribute",[490,935,936,941,946,948],{},[505,937,938],{},[258,939,940],{},"headers",[505,942,943],{},[258,944,945],{},"object",[505,947,909],{},[505,949,950],{},"Custom HTTP headers for authentication",[490,952,953,958,962,964],{},[505,954,955],{},[258,956,957],{},"resourceAttributes",[505,959,960],{},[258,961,945],{},[505,963,909],{},[505,965,966],{},"Additional OTLP resource attributes",[490,968,969,974,979,984],{},[505,970,971],{},[258,972,973],{},"timeout",[505,975,976],{},[258,977,978],{},"number",[505,980,981],{},[258,982,983],{},"5000",[505,985,986],{},"Request timeout in milliseconds",[243,988,990],{"id":989},"provider-specific-setup","Provider-Specific Setup",[297,992,210],{"id":993},"grafana-cloud",[439,995,996,999,1012],{},[205,997,998],{},"Go to your Grafana Cloud portal",[205,1000,1001,1002,1005,1006,1005,1009],{},"Navigate to ",[208,1003,1004],{},"Connections"," > ",[208,1007,1008],{},"Collector",[208,1010,1011],{},"OpenTelemetry",[205,1013,1014],{},"Copy your OTLP endpoint and generate credentials",[250,1016,1018],{"className":303,"code":1017,"filename":305,"language":306,"meta":256,"style":256},"NUXT_OTLP_ENDPOINT=https://otlp-gateway-prod-us-central-0.grafana.net/otlp\nOTEL_EXPORTER_OTLP_HEADERS=Authorization=Basic%20base64-encoded-credentials\n",[258,1019,1020,1029],{"__ignoreMap":256},[261,1021,1022,1024,1026],{"class":263,"line":264},[261,1023,313],{"class":275},[261,1025,316],{"class":271},[261,1027,1028],{"class":288},"https://otlp-gateway-prod-us-central-0.grafana.net/otlp\n",[261,1030,1031,1033,1035,1037,1039],{"class":263,"line":349},[261,1032,583],{"class":275},[261,1034,316],{"class":271},[261,1036,550],{"class":275},[261,1038,316],{"class":271},[261,1040,1041],{"class":288},"Basic%20base64-encoded-credentials\n",[1043,1044,1046,1047,1050],"callout",{"color":1045,"icon":13},"info","Grafana uses URL-encoded headers. The ",[258,1048,1049],{},"%20"," is a space character. The adapter automatically decodes this format.",[297,1052,216],{"id":1053},"datadog",[250,1055,1057],{"className":303,"code":1056,"filename":305,"language":306,"meta":256,"style":256},"NUXT_OTLP_ENDPOINT=https://http-intake.logs.datadoghq.com\nNUXT_OTLP_HEADERS=DD-API-KEY=your-api-key\n",[258,1058,1059,1068],{"__ignoreMap":256},[261,1060,1061,1063,1065],{"class":263,"line":264},[261,1062,313],{"class":275},[261,1064,316],{"class":271},[261,1066,1067],{"class":288},"https://http-intake.logs.datadoghq.com\n",[261,1069,1070,1072,1074,1077,1079],{"class":263,"line":349},[261,1071,531],{"class":275},[261,1073,316],{"class":271},[261,1075,1076],{"class":275},"DD-API-KEY",[261,1078,316],{"class":271},[261,1080,1081],{"class":288},"your-api-key\n",[297,1083,1085],{"id":1084},"local-opentelemetry-collector","Local OpenTelemetry Collector",[198,1087,1088],{},"For development and testing, run a local collector:",[250,1090,1095],{"className":1091,"code":1092,"filename":1093,"language":1094,"meta":256,"style":256},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","receivers:\n  otlp:\n    protocols:\n      http:\n        endpoint: 0.0.0.0:4318\n\nexporters:\n  debug:\n    verbosity: detailed\n\nservice:\n  pipelines:\n    logs:\n      receivers: [otlp]\n      exporters: [debug]\n","otel-collector.yaml","yaml",[258,1096,1097,1105,1112,1119,1126,1136,1140,1147,1154,1164,1168,1175,1182,1189,1205],{"__ignoreMap":256},[261,1098,1099,1102],{"class":263,"line":264},[261,1100,1101],{"class":405},"receivers",[261,1103,1104],{"class":271},":\n",[261,1106,1107,1110],{"class":263,"line":349},[261,1108,1109],{"class":405},"  otlp",[261,1111,1104],{"class":271},[261,1113,1114,1117],{"class":263,"line":356},[261,1115,1116],{"class":405},"    protocols",[261,1118,1104],{"class":271},[261,1120,1121,1124],{"class":263,"line":388},[261,1122,1123],{"class":405},"      http",[261,1125,1104],{"class":271},[261,1127,1128,1131,1133],{"class":263,"line":424},[261,1129,1130],{"class":405},"        endpoint",[261,1132,628],{"class":271},[261,1134,1135],{"class":288}," 0.0.0.0:4318\n",[261,1137,1138],{"class":263,"line":663},[261,1139,353],{"emptyLinePlaceholder":352},[261,1141,1142,1145],{"class":263,"line":669},[261,1143,1144],{"class":405},"exporters",[261,1146,1104],{"class":271},[261,1148,1149,1152],{"class":263,"line":796},[261,1150,1151],{"class":405},"  debug",[261,1153,1104],{"class":271},[261,1155,1156,1159,1161],{"class":263,"line":817},[261,1157,1158],{"class":405},"    verbosity",[261,1160,628],{"class":271},[261,1162,1163],{"class":288}," detailed\n",[261,1165,1166],{"class":263,"line":822},[261,1167,353],{"emptyLinePlaceholder":352},[261,1169,1170,1173],{"class":263,"line":832},[261,1171,1172],{"class":405},"service",[261,1174,1104],{"class":271},[261,1176,1177,1180],{"class":263,"line":853},[261,1178,1179],{"class":405},"  pipelines",[261,1181,1104],{"class":271},[261,1183,1184,1187],{"class":263,"line":858},[261,1185,1186],{"class":405},"    logs",[261,1188,1104],{"class":271},[261,1190,1191,1194,1196,1199,1202],{"class":263,"line":867},[261,1192,1193],{"class":405},"      receivers",[261,1195,628],{"class":271},[261,1197,1198],{"class":271}," [",[261,1200,1201],{"class":288},"otlp",[261,1203,1204],{"class":271},"]\n",[261,1206,1208,1211,1213,1215,1218],{"class":263,"line":1207},15,[261,1209,1210],{"class":405},"      exporters",[261,1212,628],{"class":271},[261,1214,1198],{"class":271},[261,1216,1217],{"class":288},"debug",[261,1219,1204],{"class":271},[250,1221,1223],{"className":303,"code":1222,"language":306,"meta":256,"style":256},"docker run --rm -p 4318:4318 \\\n  -v $(pwd)/otel-collector.yaml:/etc/otelcol/config.yaml \\\n  otel/opentelemetry-collector:latest\n",[258,1224,1225,1246,1264],{"__ignoreMap":256},[261,1226,1227,1231,1234,1237,1240,1243],{"class":263,"line":264},[261,1228,1230],{"class":1229},"sBMFI","docker",[261,1232,1233],{"class":288}," run",[261,1235,1236],{"class":288}," --rm",[261,1238,1239],{"class":288}," -p",[261,1241,1242],{"class":288}," 4318:4318",[261,1244,1245],{"class":275}," \\\n",[261,1247,1248,1251,1254,1257,1259,1262],{"class":263,"line":349},[261,1249,1250],{"class":288},"  -v",[261,1252,1253],{"class":271}," $(",[261,1255,1256],{"class":365},"pwd",[261,1258,378],{"class":271},[261,1260,1261],{"class":288},"/otel-collector.yaml:/etc/otelcol/config.yaml",[261,1263,1245],{"class":275},[261,1265,1266],{"class":263,"line":356},[261,1267,1268],{"class":288},"  otel/opentelemetry-collector:latest\n",[250,1270,1271],{"className":303,"code":304,"filename":305,"language":306,"meta":256,"style":256},[258,1272,1273],{"__ignoreMap":256},[261,1274,1275,1277,1279],{"class":263,"line":264},[261,1276,313],{"class":275},[261,1278,316],{"class":271},[261,1280,319],{"class":288},[243,1282,1284],{"id":1283},"otlp-log-format","OTLP Log Format",[198,1286,1287],{},"evlog maps wide events to the OTLP log format:",[484,1289,1290,1300],{},[487,1291,1292],{},[490,1293,1294,1297],{},[493,1295,1296],{},"evlog Field",[493,1298,1299],{},"OTLP Field",[500,1301,1302,1318,1330,1341,1352,1364,1376,1387,1398],{},[490,1303,1304,1309],{},[505,1305,1306],{},[258,1307,1308],{},"level",[505,1310,1311,1314,1315],{},[258,1312,1313],{},"severityNumber"," / ",[258,1316,1317],{},"severityText",[490,1319,1320,1325],{},[505,1321,1322],{},[258,1323,1324],{},"timestamp",[505,1326,1327],{},[258,1328,1329],{},"timeUnixNano",[490,1331,1332,1336],{},[505,1333,1334],{},[258,1335,1172],{},[505,1337,1338,1339],{},"Resource attribute ",[258,1340,932],{},[490,1342,1343,1348],{},[505,1344,1345],{},[258,1346,1347],{},"environment",[505,1349,1338,1350],{},[258,1351,837],{},[490,1353,1354,1359],{},[505,1355,1356],{},[258,1357,1358],{},"version",[505,1360,1338,1361],{},[258,1362,1363],{},"service.version",[490,1365,1366,1371],{},[505,1367,1368],{},[258,1369,1370],{},"region",[505,1372,1338,1373],{},[258,1374,1375],{},"cloud.region",[490,1377,1378,1383],{},[505,1379,1380],{},[258,1381,1382],{},"traceId",[505,1384,1385],{},[258,1386,1382],{},[490,1388,1389,1394],{},[505,1390,1391],{},[258,1392,1393],{},"spanId",[505,1395,1396],{},[258,1397,1393],{},[490,1399,1400,1403],{},[505,1401,1402],{},"All other fields",[505,1404,1405],{},"Log attributes",[297,1407,1409],{"id":1408},"severity-mapping","Severity Mapping",[484,1411,1412,1425],{},[487,1413,1414],{},[490,1415,1416,1419,1422],{},[493,1417,1418],{},"evlog Level",[493,1420,1421],{},"OTLP Severity Number",[493,1423,1424],{},"OTLP Severity Text",[500,1426,1427,1439,1451,1464],{},[490,1428,1429,1433,1436],{},[505,1430,1431],{},[258,1432,1217],{},[505,1434,1435],{},"5",[505,1437,1438],{},"DEBUG",[490,1440,1441,1445,1448],{},[505,1442,1443],{},[258,1444,1045],{},[505,1446,1447],{},"9",[505,1449,1450],{},"INFO",[490,1452,1453,1458,1461],{},[505,1454,1455],{},[258,1456,1457],{},"warn",[505,1459,1460],{},"13",[505,1462,1463],{},"WARN",[490,1465,1466,1471,1474],{},[505,1467,1468],{},[258,1469,1470],{},"error",[505,1472,1473],{},"17",[505,1475,1476],{},"ERROR",[243,1478,1480],{"id":1479},"troubleshooting","Troubleshooting",[297,1482,1484],{"id":1483},"missing-endpoint-error","Missing endpoint error",[250,1486,1491],{"className":1487,"code":1489,"language":1490},[1488],"language-text","[evlog/otlp] Missing endpoint. Set NUXT_OTLP_ENDPOINT or OTEL_EXPORTER_OTLP_ENDPOINT\n","text",[258,1492,1489],{"__ignoreMap":256},[198,1494,1495],{},"Make sure your endpoint environment variable is set and the server was restarted.",[297,1497,1499],{"id":1498},"_401-unauthorized","401 Unauthorized",[198,1501,1502],{},"Your authentication headers may be missing or incorrect. Check:",[439,1504,1505,1511,1514],{},[205,1506,1507,1508,1510],{},"The ",[258,1509,583],{}," format is correct",[205,1512,1513],{},"Credentials are valid and not expired",[205,1515,1516],{},"The endpoint URL is correct",[297,1518,1520],{"id":1519},"_404-not-found","404 Not Found",[198,1522,1523,1524,1527],{},"The adapter sends to ",[258,1525,1526],{},"/v1/logs",". Make sure your endpoint:",[202,1529,1530,1533],{},[205,1531,1532],{},"Supports OTLP HTTP (not gRPC)",[205,1534,1535,1536,1538],{},"Is the base URL without ",[258,1537,1526],{}," suffix",[297,1540,1542],{"id":1541},"logs-not-appearing","Logs not appearing",[439,1544,1545,1552,1555],{},[205,1546,1547,1548,1551],{},"Check the server console for ",[258,1549,1550],{},"[evlog/otlp]"," error messages",[205,1553,1554],{},"Test with a local collector first to verify the format",[205,1556,1557],{},"Check your backend's ingestion delay (some have 1-2 minute delays)",[243,1559,1561],{"id":1560},"direct-api-usage","Direct API Usage",[198,1563,1564],{},"For advanced use cases:",[250,1566,1569],{"className":252,"code":1567,"filename":1568,"language":255,"meta":256,"style":256},"import { sendToOTLP, sendBatchToOTLP, toOTLPLogRecord } from 'evlog/otlp'\n\n// Send a single event\nawait sendToOTLP(event, {\n  endpoint: 'http://localhost:4318',\n})\n\n// Send multiple events\nawait sendBatchToOTLP(events, {\n  endpoint: 'http://localhost:4318',\n})\n\n// Convert event to OTLP format (for inspection)\nconst otlpRecord = toOTLPLogRecord(event)\n","server/utils/otlp.ts",[258,1570,1571,1600,1604,1609,1623,1638,1644,1648,1653,1666,1680,1686,1690,1695],{"__ignoreMap":256},[261,1572,1573,1575,1577,1580,1582,1585,1587,1590,1592,1594,1596,1598],{"class":263,"line":264},[261,1574,268],{"class":267},[261,1576,272],{"class":271},[261,1578,1579],{"class":275}," sendToOTLP",[261,1581,416],{"class":271},[261,1583,1584],{"class":275}," sendBatchToOTLP",[261,1586,416],{"class":271},[261,1588,1589],{"class":275}," toOTLPLogRecord",[261,1591,279],{"class":271},[261,1593,282],{"class":267},[261,1595,285],{"class":271},[261,1597,289],{"class":288},[261,1599,292],{"class":271},[261,1601,1602],{"class":263,"line":349},[261,1603,353],{"emptyLinePlaceholder":352},[261,1605,1606],{"class":263,"line":356},[261,1607,1608],{"class":654},"// Send a single event\n",[261,1610,1611,1614,1616,1619,1621],{"class":263,"line":388},[261,1612,1613],{"class":267},"await",[261,1615,1579],{"class":365},[261,1617,1618],{"class":275},"(event",[261,1620,416],{"class":271},[261,1622,385],{"class":271},[261,1624,1625,1628,1630,1632,1634,1636],{"class":263,"line":424},[261,1626,1627],{"class":405},"  endpoint",[261,1629,628],{"class":271},[261,1631,285],{"class":271},[261,1633,514],{"class":288},[261,1635,408],{"class":271},[261,1637,768],{"class":271},[261,1639,1640,1642],{"class":263,"line":663},[261,1641,427],{"class":271},[261,1643,430],{"class":275},[261,1645,1646],{"class":263,"line":669},[261,1647,353],{"emptyLinePlaceholder":352},[261,1649,1650],{"class":263,"line":796},[261,1651,1652],{"class":654},"// Send multiple events\n",[261,1654,1655,1657,1659,1662,1664],{"class":263,"line":817},[261,1656,1613],{"class":267},[261,1658,1584],{"class":365},[261,1660,1661],{"class":275},"(events",[261,1663,416],{"class":271},[261,1665,385],{"class":271},[261,1667,1668,1670,1672,1674,1676,1678],{"class":263,"line":822},[261,1669,1627],{"class":405},[261,1671,628],{"class":271},[261,1673,285],{"class":271},[261,1675,514],{"class":288},[261,1677,408],{"class":271},[261,1679,768],{"class":271},[261,1681,1682,1684],{"class":263,"line":832},[261,1683,427],{"class":271},[261,1685,430],{"class":275},[261,1687,1688],{"class":263,"line":853},[261,1689,353],{"emptyLinePlaceholder":352},[261,1691,1692],{"class":263,"line":858},[261,1693,1694],{"class":654},"// Convert event to OTLP format (for inspection)\n",[261,1696,1697,1700,1703,1705,1707],{"class":263,"line":867},[261,1698,1699],{"class":381},"const",[261,1701,1702],{"class":275}," otlpRecord ",[261,1704,316],{"class":271},[261,1706,1589],{"class":365},[261,1708,1709],{"class":275},"(event)\n",[243,1711,1713],{"id":1712},"next-steps","Next Steps",[202,1715,1716,1723,1729,1734],{},[205,1717,1718,1722],{},[1719,1720,1721],"a",{"href":77},"Axiom Adapter"," - Send logs to Axiom",[205,1724,1725,1728],{},[1719,1726,1727],{"href":87},"PostHog Adapter"," - Send logs to PostHog",[205,1730,1731,1733],{},[1719,1732,101],{"href":102}," - Build your own adapter",[205,1735,1736,1738],{},[1719,1737,46],{"href":47}," - Security and production tips",[1740,1741,1742],"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 .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}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 .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":256,"searchDepth":349,"depth":349,"links":1744},[1745,1746,1750,1756,1761,1764,1770,1771],{"id":245,"depth":349,"text":15},{"id":295,"depth":349,"text":20,"children":1747},[1748,1749],{"id":299,"depth":356,"text":300},{"id":322,"depth":356,"text":323},{"id":433,"depth":349,"text":434,"children":1751},[1752,1753,1754,1755],{"id":481,"depth":356,"text":482},{"id":599,"depth":356,"text":600},{"id":676,"depth":356,"text":677},{"id":874,"depth":356,"text":875},{"id":989,"depth":349,"text":990,"children":1757},[1758,1759,1760],{"id":993,"depth":356,"text":210},{"id":1053,"depth":356,"text":216},{"id":1084,"depth":356,"text":1085},{"id":1283,"depth":349,"text":1284,"children":1762},[1763],{"id":1408,"depth":356,"text":1409},{"id":1479,"depth":349,"text":1480,"children":1765},[1766,1767,1768,1769],{"id":1483,"depth":356,"text":1484},{"id":1498,"depth":356,"text":1499},{"id":1519,"depth":356,"text":1520},{"id":1541,"depth":356,"text":1542},{"id":1560,"depth":349,"text":1561},{"id":1712,"depth":349,"text":1713},"Send logs via OpenTelemetry Protocol (OTLP) to Grafana, Datadog, Honeycomb, and any compatible backend. Supports gRPC and HTTP transports.","md",[1775,1782],{"label":1776,"icon":1777,"to":1778,"target":1779,"color":1780,"variant":1781},"OpenTelemetry Docs","i-lucide-external-link","https://opentelemetry.io/docs/","_blank","neutral","subtle",{"label":101,"icon":104,"to":102,"color":1780,"variant":1781},{},{"title":81,"icon":84},{"title":193,"description":1772},"hvD_DulRAFeZjkfBTfpqrnJI5dqVF5pxM_R1wWTYZyQ",[1788,1790],{"title":76,"path":77,"stem":78,"description":1789,"icon":79,"children":-1},"Send wide events to Axiom for powerful querying, dashboards, and alerting. Zero-config setup with environment variables and automatic batching.",{"title":86,"path":87,"stem":88,"description":1791,"icon":89,"children":-1},"Send wide events to PostHog Logs via OTLP for structured log querying, debugging, and observability in your PostHog dashboard.",1772901886985]