[{"data":1,"prerenderedAt":1170},["ShallowReactive",2],{"\u002Fopentelemetry\u002Ftroubleshooting-navigation":3,"\u002Fopentelemetry\u002Ftroubleshooting":79},[4,8,12,16,20,24,28,32,36,40,63,67,71,75],{"title":5,"path":6,"stem":7},"What is OpenTelemetry?","\u002Fopentelemetry","opentelemetry\u002F01.index",{"title":9,"path":10,"stem":11},"OpenTelemetry APM","\u002Fopentelemetry\u002Fapm","opentelemetry\u002F02.apm",{"title":13,"path":14,"stem":15},"Architecture","\u002Fopentelemetry\u002Farchitecture","opentelemetry\u002F03.architecture",{"title":17,"path":18,"stem":19},"Distributed Tracing","\u002Fopentelemetry\u002Fdistributed-tracing","opentelemetry\u002F04.distributed-tracing",{"title":21,"path":22,"stem":23},"Timeseries Metrics","\u002Fopentelemetry\u002Fmetrics","opentelemetry\u002F05.metrics",{"title":25,"path":26,"stem":27},"Logs","\u002Fopentelemetry\u002Flogs","opentelemetry\u002F06.logs",{"title":29,"path":30,"stem":31},"Profiles","\u002Fopentelemetry\u002Fprofiles","opentelemetry\u002F07.profiles",{"title":33,"path":34,"stem":35},"Context Propagation","\u002Fopentelemetry\u002Fcontext-propagation","opentelemetry\u002F08.context-propagation",{"title":37,"path":38,"stem":39},"Sampling","\u002Fopentelemetry\u002Fsampling","opentelemetry\u002F09.sampling",{"title":41,"path":42,"stem":43,"children":44},"Collector","\u002Fopentelemetry\u002Fcollector","opentelemetry\u002F1.collector\u002F01.index",[45,47,51,55,59],{"title":46,"path":42,"stem":43},"Get started",{"title":48,"path":49,"stem":50},"Configuration","\u002Fopentelemetry\u002Fcollector\u002Fconfig","opentelemetry\u002F1.collector\u002F02.config",{"title":52,"path":53,"stem":54},"Exporters","\u002Fopentelemetry\u002Fcollector\u002Fexporters","opentelemetry\u002F1.collector\u002F03.exporters",{"title":56,"path":57,"stem":58},"Host metrics","\u002Fopentelemetry\u002Fcollector\u002Fhost-metrics","opentelemetry\u002F1.collector\u002F04.host-metrics",{"title":60,"path":61,"stem":62},"Prometheus","\u002Fopentelemetry\u002Fcollector\u002Fprometheus","opentelemetry\u002F1.collector\u002F05.prometheus",{"title":64,"path":65,"stem":66},"Semantic Conventions","\u002Fopentelemetry\u002Fsemconv","opentelemetry\u002F10.semconv",{"title":68,"path":69,"stem":70},"Operator","\u002Fopentelemetry\u002Foperator","opentelemetry\u002F11.operator",{"title":72,"path":73,"stem":74},"Env Variables","\u002Fopentelemetry\u002Fenv-vars","opentelemetry\u002F12.env-vars",{"title":76,"path":77,"stem":78},"Troubleshooting","\u002Fopentelemetry\u002Ftroubleshooting","opentelemetry\u002F13.troubleshooting",{"page":80,"surround":1167},{"id":81,"title":82,"author":83,"body":84,"date":83,"description":1153,"extension":1154,"image":1155,"meta":1156,"navigation":1163,"path":77,"seo":1164,"stem":78,"surround_disabled":1165,"__hash__":1166},"opentelemetry\u002Fopentelemetry\u002F13.troubleshooting.md","OpenTelemetry Troubleshooting: No Data and How to Debug the Pipeline",null,{"type":85,"value":86,"toc":1134},"minimark",[87,91,96,99,135,138,142,145,190,197,200,203,233,237,240,352,355,406,411,414,461,468,514,520,523,541,545,548,574,577,581,584,688,695,773,784,787,813,820,824,828,893,896,899,918,922,960,963,967,982,986,992,1002,1006,1014,1018,1021,1042,1046,1089,1093,1130],[88,89,90],"p",{},"The usual failure is not an error message. Everything starts, nothing crashes, and no data arrives. This page is about locating where it stops.",[92,93,95],"h2",{"id":94},"work-along-the-pipeline","Work along the pipeline",[88,97,98],{},"Telemetry passes through four places, and each can drop it silently:",[100,101,106],"pre",{"className":102,"code":103,"language":104,"meta":105,"style":105},"language-mermaid shiki shiki-themes github-light","flowchart LR\n  app(Application\u003Cbr\u002F>instrumentation) --> sdk(SDK\u003Cbr\u002F>sampling, batching)\n  sdk --> coll(Collector\u003Cbr\u002F>receiver → processor → exporter)\n  coll --> backend[(Backend)]\n","mermaid","",[107,108,109,117,123,129],"code",{"__ignoreMap":105},[110,111,114],"span",{"class":112,"line":113},"line",1,[110,115,116],{},"flowchart LR\n",[110,118,120],{"class":112,"line":119},2,[110,121,122],{},"  app(Application\u003Cbr\u002F>instrumentation) --> sdk(SDK\u003Cbr\u002F>sampling, batching)\n",[110,124,126],{"class":112,"line":125},3,[110,127,128],{},"  sdk --> coll(Collector\u003Cbr\u002F>receiver → processor → exporter)\n",[110,130,132],{"class":112,"line":131},4,[110,133,134],{},"  coll --> backend[(Backend)]\n",[88,136,137],{},"Check them in order. Confirming that the SDK produces spans takes a minute and rules out half the possibilities; guessing at exporter configuration first can take an afternoon.",[92,139,141],{"id":140},"is-the-application-producing-anything","Is the application producing anything?",[88,143,144],{},"Bypass the network entirely and print to stdout:",[100,146,150],{"className":147,"code":148,"language":149,"meta":105,"style":105},"language-shell shiki shiki-themes github-light","export OTEL_TRACES_EXPORTER=console\nexport OTEL_METRICS_EXPORTER=console\nexport OTEL_LOGS_EXPORTER=console\n","shell",[107,151,152,168,179],{"__ignoreMap":105},[110,153,154,158,162,165],{"class":112,"line":113},[110,155,157],{"class":156},"sD7c4","export",[110,159,161],{"class":160},"sgsFI"," OTEL_TRACES_EXPORTER",[110,163,164],{"class":156},"=",[110,166,167],{"class":160},"console\n",[110,169,170,172,175,177],{"class":112,"line":119},[110,171,157],{"class":156},[110,173,174],{"class":160}," OTEL_METRICS_EXPORTER",[110,176,164],{"class":156},[110,178,167],{"class":160},[110,180,181,183,186,188],{"class":112,"line":125},[110,182,157],{"class":156},[110,184,185],{"class":160}," OTEL_LOGS_EXPORTER",[110,187,164],{"class":156},[110,189,167],{"class":160},[88,191,192,193,196],{},"If nothing appears, the problem is before any export: no SDK installed, instrumentation not registered, or sampling set to ",[107,194,195],{},"always_off",". Nothing downstream matters yet.",[88,198,199],{},"If spans appear here but not in the backend, the SDK works and the problem is in transport or in the Collector.",[88,201,202],{},"Two SDK-side causes are worth ruling out immediately:",[204,205,206,218],"ul",{},[207,208,209,213,214,217],"li",{},[210,211,212],"strong",{},"The process exits before the batch is flushed."," Short-lived jobs, CLI tools, and serverless functions lose their last batch unless the provider is shut down explicitly. Call ",[107,215,216],{},"Shutdown"," on exit.",[207,219,220,223,224,227,228,232],{},[210,221,222],{},"The queue is full."," The batch processor drops spans when ",[107,225,226],{},"OTEL_BSP_MAX_QUEUE_SIZE"," is reached. It does not raise an error — it increments an internal counter. Symptom: data appears under light load and thins out under heavy load. See ",[229,230,231],"a",{"href":73},"environment variables",".",[92,234,236],{"id":235},"is-the-collector-receiving","Is the Collector receiving?",[88,238,239],{},"Add the debug exporter to the pipeline you are investigating:",[100,241,245],{"className":242,"code":243,"language":244,"meta":105,"style":105},"language-yaml shiki shiki-themes github-light","exporters:\n  debug:\n    verbosity: detailed\n\nservice:\n  pipelines:\n    traces:\n      receivers: [otlp]\n      processors: [batch]\n      exporters: [debug, otlp\u002Fuptrace]\n","yaml",[107,246,247,256,263,275,281,289,297,305,320,333],{"__ignoreMap":105},[110,248,249,253],{"class":112,"line":113},[110,250,252],{"class":251},"shJU0","exporters",[110,254,255],{"class":160},":\n",[110,257,258,261],{"class":112,"line":119},[110,259,260],{"class":251},"  debug",[110,262,255],{"class":160},[110,264,265,268,271],{"class":112,"line":125},[110,266,267],{"class":251},"    verbosity",[110,269,270],{"class":160},": ",[110,272,274],{"class":273},"sYBdl","detailed\n",[110,276,277],{"class":112,"line":131},[110,278,280],{"emptyLinePlaceholder":279},true,"\n",[110,282,284,287],{"class":112,"line":283},5,[110,285,286],{"class":251},"service",[110,288,255],{"class":160},[110,290,292,295],{"class":112,"line":291},6,[110,293,294],{"class":251},"  pipelines",[110,296,255],{"class":160},[110,298,300,303],{"class":112,"line":299},7,[110,301,302],{"class":251},"    traces",[110,304,255],{"class":160},[110,306,308,311,314,317],{"class":112,"line":307},8,[110,309,310],{"class":251},"      receivers",[110,312,313],{"class":160},": [",[110,315,316],{"class":273},"otlp",[110,318,319],{"class":160},"]\n",[110,321,323,326,328,331],{"class":112,"line":322},9,[110,324,325],{"class":251},"      processors",[110,327,313],{"class":160},[110,329,330],{"class":273},"batch",[110,332,319],{"class":160},[110,334,336,339,341,344,347,350],{"class":112,"line":335},10,[110,337,338],{"class":251},"      exporters",[110,340,313],{"class":160},[110,342,343],{"class":273},"debug",[110,345,346],{"class":160},", ",[110,348,349],{"class":273},"otlp\u002Fuptrace",[110,351,319],{"class":160},[88,353,354],{},"Verbosity has three levels:",[356,357,358,371],"table",{},[359,360,361],"thead",{},[362,363,364,368],"tr",{},[365,366,367],"th",{},"Level",[365,369,370],{},"Output",[372,373,374,386,396],"tbody",{},[362,375,376,383],{},[377,378,379,382],"td",{},[107,380,381],{},"basic"," (default)",[377,384,385],{},"One line summarizing each batch, with a record count",[362,387,388,393],{},[377,389,390],{},[107,391,392],{},"normal",[377,394,395],{},"Roughly one line per record",[362,397,398,403],{},[377,399,400],{},[107,401,402],{},"detailed",[377,404,405],{},"Every field of every record, several lines each",[407,408,410],"h3",{"id":409},"why-the-debug-exporter-goes-quiet","Why the debug exporter goes quiet",[88,412,413],{},"The exporter samples its own output, which regularly convinces people it stopped working:",[356,415,416,429],{},[359,417,418],{},[362,419,420,423,426],{},[365,421,422],{},"Setting",[365,424,425],{},"Default",[365,427,428],{},"Meaning",[372,430,431,446],{},[362,432,433,438,443],{},[377,434,435],{},[107,436,437],{},"sampling_initial",[377,439,440],{},[107,441,442],{},"2",[377,444,445],{},"Messages logged during the first second",[362,447,448,453,458],{},[377,449,450],{},[107,451,452],{},"sampling_thereafter",[377,454,455],{},[107,456,457],{},"1",[377,459,460],{},"Log every Mth message after that",[88,462,463,464,467],{},"With ",[107,465,466],{},"sampling_thereafter: 1"," sampling is effectively off. Raise it on a busy pipeline to keep the logs readable, and lower it when you are chasing a specific record:",[100,469,471],{"className":242,"code":470,"language":244,"meta":105,"style":105},"exporters:\n  debug:\n    verbosity: detailed\n    sampling_initial: 5\n    sampling_thereafter: 200\n",[107,472,473,479,485,493,504],{"__ignoreMap":105},[110,474,475,477],{"class":112,"line":113},[110,476,252],{"class":251},[110,478,255],{"class":160},[110,480,481,483],{"class":112,"line":119},[110,482,260],{"class":251},[110,484,255],{"class":160},[110,486,487,489,491],{"class":112,"line":125},[110,488,267],{"class":251},[110,490,270],{"class":160},[110,492,274],{"class":273},[110,494,495,498,500],{"class":112,"line":131},[110,496,497],{"class":251},"    sampling_initial",[110,499,270],{"class":160},[110,501,503],{"class":502},"sYu0t","5\n",[110,505,506,509,511],{"class":112,"line":283},[110,507,508],{"class":251},"    sampling_thereafter",[110,510,270],{"class":160},[110,512,513],{"class":502},"200\n",[88,515,516,517,519],{},"Two cautions. The output format is explicitly not stable between releases, so do not parse it. And remove the exporter when you are done — at ",[107,518,402],{}," verbosity it writes the full contents of every record.",[88,521,522],{},"Reading the result:",[204,524,525,531],{},[207,526,527,530],{},[210,528,529],{},"Records appear in the debug output but not in the backend"," — the receiver and processors are fine. The problem is the real exporter: endpoint, credentials, or network.",[207,532,533,536,537,540],{},[210,534,535],{},"Nothing appears"," — the data is not reaching the pipeline, or a processor is dropping it. Check the receiver and any ",[107,538,539],{},"filter"," processors.",[407,542,544],{"id":543},"the-debug-image-tag","The debug image tag",[88,546,547],{},"The published Collector images are distroless and contain no shell, which makes them awkward to inspect. For interactive debugging there is a variant tag with a shell and basic utilities:",[100,549,551],{"className":147,"code":550,"language":149,"meta":105,"style":105},"docker run -it --entrypoint sh otel\u002Fopentelemetry-collector-contrib:0.159.0-debug\n",[107,552,553],{"__ignoreMap":105},[110,554,555,559,562,565,568,571],{"class":112,"line":113},[110,556,558],{"class":557},"s7eDp","docker",[110,560,561],{"class":273}," run",[110,563,564],{"class":502}," -it",[110,566,567],{"class":502}," --entrypoint",[110,569,570],{"class":273}," sh",[110,572,573],{"class":273}," otel\u002Fopentelemetry-collector-contrib:0.159.0-debug\n",[88,575,576],{},"Use it to check what the container can reach — DNS resolution, whether the backend port answers — and switch back to the normal image afterwards. It exists to be exec'd into, not to run in production.",[92,578,580],{"id":579},"ask-the-collector-about-itself","Ask the Collector about itself",[88,582,583],{},"The Collector reports its own metrics, and they answer the question \"where did the data go\" more precisely than any log line.",[100,585,587],{"className":242,"code":586,"language":244,"meta":105,"style":105},"service:\n  telemetry:\n    metrics:\n      level: normal\n      readers:\n        - pull:\n            exporter:\n              prometheus:\n                host: '0.0.0.0'\n                port: 8888\n    logs:\n      level: INFO\n",[107,588,589,595,602,609,619,626,636,643,650,660,670,678],{"__ignoreMap":105},[110,590,591,593],{"class":112,"line":113},[110,592,286],{"class":251},[110,594,255],{"class":160},[110,596,597,600],{"class":112,"line":119},[110,598,599],{"class":251},"  telemetry",[110,601,255],{"class":160},[110,603,604,607],{"class":112,"line":125},[110,605,606],{"class":251},"    metrics",[110,608,255],{"class":160},[110,610,611,614,616],{"class":112,"line":131},[110,612,613],{"class":251},"      level",[110,615,270],{"class":160},[110,617,618],{"class":273},"normal\n",[110,620,621,624],{"class":112,"line":283},[110,622,623],{"class":251},"      readers",[110,625,255],{"class":160},[110,627,628,631,634],{"class":112,"line":291},[110,629,630],{"class":160},"        - ",[110,632,633],{"class":251},"pull",[110,635,255],{"class":160},[110,637,638,641],{"class":112,"line":299},[110,639,640],{"class":251},"            exporter",[110,642,255],{"class":160},[110,644,645,648],{"class":112,"line":307},[110,646,647],{"class":251},"              prometheus",[110,649,255],{"class":160},[110,651,652,655,657],{"class":112,"line":322},[110,653,654],{"class":251},"                host",[110,656,270],{"class":160},[110,658,659],{"class":273},"'0.0.0.0'\n",[110,661,662,665,667],{"class":112,"line":335},[110,663,664],{"class":251},"                port",[110,666,270],{"class":160},[110,668,669],{"class":502},"8888\n",[110,671,673,676],{"class":112,"line":672},11,[110,674,675],{"class":251},"    logs",[110,677,255],{"class":160},[110,679,681,683,685],{"class":112,"line":680},12,[110,682,613],{"class":251},[110,684,270],{"class":160},[110,686,687],{"class":273},"INFO\n",[88,689,690,691,694],{},"Then scrape or curl ",[107,692,693],{},"localhost:8888\u002Fmetrics"," and compare:",[356,696,697,707],{},[359,698,699],{},[362,700,701,704],{},[365,702,703],{},"Metric",[365,705,706],{},"Question it answers",[372,708,709,719,729,739,749,759],{},[362,710,711,716],{},[377,712,713],{},[107,714,715],{},"otelcol_receiver_accepted_spans",[377,717,718],{},"Is anything arriving at all",[362,720,721,726],{},[377,722,723],{},[107,724,725],{},"otelcol_receiver_refused_spans",[377,727,728],{},"Is the receiver rejecting it — auth, size limits, malformed payloads",[362,730,731,736],{},[377,732,733],{},[107,734,735],{},"otelcol_exporter_sent_spans",[377,737,738],{},"Is anything leaving",[362,740,741,746],{},[377,742,743],{},[107,744,745],{},"otelcol_exporter_send_failed_spans",[377,747,748],{},"Is the backend rejecting it",[362,750,751,756],{},[377,752,753],{},[107,754,755],{},"otelcol_exporter_enqueue_failed_spans",[377,757,758],{},"Is the sending queue full",[362,760,761,770],{},[377,762,763,766,767],{},[107,764,765],{},"otelcol_exporter_queue_size"," \u002F ",[107,768,769],{},"_queue_capacity",[377,771,772],{},"How close the queue is to overflowing",[88,774,775,776,779,780,783],{},"The same names exist with ",[107,777,778],{},"_metric_points"," and ",[107,781,782],{},"_log_records"," suffixes for the other signals.",[88,785,786],{},"The diagnosis follows from which counters move:",[204,788,789,795,801,807],{},[207,790,791,794],{},[210,792,793],{},"accepted rises, sent stays flat"," — the data is stuck between receiver and exporter. A processor is dropping it, or the queue is full.",[207,796,797,800],{},[210,798,799],{},"send_failed rises"," — the backend is refusing. Read the Collector's own logs for the status code.",[207,802,803,806],{},[210,804,805],{},"enqueue_failed rises, queue_size sits at capacity"," — the exporter cannot drain as fast as data arrives. The backend is slow, the network is saturated, or the queue is undersized.",[207,808,809,812],{},[210,810,811],{},"accepted stays at zero"," — nothing is arriving. The problem is upstream.",[88,814,815,816,819],{},"These metrics are also worth alerting on permanently. ",[107,817,818],{},"send_failed"," climbing is the earliest signal that an observability pipeline is losing data, and it is invisible from the application side.",[92,821,823],{"id":822},"failure-modes-that-produce-no-error","Failure modes that produce no error",[407,825,827],{"id":826},"a-component-is-defined-but-not-in-a-pipeline","A component is defined but not in a pipeline",[100,829,831],{"className":242,"code":830,"language":244,"meta":105,"style":105},"exporters:\n  otlp\u002Fuptrace:\n    endpoint: api.uptrace.dev:4317\n\nservice:\n  pipelines:\n    traces:\n      exporters: [debug]   # otlp\u002Fuptrace is never used\n",[107,832,833,839,846,856,860,866,872,878],{"__ignoreMap":105},[110,834,835,837],{"class":112,"line":113},[110,836,252],{"class":251},[110,838,255],{"class":160},[110,840,841,844],{"class":112,"line":119},[110,842,843],{"class":251},"  otlp\u002Fuptrace",[110,845,255],{"class":160},[110,847,848,851,853],{"class":112,"line":125},[110,849,850],{"class":251},"    endpoint",[110,852,270],{"class":160},[110,854,855],{"class":273},"api.uptrace.dev:4317\n",[110,857,858],{"class":112,"line":131},[110,859,280],{"emptyLinePlaceholder":279},[110,861,862,864],{"class":112,"line":283},[110,863,286],{"class":251},[110,865,255],{"class":160},[110,867,868,870],{"class":112,"line":291},[110,869,294],{"class":251},[110,871,255],{"class":160},[110,873,874,876],{"class":112,"line":299},[110,875,302],{"class":251},[110,877,255],{"class":160},[110,879,880,882,884,886,889],{"class":112,"line":307},[110,881,338],{"class":251},[110,883,313],{"class":160},[110,885,343],{"class":273},[110,887,888],{"class":160},"]   ",[110,890,892],{"class":891},"sAwPA","# otlp\u002Fuptrace is never used\n",[88,894,895],{},"A configured component that no pipeline references is ignored without warning. This is the single most common reason a Collector starts cleanly and forwards nothing.",[88,897,898],{},"Validate the file before restarting:",[100,900,902],{"className":147,"code":901,"language":149,"meta":105,"style":105},"otelcol-contrib validate --config \u002Fetc\u002Fotelcol-contrib\u002Fconfig.yaml\n",[107,903,904],{"__ignoreMap":105},[110,905,906,909,912,915],{"class":112,"line":113},[110,907,908],{"class":557},"otelcol-contrib",[110,910,911],{"class":273}," validate",[110,913,914],{"class":502}," --config",[110,916,917],{"class":273}," \u002Fetc\u002Fotelcol-contrib\u002Fconfig.yaml\n",[407,919,921],{"id":920},"the-wrong-port","The wrong port",[356,923,924,934],{},[359,925,926],{},[362,927,928,931],{},[365,929,930],{},"Transport",[365,932,933],{},"Port",[372,935,936,944,952],{},[362,937,938,941],{},[377,939,940],{},"OTLP\u002FgRPC",[377,942,943],{},"4317",[362,945,946,949],{},[377,947,948],{},"OTLP\u002FHTTP, self-hosted",[377,950,951],{},"4318",[362,953,954,957],{},[377,955,956],{},"OTLP\u002FHTTP, Uptrace Cloud",[377,958,959],{},"443",[88,961,962],{},"Sending gRPC to an HTTP port produces a connection that opens and then fails, which reads like a network problem rather than a configuration one.",[407,964,966],{"id":965},"the-endpoint-path","The endpoint path",[88,968,969,970,973,974,977,978,981],{},"Over HTTP, ",[107,971,972],{},"OTEL_EXPORTER_OTLP_ENDPOINT"," has the signal path appended automatically, while ",[107,975,976],{},"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"," is used exactly as written. Setting the signal-specific variable to a bare host produces requests to ",[107,979,980],{},"\u002F"," and a 404.",[407,983,985],{"id":984},"sampling-is-dropping-everything","Sampling is dropping everything",[88,987,988,991],{},[107,989,990],{},"OTEL_TRACES_SAMPLER=always_off",", or a ratio low enough that a low-traffic service produces nothing in the window you are watching. At 1% and 50 requests a minute, the expected wait for a single trace is two minutes.",[88,993,994,995,998,999,232],{},"Set the sampler to ",[107,996,997],{},"always_on"," while debugging. See ",[229,1000,1001],{"href":38},"sampling",[407,1003,1005],{"id":1004},"traces-are-split-across-collector-replicas","Traces are split across Collector replicas",[88,1007,1008,1009,1013],{},"With more than one Collector replica behind an ordinary load balancer, the spans of one trace land on different instances. Data is not lost, but ",[229,1010,1012],{"href":1011},"\u002Fopentelemetry\u002Fsampling#tail-based","tail-based sampling"," decides on partial traces and the results have holes.",[92,1015,1017],{"id":1016},"signal-specific-problems","Signal-specific problems",[88,1019,1020],{},"The symptoms above are pipeline-level. Two situations have their own diagnostics:",[204,1022,1023,1033],{},[207,1024,1025,1028,1029],{},[210,1026,1027],{},"Logs arrive but carry no trace context"," — see ",[229,1030,1032],{"href":1031},"\u002Fopentelemetry\u002Flogs#log-trace-correlation","log-trace correlation",[207,1034,1035,1028,1038],{},[210,1036,1037],{},"Spans arrive but do not form a single trace",[229,1039,1041],{"href":1040},"\u002Fopentelemetry\u002Fcontext-propagation#troubleshooting-broken-traces","troubleshooting broken traces",[92,1043,1045],{"id":1044},"a-checklist","A checklist",[1047,1048,1049,1055,1058,1064,1067,1076,1083],"ol",{},[207,1050,1051,1054],{},[107,1052,1053],{},"OTEL_TRACES_EXPORTER=console"," — does the application produce spans?",[207,1056,1057],{},"Is the sampler set to something that keeps them?",[207,1059,1060,1061,1063],{},"Does the Collector's ",[107,1062,715],{}," move?",[207,1065,1066],{},"Does the debug exporter show the records?",[207,1068,1069,1070,1072,1073,1075],{},"Does ",[107,1071,735],{}," move, and does ",[107,1074,818],{}," stay flat?",[207,1077,1078,1079,1082],{},"Is every configured component actually listed in ",[107,1080,1081],{},"service.pipelines","?",[207,1084,1085,1086,1088],{},"Does the process call ",[107,1087,216],{}," before it exits?",[92,1090,1092],{"id":1091},"whats-next","What's next?",[204,1094,1095,1101,1107,1113,1119,1125],{},[207,1096,1097,1100],{},[229,1098,1099],{"href":42},"OpenTelemetry Collector"," — pipeline structure and installation",[207,1102,1103,1106],{},[229,1104,1105],{"href":49},"Collector configuration"," — receivers, processors, exporters in detail",[207,1108,1109,1112],{},[229,1110,1111],{"href":73},"OpenTelemetry environment variables"," — SDK-side configuration and queue sizing",[207,1114,1115,1118],{},[229,1116,1117],{"href":38},"OpenTelemetry sampling"," — what gets kept and where the decision is made",[207,1120,1121,1124],{},[229,1122,1123],{"href":53},"Collector exporters"," — retry, queue, and TLS settings behind export failures",[207,1126,1127,1129],{},[229,1128,9],{"href":10}," — the last stage of the pipeline",[1131,1132,1133],"style",{},"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 pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":105,"searchDepth":131,"depth":119,"links":1135},[1136,1137,1138,1142,1143,1150,1151,1152],{"id":94,"depth":119,"text":95},{"id":140,"depth":119,"text":141},{"id":235,"depth":119,"text":236,"children":1139},[1140,1141],{"id":409,"depth":125,"text":410},{"id":543,"depth":125,"text":544},{"id":579,"depth":119,"text":580},{"id":822,"depth":119,"text":823,"children":1144},[1145,1146,1147,1148,1149],{"id":826,"depth":125,"text":827},{"id":920,"depth":125,"text":921},{"id":965,"depth":125,"text":966},{"id":984,"depth":125,"text":985},{"id":1004,"depth":125,"text":1005},{"id":1016,"depth":119,"text":1017},{"id":1044,"depth":119,"text":1045},{"id":1091,"depth":119,"text":1092},"How to find where telemetry is being lost - checking the SDK with a console exporter, the Collector debug exporter and its sampling settings, internal Collector metrics, and the failure modes that produce no data and no errors.","md","\u002Fopentelemetry\u002Fcover\u002Ftroubleshooting.webp",{"keyword_difficulty":1157,"readingTime":1158},"medium",{"text":1159,"minutes":1160,"time":1161,"words":1162},"6 min read",5.02,301200,1004,{"title":76},{"title":82,"description":1153},false,"cCVERYS-FbE_D-Yk9YuhpAmLbSNYbprVBXOFFPABklc",[1168,83],{"title":72,"path":73,"stem":74,"description":1169,"children":-1},"Reference for OpenTelemetry SDK environment variables - endpoint and protocol, service identity, sampling, propagators, batching, and limits. Includes defaults, accepted values, and the variables that were removed.",1787234207116]