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