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