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