A microservice fails loudly — a 500, a stack trace, a pager going off. An LLM app fails politely: the answer just got worse, the cost quietly tripled, or the agent looped fourteen times before answering, and nothing errored. This is how you point OpenTelemetry at that problem, so 'the model felt off' turns into 'the third tool call took six seconds and triggered two extra model round-trips.'
A slow request crosses five microservices and you have five log streams that don't talk to each other. This is how OpenTelemetry traces turn 'somewhere it's slow' into 'the inventory service's DB call took 1.74s on this exact request' — including context propagation, sampling, and the gotchas that split your trace in two.