Observability is the ability to explain “what happened inside” a system by connecting the records it leaves behind. For services using LLM (Large Language Model), it should be possible to trace which documents were referenced and which models and tools were used to generate a single answer.
LLM services can fail even if the server is healthy. The response code might be 200 and latency short, but the user could be given outdated regulations. Conversely, the answer might be correct, but the system might have retried multiple times internally, consuming more time and cost than expected.
Therefore, the goal of LLM observability is to connect the execution process, answer quality, time taken, and cost within the context of the same request. This article will first examine what is not visible, then explain how to trace a single request, and finally how to connect evaluation and operational systems. The time, cost, and failure examples below are hypothetical for understanding.

This is an AI-generated image depicting the observation of multiple processing stages of an LLM application as a single flow.
1. Why a 200 Response Code Doesn’t Always Mean Business Success
Consider a chatbot that provides internal policy guidance. When a user asks about travel expense settlement criteria, the system finds relevant documents, passes them to the model, and displays the answer. Since the API server, search server, and model API all responded normally, the operational dashboard is green.
But what if the retrieved document contains last year’s regulations? The model faithfully summarized the provided document, but incorrect information is delivered to the user. In this case, there are no network errors or JSON parsing errors. The response that was successfully delivered is different from the response that solved the user’s problem.
Such discrepancies also exist in traditional services. Google’s SRE documentation explains not only explicit HTTP errors but also implicit failures that return incorrect content. In LLM systems, where success must be judged based on generated sentences, this issue more frequently becomes central to operations. Google SRE: Monitoring Distributed Systems
If success is divided into at least three stages, what’s missing becomes clear.
| — | — | — |
| Verification Stage | Example of Success | Remaining Questions |
| Transmission and Execution | Received request and returned response completely | Is the content correct? |
| Result Quality | Generated an answer relevant to the question and with evidence | Was the actual task completed? |
| Business Outcome | Provided necessary information or completed authorized tasks | Are time and cost sustainable? |
For example, if an agent responds “Received” but there is no record of submission in the actual business system, it should not be counted as a business success. Conversely, if an unauthorized request was appropriately rejected, it could be a normal result that adheres to policy. Classifying all rejections as errors and all sentence generations as successes will lead metrics in the wrong direction.
This is the first reason why LLM observability is needed. It is necessary to separately confirm that the service is alive and that the service is performing its role.
2. The Answer is Determined Outside of Model Calls
A real LLM application doesn’t end with a single model. If RAG (Retrieval-Augmented Generation) is used, external documents related to the question are found and included in the model’s input. If an agent uses tools, search or business API calls follow based on the model’s output.
Following a single request to an internal policy chatbot typically involves the following steps:
- Authenticate the user and determine the scope of documents they can view.
- Transform the question into a search-appropriate format and find relevant documents.
- Re-rank search results and select document chunks that fit within length limits.
- Combine system instructions, conversation history, and documents to call the model.
- If necessary, execute tools or switch to another model.
- Examine the result format and policy, then respond to the user.
Even for the same question, the length of history, search index, access permissions, and selected documents can vary. If the input delivered to the model changes, the answer can also change. Therefore, approaching the problem by immediately replacing the model simply because quality has deteriorated can lead to missing both the root cause and the cost.
If only model API requests and responses are stored, it’s difficult to know the permission filters applied before search or the reasons for excluding certain documents. Looking only at gateway logs might not reveal how many model calls a conversation led to. It is necessary to record work units such as search, document selection, model calls, and tool execution at a location that understands the application’s meaning.
At this point, the scope of observation should not be exaggerated. What we trace are the observed input conditions, call sequence, results, and status from the application. General API instrumentation cannot reconstruct the model’s internal private inference process or the reasoning at the weight level.
3. Connecting Metrics, Logs, and Traces to the Same Question
Observability data is usually described as metrics, logs, and traces. The important thing is not to collect a lot of each type, but whether they are connected when investigating a single problem.
Metrics are numbers aggregated over time. They tell
Leave a Reply