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