Contents
  1. Part I — Operational evidence
    1. Questions observability must answer
      1. Question-to-evidence contract
    2. From isolated records to executions
      1. Selected turning points
  2. Part II — Representing one execution
    1. Traces, spans, events, and links
    2. What each signal preserves
      1. Metric forms
  3. Part III — Capturing interpretable evidence
    1. Record meaning-changing boundaries
      1. Model invocation
      2. Retrieval, parsing, and tools
      3. Effects
      4. Boundary record
    2. Identify the system that ran
    3. Propagate context and observe telemetry
      1. Telemetry integrity
  4. Part IV — Reconstruction and diagnosis
    1. Build a defensible execution account
      1. Evidence status
    2. Find the consequential divergence
      1. Investigation sequence
  5. Part V — Time, cost, and outcomes
    1. Attribute elapsed time
    2. Build an attributable cost ledger
      1. Accounting boundaries
    3. Connect operations to outcomes
  6. Part VI — Evidence under constraints
    1. Sample for the question
      1. Sampling choices
    2. Govern telemetry as sensitive data
    3. Keep observability from failing the service
      1. Instrumentation decision record
  7. Check understanding
  8. Open questions
  9. Selected talks
  10. References
  11. Talk library
← All topics

Observability

An AI system can return HTTP 200, emit no exception, and still give a useless answer or perform the wrong action. When that happens, engineers need more than the final response and a dashboard average. They need to identify the affected task attempt, reconstruct the path that actually ran, recover the inputs and versions that influenced it, distinguish proposed actions from confirmed effects, and determine where time and money went. Observability is the ability to investigate system behavior through operational evidence. Telemetry is the recorded data—events, logs, metrics, traces, usage records, and effect confirmations—from which that investigation proceeds. The central design question is not “What can we log?” but “What will we need to establish later?” A complete trace can establish what instrumented operations occurred; it cannot by itself establish that the result was correct, useful, authorized, or safe. Those outcome claims require an intended-purpose evaluation or an authoritative check of external state.

Part I — Operational evidence

Questions observability must answer

Start with a concrete operational question. For a bad result, engineers usually need to ask: Which task and attempt produced it? Which components, model calls, retrievals, tools, retries, and asynchronous jobs participated? What information and configuration influenced each decision? Which effects were requested, attempted, confirmed, or left uncertain? How much elapsed time and expense belonged to the attempt? Which claims are directly recorded, which are derived from records, and which remain unavailable?

Question-to-evidence contract

Different questions require different evidence. No single signal answers all of them.
QuestionUseful evidenceWhat it does not establish
What executed?Task and attempt IDs; spans; events; tool-call recordsUninstrumented work or why a model chose an output
What influenced it?Input references; retrieved evidence; code, model, prompt, schema, policy, and configuration identitiesUndisclosed provider state or correctness of the inputs
What effect occurred?Operation ID; target-system receipt; authoritative state read; settlement or application acknowledgmentHuman understanding or reversal of an already completed effect
Where did time and cost go?Request-level timing relationships; provider usage; paid-tool records; applicable pricesCausation from aggregate correlation or missing provider usage
Was the outcome good?Task-specific checks, human review, or authoritative downstream outcomesA conclusion from transport success or an error-free span alone

This boundary prevents a common category error. A span with status “OK” says that the instrumented operation completed according to that instrumentation. It does not say the model grounded its answer, selected the intended tool, respected a business rule, or helped the user. Conversely, a later user correction may show that an outcome was bad without identifying which component caused it. Observability supplies the execution evidence; evaluation and authoritative outcome checks supply the criteria by which that execution is judged.

From isolated records to executions

Software observability developed around a recurring distributed-systems problem: a symptom can appear far from its source. A slow page may reflect a browser resource, an upstream service, a queue, or a dependency changed several calls earlier. Local logs show what one process reported. Aggregate metrics reveal that a population changed. Neither necessarily connects the operations that produced one affected request.

Selected turning points

These dates identify documented publications or project announcements, not universal invention dates.
DateDevelopmentContribution
July 1998NetLoggerUsed a common event format to follow data through application, operating-system, and network components.
2007X-TracePropagated a task identifier across application and network layers to connect reports into a task tree.
April 2010Dapper reportDescribed production tracing based on shared-library instrumentation and adaptive sampling at Google.
May 2019OpenTelemetry announcedMerged OpenTracing and OpenCensus work to reduce incompatible instrumentation and duplicated integrations.
November 2021W3C Trace ContextStandardized portable HTTP trace-parent propagation across tracing implementations.
2023OpenCensus transitionOpenTelemetry reported feature parity in several languages and scheduled most OpenCensus repositories for archival.

These mechanisms accumulated rather than replacing one another. Metrics remain efficient for detecting population changes; events retain local detail; traces connect operations. AI applications extend the execution record with model identity, prompt and agent versions, retrieved context, token usage, tool calls, and generated content when policy permits. LinkedIn, for example, described rich pre-production inspection and leaner production OpenTelemetry spans for model calls, tool invocations, and memory use—an illustration of capture detail changing with operating constraints, not a universal architecture.

Part II — Representing one execution

Traces, spans, events, and links

A trace correlates operations belonging to one logical execution. A span records one operation with an identity, start and end times, and optional attributes, events, status, and links. A span event marks an instant—such as a retry decision—inside or alongside duration-bearing work. A trace ID identifies the trace; a span ID identifies one operation; a parent span ID expresses a parent-child relationship. These identities describe telemetry structure, not business authority.

Parent-child relationships work when one operation starts or contains another causal continuation. Span links are better when strict nesting would misrepresent the relationship: a batch consumer may process messages from several producers, or a delayed job may begin in a new trace after the originating request ends. Messaging conventions therefore use links to associate consumer work with message-creation contexts. A separate application correlation ID can join several traces or requests into one order, conversation, or workflow, but it does not turn them into one trace.

This structure is a dependency graph, not necessarily a call stack or total timeline. Concurrent retrieval and model work can overlap. A queue can delay consumption. A retry creates another attempt. Different hosts can disagree about wall-clock timestamps, so communication relationships—send before receive, response before client receipt—can constrain order more reliably than sorting all timestamps together. Temporal overlap alone proves neither parentage nor causation.

One task across synchronous and asynchronous work

Example

A logical task can contain nested calls, linked asynchronous work, and an opaque boundary; one parent tree is not always an honest representation.

A request invokes retrieval and model work. The model proposes a tool call whose message creates asynchronously linked consumer work. The consumer receives authoritative effect confirmation, while the external model provider remains observable only at its boundary. Edge labels distinguish invocation, data, messaging linkage, and effect evidence; layout spacing is not a time scale.
Read the diagram as text
  • Application request. Logical task attempt entering the application.
  • Retrieval. Returns evidence identifiers and selected content references.
  • Model boundary. The application records the request and response, but provider internals are opaque.
  • Tool proposal. A model output becomes a validated action request.
  • Queued message. Carries message identity and propagated creation context.
  • Delayed consumer. Starts asynchronous work linked to message creation.
  • Authoritative effect. Target-system evidence confirms the defined effect boundary.
  • Application requestRetrieval: invokes.
  • RetrievalModel boundary: evidence data.
  • Application requestModel boundary: invokes.
  • Model boundaryTool proposal: proposes.
  • Tool proposalQueued message: creates message.
  • Queued messageDelayed consumer: async trace link.
  • Delayed consumerAuthoritative effect: effect confirmation.

What each signal preserves

An event or structured log preserves an individual occurrence: a policy rejection, a provider response, a queue delivery, or an effect receipt. A metric aggregates numerical observations into streams over time. A trace preserves relationships among operations in a particular execution. Shared trace and span identifiers can correlate logs with execution context, while resource fields identify the emitting service or infrastructure.

Metric forms

  • CounterAccumulates occurrences, such as attempts or failures. Interpret its rate over a stated interval and account for resets.
  • GaugeRecords a current absolute, non-additive value, such as queued work or occupied capacity. Use an asynchronous observable gauge when the value is obtained through an accessor rather than delivered as a change event.
  • HistogramPlaces observations into compatible buckets while retaining count and sum, allowing aggregation before estimating fleet percentiles.
  • ExemplarAssociates a selected observation with trace context so an aggregate point can lead to an execution. It is selected evidence, not a representative sample by default.

Every distinct metric label set creates another time series. Request IDs, user IDs, arbitrary prompt text, and tool arguments can therefore make series counts grow with traffic. Keep metric dimensions bounded—operation, model, provider, deployment, disposition, or a controlled task class—and place request-level identity in protected logs or spans. High-cardinality trace data still has storage and privacy costs; the point is to use the representation suited to the question, not to move unlimited data elsewhere.

Each signal preserves different information.
SignalPreservesTypical questionMain loss or risk
Event or logOne occurrence and local fieldsWhat did this component report?Relationships require explicit correlation; payloads may be sensitive.
MetricAggregate values over a population and intervalDid rate, latency, usage, or saturation change?Individual execution detail is aggregated away.
TraceRelationships and timing within selected executionsWhich path and dependencies produced this attempt?Sampling, missing spans, and instrumentation gaps limit completeness.

Part III — Capturing interpretable evidence

Record meaning-changing boundaries

Model invocation

Capture evidence where information changes meaning. Stored conversation messages are not identical to the final model input: a chat template serializes roles and control tokens, retrieval may add passages, a policy layer may remove content, and a gateway may route to another model. Around a model boundary, record the operation and attempt identities, requested and returned model when available, prompt or template identity, ordered input references, relevant generation settings, response disposition, finish or cancellation reason, and provider-reported usage. If content is omitted, redacted, truncated, or stored externally, record that status explicitly.

Retrieval, parsing, and tools

At retrieval and transformation boundaries, preserve the query or query reference, collection and index identity, filters, returned evidence identifiers, ordering, and the parser or transformation result. At a tool boundary, distinguish the model's proposed call from schema validation, authorization, execution, and returned result. Tool name and call ID connect proposal to execution; arguments and results are sensitive opt-in content under current OpenTelemetry conventions. A tool span that finishes successfully only establishes its instrumented boundary.

Effects

External effects need their own evidence. A publisher confirmation can show that a broker accepted a message while saying nothing about whether a consumer processed it. A server response finishing can mean bytes were handed to the operating system, not that a client received or understood them. Record the requested action, stable operation ID, validation and authorization result, attempt, target-system receipt, and—when the claim requires it—an authoritative read or application acknowledgment showing the effect boundary actually reached. If the outcome is unknown, preserve it as unknown; a timeout does not prove that the effect failed.

Boundary record

The smallest useful record differs by boundary.
BoundaryBeforeAfterDisposition to preserve
ModelAttempt, requested model, input references, settingsReturned model, output reference, usageCompleted, truncated, cancelled, errored, usage unavailable
ToolCall ID, schema version, proposed argumentsValidated arguments, result referenceRejected, attempted, completed, timed out, result unavailable
External effectOperation ID, target, authorized intentTarget receipt or authoritative stateConfirmed, failed without effect, or unknown

Identify the system that ran

A trace becomes interpretable only when it identifies the system that produced it. Record resolvable immutable identities for the deployed code or artifact, agent or workflow, prompt or template, tool and response schemas, retrieval corpus or index, policy bundle, feature-flag assignment, and relevant tenant configuration. For models, separate provider, requested model, returned model, immutable snapshot or fine-tune where available, and routing layer. A model family or moving alias does not identify a deployment.

OpenTelemetry schema URLs provide one useful pattern: a versioned, immutable schema identity travels with telemetry groups so a schema-aware consumer can translate supported attribute changes. This helps distinguish a renamed field from changed system behavior. It does not identify code, prompts, models, policies, or business-data schemas; those remain application responsibilities. Likewise, an identifier does not prove that its artifact remains retrievable or that emitted values conformed to it.

The release identity chapter explains why source commits, packaged code, configuration, schemas, dependencies, and model selection can all be release artifacts. Evaluation manifests preserve the system and assessment used in an evaluation. A production trace should link to compatible identities, but it is not itself an evaluation manifest. Provider internals that cannot be observed should remain explicitly unavailable instead of being reconstructed from a product label.

Propagate context and observe telemetry

Context propagation carries trace and parent-span identity across a process boundary. With W3C Trace Context, a sender injects a traceparent header and a receiver extracts it so downstream spans join the same trace. Custom protocols and message envelopes need equivalent injection and extraction. Without propagation, two fully instrumented services can emit valid but disconnected traces. In an MCP demonstration, client context was carried through protocol metadata and restored by a controlled server so the backend could reconstruct the parent relationship; a third-party server outside the administrative domain remained opaque in that setup.

OpenTelemetry baggage carries application-defined properties with a distributed request. It is separate from trace identity and becomes a log, span, or metric attribute only when instrumentation copies it. Because baggage can cross process boundaries, keep it bounded, clear it before untrusted boundaries when appropriate, and never treat it as authorization. A tenant or workflow label carried in baggage is correlation context, not proof that the caller may access that tenant or workflow.

Telemetry integrity

The evidence pipeline is another distributed system. Application SDK queues can fill and drop spans. Collectors can retry and buffer exports, yet still lose records after capacity or retry limits are exhausted. Tail samplers can evict buffered traces, receive late spans after a decision, or make inconsistent decisions when related spans reach different collector instances. OTLP retries can duplicate telemetry when an acknowledgment is lost. Record queue occupancy, export failures, dropped and truncated records, sampling policy, collector and instrumentation versions, and schema identity. A quiet dashboard without these health signals is ambiguous.

Part IV — Reconstruction and diagnosis

Build a defensible execution account

Reconstruction begins with identity: the business task, attempt, trace or traces, provider requests, queue deliveries, tool calls, checkpoints, and external operation IDs. Join records through explicit parentage, links, call IDs, message identities, and application correlation fields. Use timestamps as observations from particular clocks, not as a universal total order. Communication and dependency relationships can constrain ordering when host clocks disagree.

Evidence status

Use evidence status to prevent plausible narration from filling a gap.
StatusMeaningExample
ObservedA retained record directly states the fact within its instrumentation boundary.Tool attempt call-7 carried quantity 1000.
DerivedA rule combines observed records without adding an unobserved event.The consumer work followed message creation because the recorded link connects them.
HypothesisA testable explanation is consistent with current records but not established.The parser change caused the wrong argument.
UnavailableRequired evidence was not captured, was lost, or lies outside the observation boundary.The third-party service's internal steps are unknown.

For agents, a trajectory is the ordered observations, selected actions, and results from one task attempt. A trajectory can be represented through spans and events, but generated reasoning text should not be treated as a faithful causal account of model computation. Experiments have shown models rationalizing answers while omitting input features that influenced them. Recorded inputs, actions, and outcomes show what was observed; controlled interventions test a causal explanation.

A runtime checkpoint is another evidence source, not a magical replay of the world. It can identify saved graph state, pending tasks, or a machine snapshot. Historical replay may re-execute later model calls and APIs, producing different results or repeated external effects. The runtime chapter owns persistence and recovery; for observability, the requirement is to record checkpoint identity and distinguish reading saved evidence from executing work again.

Find the consequential divergence

Begin with the affected outcome and its execution identity. First check whether the evidence path is complete enough for the proposed investigation: propagation, sampling, exporter health, content availability, and version context all matter. Then reconstruct the path and compare it with an explicit expectation or a successful execution under comparable conditions. Align equivalent stages rather than comparing arbitrary neighboring timestamps.

Investigation sequence

Each step narrows what the records can support before the investigation makes a causal claim.

  • Identify the affected attemptConnect the reported outcome to its task, attempt, trace, provider request, tool call, and external operation identities.
  • Check evidence coverageDetermine whether propagation, sampling, export, content capture, and version records are complete enough to answer the question. Mark missing evidence instead of treating silence as normal behavior.
  • Reconstruct dependenciesOrder recorded operations using parent relationships, links, messages, and effect confirmations rather than timestamps alone.
  • Align a comparable executionMatch equivalent stages from a successful execution or an explicit expected path so differences in workload or structure do not masquerade as faults.
  • Locate the first supported material differenceFind the earliest recorded divergence capable of explaining the downstream outcome, while keeping correlation distinct from causation.
  • Test competing explanationsChoose an observation or controlled change that could reject each remaining hypothesis.

Inspect boundaries separately: input assembly, retrieval, provider response, parsing, policy, tool selection, state, external effect, and infrastructure. Suppose a tool received an excessive quantity and executed it. The final tool call establishes where the effect was attempted, but adjacent records may show that an upstream model constructed the bad argument. In larger systems, a subtle earlier error can propagate through many prompts and tools, so the final failing interaction need not identify the component to change.

Align executions to find the first material difference

Example

The final bad effect can be downstream of an earlier recorded divergence; locating that difference narrows the investigation but does not by itself prove causation.

Equivalent stages expose the first recorded material difference: the affected execution proposes quantity 1000 where the comparable execution proposes 10. Validation, tool execution, and effect confirmation preserve the downstream path. A controlled replay or intervention must still test whether changing that proposal changes the outcome.
Read the diagram as text
  • Comparable input. A successful attempt begins with the matched task conditions.
  • Retrieved evidence. The comparable attempt records the selected evidence identifiers.
  • Proposed quantity: 10. The model boundary directly records the proposed tool argument.
  • Validation passed. The recorded schema and policy checks accepted quantity 10.
  • Tool attempted 10. The tool boundary records the validated quantity it received.
  • Expected effect confirmed. Authoritative target-system evidence confirms the defined effect boundary.
  • Affected input. The bad attempt begins with task conditions matched to the comparable execution.
  • Retrieved evidence. The affected attempt records the same selected evidence identifiers.
  • Proposed quantity: 1000. This is the first recorded material difference between the aligned stages.
  • Validation passed. The recorded checks accepted the excessive quantity; whether a missing rule caused the outcome remains a hypothesis.
  • Tool attempted 1000. The tool executed the validated argument it received; this is downstream evidence, not automatic proof of the originating defect.
  • Wrong effect confirmed. Authoritative target-system evidence confirms that the unintended item was changed.
  • Controlled causal test. Replay a captured boundary or change one relevant rule while holding the comparison conditions fixed.
  • Hypothesis disposition. A changed downstream outcome supports the tested explanation; an unchanged outcome rejects or weakens it.
  • Comparable inputRetrieved evidence: assembles request.
  • Retrieved evidenceProposed quantity: 10: informs proposal.
  • Proposed quantity: 10Validation passed: submits quantity 10.
  • Validation passedTool attempted 10: authorizes attempt.
  • Tool attempted 10Expected effect confirmed: receives confirmation.
  • Affected inputRetrieved evidence: assembles request.
  • Retrieved evidenceProposed quantity: 1000: informs proposal.
  • Proposed quantity: 1000Validation passed: submits quantity 1000.
  • Validation passedTool attempted 1000: authorizes attempt.
  • Tool attempted 1000Wrong effect confirmed: receives confirmation.
  • Proposed quantity: 1000Controlled causal test: defines tested change.
  • Controlled causal testHypothesis disposition: produces observation.

The earliest consequential divergence is the first supported difference capable of explaining downstream behavior—not merely the first unusual value or earliest timestamp. Correlation generates hypotheses; it does not prove root cause. Use a controlled change or a fixed replay boundary to distinguish explanations. Replay can hold a captured provider response fixed while exercising downstream code. Falsifiable debugging experiments determine what observation would reject each proposed cause.

Part V — Time, cost, and outcomes

Attribute elapsed time

Define the observation boundary before naming a latency. End-to-end client latency, server operation duration, queue time, model prefill, time to first response chunk, server time to first token, generation duration, inter-token latency, network transfer, and client-visible completion are different intervals. Current OpenTelemetry generative-AI metrics distinguish client time to first response chunk from server time to first token; chunks and tokens are not one-to-one, and the observation points differ.

A critical path is the longest weighted dependency path controlling completion. Total work is the sum of work across operations. If retrieval and model preparation overlap, their durations both contribute work but their overlap is counted once in elapsed wall time. The slowest individual span is not necessarily the critical path, and subtracting overlapping child durations independently from a parent can produce nonsense. Trace relationships and interval unions are required.

Elapsed latency is not summed span time

Example timings

Overlapping span durations describe concurrent recorded work and must not be added to obtain wall-clock latency.

Request0120 msDuration 120 ms
Retrieval535 msDuration 30 msWithin Request
Model operation1080 msDuration 70 msWithin Request
Response streaming4075 msDuration 35 msWithin Model operation
Tool attempt80100 msDuration 20 msWithin Request
Retry attempt100115 msDuration 15 msWithin Request
Request finalization115120 msDuration 5 msWithin Request
The 120 ms request contains overlapping retrieval, model, streaming, tool, retry, and finalization spans. Model work overlaps retrieval, and streaming overlaps the model operation. The final five milliseconds are recorded as a request-finalization child span. This timeline shows containment and overlap only; it does not encode dependency causation or identify a critical path.
Read the diagram as text
  • Request. End-to-end server observation boundary. 0 to 120 ms; duration 120 ms.
  • Retrieval. Evidence lookup overlaps the model operation. 5 to 35 ms; duration 30 ms. Parent: Request.
  • Model operation. Includes processing before and after response onset. 10 to 80 ms; duration 70 ms. Parent: Request.
  • Response streaming. First response chunk appears at its start. 40 to 75 ms; duration 35 ms. Parent: Model operation.
  • Tool attempt. A recorded tool interval; the timeline does not assert what caused it to begin. 80 to 100 ms; duration 20 ms. Parent: Request.
  • Retry attempt. A separate recorded attempt; temporal adjacency alone does not prove dependency. 100 to 115 ms; duration 15 ms. Parent: Request.
  • Request finalization. A recorded five-millisecond finalization span inside the parent request. 115 to 120 ms; duration 5 ms. Parent: Request.

Distributions matter. Engaged users issue repeated requests and accumulate exposure to slow tails; voice conversations can be disrupted by a single long pause. Histograms can be aggregated before estimating fleet percentiles, but averaging instance percentiles does not produce a fleet percentile. Component p95 values also cannot be added to obtain end-to-end p95 because the slow observations need not occur on the same requests. Slice latency by operation, dependency, version, workload shape, and outcome disposition before attributing a regression.

Build an attributable cost ledger

Cost attribution starts with execution identity. For each directly metered item, preserve quantity, unit, currency, applicable price reference, request and attempt, dependency, customer or project attribution, and whether the value is provider-reported, independently measured, or estimated. Model records may include input, output, and cached tokens when the provider supplies them; other modalities and reasoning usage require their own supported units. Token counts are not monetary cost until a price rule is applied.

Count attempts, not only successful logical calls. A retry may produce multiple provider calls for one workflow step. Failed attempts, paid tools, discarded branches, and human review can incur cost even when the workflow fails. Avoid double counting when both an application instrumenter and a gateway report the same model request, or when a parent record already contains its children's cumulative expense. Interrupted streams may never deliver a final provider-usage record; mark that quantity unavailable rather than zero and keep separate estimates visibly labeled.

Accounting boundaries

These totals answer different accounting questions.
ViewIncludesInterpretation
Attempt costObserved calls and tools for one attemptExpense incurred by this execution, including failed work when recorded.
Workflow costDeduplicated attempt and dependency costs across one workflowDirect cost of the workflow under the stated inclusion rules.
Provider cost exportProvider-accounted expense for its service period and groupingReconciliation boundary; it may not join to every application request.
Allocated shared costA stated rule distributing platform, network, storage, or support expenseOrganizational allocation, not proof of physical consumption by one request.
Cost per useful outcomeCost divided by independently established useful outcomesRequires outcome assessment and explicit unresolved handling.

Keep cost per attempted request, completed workflow, and useful outcome separate. A growing token total may reflect more use, longer contexts, retries, or waste. It does not establish delivered value. Deeper optimization and workload economics belong in AI Cost and Performance Engineering.

Connect operations to outcomes

Monitoring repeatedly measures a defined operational question over an eligible population and period. A service-level indicator specifies what counts as a good event and which events are eligible; a service-level objective gives that indicator a target and period. For AI systems, transport availability can be one indicator, while task completion, tool success, escalation, correction, review duration, latency, cost, safety events, and recovery describe different properties. Do not collapse them into one unexplained health score.

Stable task and attempt identities let later evidence join the execution: a reviewer override, customer correction, escalation, abandonment, dispute, or authoritative downstream result. Define the numerator, denominator, aggregation unit, follow-up window, unresolved disposition, slice, and sampling policy. In a human-reviewed workflow, rising override frequency or review duration can be useful investigation signals, but they are indirect: a long review may reflect confusing output, difficult cases, or a changed reviewer population.

Production outcomes are often delayed or selectively observed. Recent requests have had less time to receive a result. Only escalated cases may receive expert review. Users may report visible failures and remain silent about others. The observed success rate therefore estimates success among observed outcomes, not automatically among all eligible cases. Report successes, failures, and unresolved cases separately; absence of a recorded failure is not success. Incomplete production feedback explains the evaluation consequences.

Aggregate changes also require slicing. A deployment can look worse because it received a harder task mix even when within-slice behavior stayed constant; the reverse can hide regressions. Compare relevant workload, version, provider, model, risk, and disposition slices while preserving denominators and uncertainty. When a causal product decision is needed, use an appropriate live experiment; telemetry supplies exposure and outcome records, but randomization and analysis supply the intervention claim.

Part VI — Evidence under constraints

Sample for the question

Full-fidelity tracing is often impractical, so sampling selects executions for recording or retention. Head sampling decides before the complete trace is known and is efficient, but cannot preferentially retain failures discovered later. Tail sampling buffers most or all of a trace before deciding and can retain executions with errors, high latency, or selected attributes, but it adds state, routing, and operational complexity. Nothing downstream can recover a trace discarded by an earlier sampler.

Sampling changes the supported claim

Example

Uniform and outcome-enriched policies retain different evidence from the same workload, so their retained percentages answer different questions.

1 / 4 · Underlying workload

All execution types exist before telemetry retention is applied.

The workload contains routine successes, a common failure, a slow success, a rare severe failure, and an incomplete trace. Uniform retention can support population estimation under its design but may miss rare cases; error-enriched retention supports diagnosis but not an unadjusted failure rate; latency-tail retention selects slow executions. The underlying workload does not change.
Read the diagram as text
  • Routine success. A common technically successful execution.
  • Common failure. An execution with a recorded error.
  • Slow success. A successful execution in the latency tail.
  • Rare severe failure. A low-frequency, high-consequence execution.
  • Incomplete trace. Late or dropped spans leave uncertain disposition.
  • Uniform retained set. Known-probability selection intended for population estimation.
  • Failure-enriched set. Retains diagnostic failures but overrepresents them.
  • Latency-tail set. Retains slow traces and requires complete routing and buffering.
  • Routine successUniform retained set: may be selected.
  • Common failureUniform retained set: may be selected.
  • Slow successUniform retained set: may be selected.
  • Common failureFailure-enriched set: selected by error.
  • Rare severe failureFailure-enriched set: selected by error.
  • Slow successLatency-tail set: selected by latency.
  • Incomplete traceLatency-tail set: may evade decision.
  1. Underlying workload. All execution types exist before telemetry retention is applied. Active: Routine success, Common failure, Slow success, Rare severe failure, Incomplete trace. New: Routine success, Common failure, Slow success, Rare severe failure, Incomplete trace.
  2. Uniform selection. A known-probability sample can estimate population properties, subject to sample size and coverage. Active: Routine success, Common failure, Slow success, Rare severe failure, Incomplete trace, Uniform retained set. New: Uniform retained set.
  3. Failure enrichment. Error-based retention improves diagnostic availability while changing the represented population. Active: Routine success, Common failure, Slow success, Rare severe failure, Incomplete trace, Uniform retained set, Failure-enriched set. New: Failure-enriched set.
  4. Tail selection. Tail sampling can retain slow traces but remains vulnerable to incomplete routing, late spans, and buffer limits. Active: Routine success, Common failure, Slow success, Rare severe failure, Incomplete trace, Uniform retained set, Failure-enriched set, Latency-tail set. New: Latency-tail set.

Sampling choices

Selection changes the population represented by retained traces.
PolicyUseful forClaim it cannot support alone
Uniform probabilisticEstimating population properties when inclusion behavior is known and the sample is large enoughReliable capture of every rare severe failure.
Parent-based distributed decisionKeeping child spans aligned with the upstream sampled flag when trace context is propagated and samplers are configured compatiblyRecording or export completeness; propagation can fail and a sampled flag is not a delivery guarantee.
Error- or latency-enriched tailDiagnosing known failures and slow executionsPopulation error or latency frequency without accounting for deliberate selection.
Attribute- or status-selected tailRetaining executions matching a defined operational conditionThe prevalence of that condition in all traffic.
Rate-limited retentionBounding retained telemetry volumeA representative population sample without a separate probability design.
Adaptive instrumentationAllocating capture to changing diagnostic value under a budgetReconstruction of instrumentation that was disabled at the time.
ExemplarNavigating from an aggregate observation to a selected traceEvidence that the selected trace is typical.

Keep separate streams when one policy cannot answer both monitoring and diagnosis. A representative sample can estimate rates; an error-enriched sample can preserve diagnostic detail; bounded escalation can capture sensitive payload evidence for selected incidents. Record the sampling policy and version with retained data. Tail sampling still does not guarantee completeness under buffer eviction, late spans, overload, or upstream head sampling.

Govern telemetry as sensitive data

Telemetry is a governed copy of application data. Prompts, system instructions, retrieved passages, headers, tool arguments and results, model outputs, attachments, conversation identifiers, and user feedback can contain credentials, personal information, confidential material, or regulated records. OpenTelemetry cannot infer what is sensitive in a particular application. Give every captured field a diagnostic purpose, classify it, and decide who may read it and for how long before enabling collection.

Prefer bounded metadata and stable references when raw content is unnecessary. When investigation requires content, store it separately with narrower access and retention where feasible. Redaction before capture prevents the application telemetry path from ever receiving a field. Redaction in a self-deployed collector can prevent it from reaching an external backend, but the field already existed in the application and transport to that collector. Redaction after export leaves another retained copy. These boundaries create materially different exposure.

Synthetic architecture comparison. Moving redaction later changes which systems ever receive raw content and which application buffers, transports, collector queues, external stores, derived views and backups require separate access and deletion controls. The illustration does not establish compliance or successful deletion.

Redaction must understand structure: headers, nested JSON, tool schemas, streaming fragments, and attachments require different handling. Test likely secrets, partial identifiers, multilingual personal data, encoding changes, and false positives that destroy diagnostic value. Hashing predictable identifiers does not automatically anonymize them because candidate values may be enumerable. Minimization is therefore a field, precision, recipient, and lifetime decision—not a one-time text substitution.

Inventory all copies through data-flow governance: application buffers, collectors, observability backends, external content stores, derived metrics, evaluator records, support tools, exports, and backups. Give metadata and payload evidence separate access rules where appropriate. Set artifact-specific retention with a clock-start event, expiry or review condition, disposal action, and accountable owner. Auditability is not permission to keep everything indefinitely.

Keep observability from failing the service

Observability consumes resources: instrumentation CPU and memory, serialization, network egress, collector queues, ingestion, indexing, storage, queries, evaluator records, and engineer review. Agent traces can contain large semi-structured text payloads and need both immediate per-trace inspection and aggregate analysis. Reported unusually large examples show the possible systems problem, not a typical trace size. Measure your workload rather than inheriting an anecdotal budget.

Bound metric cardinality, attribute and payload size, trace depth, queue capacity, batch size, and retention. Truncation can preserve pipeline availability while sacrificing evidence; expose truncation counters and diagnostic status. Batch export reduces per-record overhead but bounded queues can still drop data, and a flush request can fail or time out. Instrumentation callbacks should avoid blocking the application path; exporter failure policy must be explicit rather than accidentally determined by a full queue.

Instrumentation decision record

Choose a signal by the decision it enables and the burden it creates.
Decision fieldQuestion to answer
Operational purposeWhich investigation, alert, attribution, or governance decision uses this signal?
Fidelity and coverageWhat is captured, sampled, truncated, derived, or unavailable?
Volume and cardinalityHow do traffic, branches, labels, and payload size change cost?
SensitivityDoes it contain identity, prompts, retrieved content, arguments, results, or secrets?
Retention and accessWho may inspect it, for what purpose, and until which event or date?
Failure behaviorCan collection block user work? Which losses, delays, retries, and truncations become visible?
OwnerWho maintains semantics, budgets, alerts, access, and deletion behavior?

A useful observability system can say both “this is what the evidence establishes” and “this evidence is incomplete.” It preserves enough identity and structure to reconstruct consequential executions, enough aggregation to detect population changes, and enough integrity telemetry to reveal when those conclusions are no longer justified. More records are valuable only when they improve a decision enough to justify their runtime, financial, and privacy costs.

Open questions

  1. How can teams verify end-to-end instrumentation coverage when providers, queues, tool servers, and client applications expose different semantics? Progress would include coverage manifests, conformance tests, and explicit unavailable regions rather than inferred completeness.

  2. What common cost record could reconcile model modalities, paid tools, retries, discarded branches, shared infrastructure, mutable prices, currencies, and human review without double counting? Progress would preserve each accounting boundary and measured-versus-estimated status instead of forcing one unsupported total.

  3. How can rare severe failures be retained for diagnosis while telemetry still supports unbiased population estimates? Progress would combine known-probability monitoring samples with bounded diagnostic escalation and report selection policies alongside every quantitative claim.

  4. How can content-rich agent traces remain diagnostically useful under strict minimization and deletion requirements? Progress would provide structure-aware redaction tests, separately governed payload evidence, resolvable metadata references, and verified deletion across derived stores and exports.

  5. How can an investigation confirm arbitrary external business effects across systems that do not share one transaction or acknowledgment contract? Progress must come from operation-specific authoritative state, idempotency, and reconciliation interfaces; trace completion alone cannot supply it.

Follow the curated reading path through the speakers and demonstrations behind this entry.

9 min

AI Engineer Summit 2025 · 2025

OpenLLMetry is all you need

Nir Gazit

Cited in this entry

A concise introduction to logs, metrics, traces, automatic instrumentation, collectors, and the application of OpenTelemetry to generative-AI systems.

Watch talk

Explore more talks

The rest of the library, beyond the curated path. Cited talks support this entry; reviewed transcripts were processed in full. Metadata candidates have not been reviewed as sources or verified as topic members.

193 matching talks

Every catalogued talk on this subject: Observability and reliability

TalkSpeakerEventYear
Dat NgoAI Engineer Europe 20262026
Danny Gollapalli, Ben Hylak, Zubin KotichaAI Engineer Europe 20262026
Rustem FeyzkhanovAI Engineer World's Fair 20262026
Phil HetzelAI Engineer Europe 20262026
Daniel ChalefAI Engineer World's Fair 20262026
Vinoo GaneshAI Engineer World's Fair 20262026
Building security around ML

Transcript reviewed

Dr. Andrew DavisAI Engineer World's Fair 20242024
AI Engineering 101

Transcript reviewed

Noah HeinAI Engineer Summit 20232023
RAG for VPs of AI

Transcript reviewed

Jerry LiuAI Engineer World's Fair 20242024
Roy DerksAI Engineer Summit 20252025
Mozhgan Kabiri ChimehAI Engineer Europe 20262026
Laurie VossAI Engineer Europe 20262026
Ofer MendelevitchAI Engineer World's Fair 20252025
Mohak SharmaAI Engineer Summit 20252025
Phil HetzelAI Engineer Europe 20262026
Pierluca D'OroAI Engineer World's Fair 20262026
Nick Ung, Akshay SharmaAI Engineer World's Fair 20262026
Sandipan BhaumikAI Engineer Europe 20262026
Anju KambadurAI Engineer Summit 20252025
Daniel WhitenackAI Engineer World's Fair 20242024
Rene BrandelAI Engineer World's Fair 20252025
Security Firewall for Agents

Transcript reviewed

Ryan DahlAI Engineer World's Fair 20262026
Gaurav MishraAI Engineer World's Fair 20262026
Will BrownAI Engineer World's Fair 20262026
Nick HeinerAI Engineer World's Fair 20262026
Mark BissellAI Engineer World's Fair 20252025
Dat Ngo, Aman KhanAI Engineer World's Fair 20252025
Paul HenryAI Engineer World's Fair 20242024
Hamel Husain, Emil SedghAI Engineer World's Fair 20242024
Uday Kiran Medisetty, Adam HudaAI Engineer World's Fair 20262026
Thierry Moreau, Pedro TorruellaAI Engineer World's Fair 20242024
Jonathan MortensenAI Engineer World's Fair 20252025
Judging LLMs

Transcript reviewed

Alex VolkovAI Engineer World's Fair 20242024
Lukas PeterssonAI Engineer World's Fair 20262026
Anna Marie BenzonAI Engineer World's Fair 20262026
Eugene YanAI Engineer World's Fair 20262026
Charles FryeAI Engineer World's Fair 20252025
Chintan Agrawal, Daniel WirjoAI Engineer World's Fair 20262026
Louis-François Bouchard, Omar Solano, Samridhi VaidAI Engineer World's Fair 20262026
Eugene Yan, Hamel Husain, Jason Liu, Dr Bryan Bischof, Charles Frye, Shreya ShankarAI Engineer World's Fair 20242024
Soumya Gupta, Jai ChopraAI Engineer World's Fair 20262026
Drasko ProfirovicAI Engineer World's Fair 20262026
Nishant GuptaAI Engineer World's Fair 20262026
Git push, get an AI API.

Transcript reviewed

Ryan Fox-TylerAI Engineer World's Fair 20242024
Xiaofeng WangAI Engineer Summit 20252025
Juan PeredoAI Engineer Summit 20252025
Diamond BishopAI Engineer Summit 20252025
Lawrence JonesAI Engineer Europe 20262026
Anish Agarwal, Matthew SchoenbauerAI Engineer World's Fair 20252025
Ritvik PandyaAI Engineer World's Fair 20262026
Matthias LoiblAI Engineer World's Fair 20252025
Agents Need Feature Flags

Transcript reviewed

Sachin GuptaAI Engineer World's Fair 20262026
Peter WielanderAI Engineer Code 20252025
Hamza TahirAI Engineer World's Fair 20262026
Eric AllamAI Engineer World's Fair 20252025
Rishabh BhargavaAI Engineer Europe 20262026
Nishant GuptaAI Engineer World's Fair 20262026
Sohail Shaikh, Ankush RastogiAI Engineer World's Fair 20262026
Jia WuAI Engineer World's Fair 20262026
Apoorva JoshiAI Engineer World's Fair 20262026
Angel Ortmann LeeAI Engineer World's Fair 20262026
Christopher Lovejoy, Saul HowardAI Engineer World's Fair 20262026
Jim BennettAI Engineer World's Fair 20252025
Zach BlumenfeldAI Engineer Europe 20262026
Merve NoyanAI Engineer Europe 20262026
John DickersonAI Engineer World's Fair 20252025
Harrison ChaseAI Engineer World's Fair 20252025
Agents Building Agents

Metadata candidate

Alfonso GrazianoAI Engineer World's Fair 20262026
Gabe De MesaAI Engineer World's Fair 20262026
Anita KirkovskaAI Engineer Summit 20252025
Olivier Leplus, Yohan LasorsaAI Engineer Europe 20262026
Gagan Bhat, Isabella Kai HeAI Engineer World's Fair 20262026
Richmond AlakeAI Engineer World's Fair 20252025
Henry MaoAI Engineer World's Fair 20252025
Stephen BatifolAI Engineer Europe 20262026
Aparna DhinakaranAI Engineer World's Fair 20252025
Samuel DentonAI Engineer World's Fair 20262026
SallyAnn DeLucia, Fuad AliAI Engineer Code 20252025
Will BrykAI Engineer World's Fair 20252025
Michael HablichAI Engineer Europe 20262026
Mahesh MuragAI Engineer Summit 20252025
Building AI For All

Metadata candidate

Amjad Masad, Michele CatastaAI Engineer Summit 20232023
Bennet FennerAI Engineer Europe 20262026
Michael AlbadaAI Engineer World's Fair 20252025
Harrison ChaseAI Engineer Summit 20232023
Anoop Kotha, Toki SherbakovAI Engineer World's Fair 20252025
Shaan DesaiAI Engineer Summit 20252025
Adam TerlsonAI Engineer Summit 20252025
Michael FesterAI Engineer World's Fair 20252025
Eric ZakariassonAI Engineer Europe 20262026
Abed MatiniAI Engineer World's Fair 20262026
Atul RamachandranAI Engineer World's Fair 20262026
Boris ChernyAI Engineer World's Fair 20252025
Cat Wu, Thariq Shihipar, Simon WillisonAI Engineer World's Fair 20262026
Sunil PaiAI Engineer Europe 20262026
Jacob KahnAI Engineer Code 20252025
Naman JainAI Engineer Code 20252025
Šimon PodhajskýAI Engineer Europe 20262026
Jedrick Kosinski, ComfyAnonymousAI Engineer World's Fair 20252025
Yusuf OlokobaAI Engineer Code 20252025
Conquering Agent Chaos

Metadata candidate

Rick BlalockAI Engineer World's Fair 20252025
Hanchi WangAI Engineer World's Fair 20242024
Mahesh SathiamoorthyAI Engineer World's Fair 20262026
Ben HylakAI Engineer World's Fair 20262026
Phil HetzelAI Engineer Europe 20262026
Kevin MaduraAI Engineer Code 20252025
Aparna Dhinkaran, Aparna DhinakaranAI Engineer Summit 20252025
Sayash KapoorAI Engineer Summit 20252025
Julia Neagu, Deanna Emery, Maitar AsherAI Engineer World's Fair 20252025
Mehedi HassanAI Engineer Europe 20262026
fighting slop with slop

Metadata candidate

Vaibhav GuptaAI Engineer World's Fair 20262026
Chaitanya AsawaAI Engineer World's Fair 20262026
Jason LopateckiAI Engineer World's Fair 20262026
Romain HuetAI Engineer World's Fair 20242024
Alex AtallahAI Engineer World's Fair 20252025
Ilan BigioAI Engineer Summit 20252025
Gateways are All You Need

Metadata candidate

Karan SampathAI Engineer Europe 20262026
Emil EifremAI Engineer World's Fair 20242024
KP Sawhney, Ian BallantyneAI Engineer Europe 20262026
Ash Prabaker, Andrew WilsonAI Engineer Europe 20262026
Chau TranAI Engineer World's Fair 20252025
Sarah Sachs, Carlos Esteban, Doug GuthrieAI Engineer World's Fair 20252025
Jeff Huber, Jason LiuAI Engineer World's Fair 20252025
Isaac RobinsonAI Engineer Europe 20262026
Sally-Ann DeLuciaAI Engineer Europe 20262026
Patricija ŽemaitytėAI Engineer World's Fair 20262026
Ankur Goyal, Olmo MaldonadoAI Engineer World's Fair 20242024
Samuel ColvinAI Engineer World's Fair 20252025
Hypermode Launch

Metadata candidate

Kevin Van GundyAI Engineer World's Fair 20242024
Vivek TrivedyAI Engineer World's Fair 20262026
Gabriel Jorge MenezesAI Engineer World's Fair 20262026
Mahmoud MabroukAI Engineer Europe 20262026
Raymond FengAI Engineer World's Fair 20262026
Shlok KhemaniAI Engineer World's Fair 20262026
Daniel HanAI Engineer World's Fair 20242024
Ronan McGovernAI Engineer World's Fair 20252025
Pietro ZulloAI Engineer World's Fair 20262026
MCP is all you need

Metadata candidate

Samuel ColvinAI Engineer World's Fair 20252025
Theodora ChuAI Engineer World's Fair 20252025
Stefania DrugaAI Engineer World's Fair 20262026
Alvaro MoralesAI Engineer World's Fair 20252025
Notion's Token Town

Metadata candidate

Sarah SachsAI Engineer World's Fair 20262026
On AI and Knowledge

Metadata candidate

Pablo CastroAI Engineer World's Fair 20262026
Frank CoyleAI Engineer World's Fair 20262026
Simon WillisonAI Engineer Summit 20232023
Kwindla Hultman KramerAI Engineer World's Fair 20252025
Juan Herreros ElorzaAI Engineer Europe 20262026
Samuel ColvinAI Engineer Europe 20262026
Steven MoonAI Engineer Summit 20252025
Lukas BiewaldAI Engineer World's Fair 20242024
Nick NisiAI Engineer Europe 20262026
Benoit SchillingsAI Engineer World's Fair 20262026
Rayan GargAI Engineer World's Fair 20262026
Patrick DeboisAI Engineer Summit 20252025
Aakanksha ChowdheryAI Engineer World's Fair 20252025
Scaling to Long Horizons

Metadata candidate

Ross Taylor, Chengxi TaylorAI Engineer World's Fair 20262026
Peter BarAI Engineer World's Fair 20252025
Giran Moodley, Mayan Soni, Oussama Hafferssas, Mayank SoniAI Engineer Europe 20262026
Marc KlingenAI Engineer Europe 20262026
Ishan AnandAI Engineer World's Fair 20242024
Charles PackerAI Engineer Summit 20252025
Manish SanwalAI Engineer Summit 20252025
David BrumleyAI Engineer World's Fair 20262026
Nuno CamposAI Engineer Europe 20262026
Michele CatastaAI Engineer Code 20252025
The AI Evolution

Metadata candidate

Mario RodriguezAI Engineer Summit 20232023
Brook RiggioAI Engineer World's Fair 20252025
Natalie MeurerAI Engineer World's Fair 20262026
Beyang LiuAI Engineer World's Fair 20252025
The End of Apps

Metadata candidate

KitzeAI Engineer Europe 20262026
Addy OsmaniAI Engineer World's Fair 20262026
Aparna DhinakaranAI Engineer World's Fair 20262026
Phil HetzelAI Engineer Europe 20262026
Raphael KalandadzeAI Engineer World's Fair 20262026
Sandipan BhaumikAI Engineer Europe 20262026
Ted JohnsonAI Engineer World's Fair 20262026
Jonathan FernandesAI Engineer World's Fair 20252025
Gorkem YurtsevenAI Engineer World's Fair 20252025
Alex VolkovAI Engineer World's Fair 20262026
Thinking Deeper in Gemini

Metadata candidate

Jack RaeAI Engineer World's Fair 20252025
Ayush BhardwajAI Engineer World's Fair 20262026
Rafal Wilinski, Vitor BaloccoAI Engineer World's Fair 20252025
Sonam PankajAI Engineer World's Fair 20262026
Victor DibiaAI Engineer World's Fair 20252025
Philipp KrennAI Engineer World's Fair 20252025
Vibes won't cut it

Metadata candidate

Chris KellyAI Engineer World's Fair 20252025
Peter GostevAI Engineer Europe 20262026
Sam JulienAI Engineer World's Fair 20252025
Philipp SchmidAI Engineer Europe 20262026
Manu GoyalAI Engineer World's Fair 20252025
Dan FarrellyAI Engineer World's Fair 20262026
Your agent is blindfolded

Metadata candidate

Johan LajiliAI Engineer Europe 20262026
Veronica HylakAI Engineer World's Fair 20262026

References

Coverage and source review
Processed transcripts
67 processed in full · 5 in the curated path
Automated source review
Passed
Metadata candidates
131 unreviewed; not verified topic membership
Corpus version
1bd8e407b26a07b33815594e1b2db5f41827119a2b3cb6fbf240f9fc571fc767

Automated review checks source support; it is not publication approval.

A synthesis of selected conference talks and technical references. Citations link to the source material; they do not imply that every talk on this subject is included.

  1. OpenTelemetry: Observability primer

    Observability supports investigating system behavior through emitted evidence. Telemetry is the data emitted about that behavior. Metrics aggregate numerical measurements over time; logs record timestamped messages; distributed traces connect operations across services. Logs become more useful for investigation when correlated with execution context. The primer distinguishes availability from meeting user expectations: a working shopping endpoint can still add the wrong item.

  2. OpenTelemetry: Traces

    A distributed trace connects operations through spans carrying identity, timing, attributes and events. Parent-child relationships and links represent related work across boundaries. Applied to an agent, model requests, tool dispatch and downstream calls can be correlated so a failed run can be reconstructed from observations. A span’s error-free status describes that instrumented operation; it does not by itself establish that the requested business outcome was correct.

  3. Google SRE: Effective Troubleshooting

    Begin with expected behavior, actual behavior and reproduction information. Combine telemetry with system knowledge to propose explanations, then seek confirming or disconfirming observations or make controlled changes. Inspect component interfaces and intermediate data to localize a failure; known test inputs and nonproduction reproduction can help. Preserve evidence while mitigating serious incidents. The chapter explicitly warns that correlated symptoms may share a cause or coincide, and that fixing a proximate problem can precede identifying its underlying causes.

  4. OpenTelemetry GenAI model and tool spans

    GenAI spans describe logical operations through completion, error, or cancellation and can include automatic retries. Diagnostic attributes include provider, requested and returned model, prompt version, sampling parameters, token usage, finish reasons, and errors. Tool execution spans identify tool names and call IDs, enabling correlation with model requests. Instructions and messages should not be captured by default; instrumentation should offer opt-in. Tool arguments and results are explicitly opt-in and potentially sensitive. External content storage can separate content access controls from operational telemetry.

  5. RabbitMQ: Consumer Acknowledgements and Publisher Confirms

    Publisher confirms concern the publisher's interaction with RabbitMQ and are unaware of consumers. Consumer acknowledgments concern broker-to-consumer delivery and processing; they are independent of publisher confirms. Automatic acknowledgment can consider delivery complete immediately after sending, whereas manual acknowledgment depends on the consuming application's decision. A delivery tag identifies a delivery only within its channel. Consequently, a broker confirmation cannot by itself establish that downstream application work completed.

  6. Metrics design — vLLM

    Serving telemetry distinguishes queue time, prefill, decode, time to first token, inter-token latency and end-to-end latency. Event boundaries and observation location matter: client network time differs from engine intervals. A successful finish reason does not establish task correctness. Request lengths, waiting/running requests and KV usage help explain a latency change.

  7. OpenAI Python SDK: ChatCompletionStreamOptionsParam

    With streaming include_usage enabled, an additional chunk before data: [DONE] contains aggregate token usage for the entire request and an empty choices array. Other chunks carry null usage. An interrupted stream may never deliver the final usage chunk. Ledger implication: when aggregate usage was not received, mark provider-reported request token totals unavailable rather than zero. Any task total depending on that missing attempt remains incomplete; keep independently obtained measurements or estimates explicitly separate.

  8. LLM Observability, Evaluation, Experimentation Platform — Dat Ngo, Arize AI

    Runtime traces and spans provide an audit record of agent behavior that source code alone does not reveal.

  9. Everything You Need To Know About Agent Observability

    The speakers distinguish explicit telemetry failures from less directly observable failures such as user frustration, positioning their system around the latter while retaining explicit error tracking.

  10. How agent o11y differs from traditional o11y

    Agent observability adds contextual quality checks to technical telemetry, including grounding, tool selection, and brand alignment.

  11. The NetLogger Methodology for High Performance Distributed Systems Performance Analysis

    Lawrence Berkeley National Laboratory’s NetLogger paper, published at HPDC in July 1998, addressed performance problems whose symptoms appeared far from their source. It combined application, operating-system and network events in a common format, recording when data was requested, received and processed. Its visualizations followed an object’s path through distributed components. Collection agents filtered and managed the resulting logs. The authors reported using this approach to diagnose intermittent stalls in their Distributed Parallel Storage System.

  12. Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

    Google’s April 2010 Dapper report described more than two years of building, deploying and using production tracing. To keep tracing continuously enabled with little application involvement, Dapper instrumented shared threading, control-flow and RPC libraries and used adaptive sampling. Its motivation was that aggregate request latency could reveal a problem without identifying the responsible subsystem.

  13. Canopy: An End-to-End Performance Tracing And Analysis System

    Facebook’s October 2017 Canopy paper describes a March 2017 regression in which initial display of a particular page became approximately 300 ms slower. End-to-end traces showed elevated browser and resource-fetching time while server and network time remained relatively unchanged. Further breakdown identified a component adding 10 kB of CSS that disrupted early flush, the mechanism for sending predicted resources before they were requested. Engineers corrected the resource grouping. The investigation combined client observations, dependencies, component detail and historical comparisons.

  14. X-Trace: A Pervasive Network Tracing Framework

    The 2007 X-Trace paper addressed diagnostic tools confined to one application or network layer. Its Berkeley researchers propagated a task identifier through recursive requests and lower protocol layers, connecting reports into a task tree. Implementations covered DNS resolution, a photo-hosting website and an overlay service. Administrative domains could retain their own reports while sharing the identifier for cooperative investigation. The paper explicitly distinguished showing the executed path from proving a fault’s underlying cause.

  15. A brief history of OpenTelemetry (So Far)

    In their May 21, 2019 account, OpenTracing and OpenCensus leaders described merging the projects into OpenTelemetry. Both sought widely available instrumentation, but their similar, incompatible approaches created developer uncertainty and duplicated integration work. The merger prioritized consolidation, standardization and migration bridges rather than a single new tracing feature. Its initial governing and technical committees included representatives from Google, LightStep, Microsoft and Uber.

  16. W3C Trace Context Recommendation

    The W3C Recommendation dated November 23, 2021 standardizes HTTP propagation for distributed tracing. traceparent carries a portable trace identifier, current parent identifier, flags, and version; tracestate carries optional vendor-specific context. A receiver updates parent identity for downstream requests. Invalid context can cause a new trace to begin. The sampled flag communicates a recording preference, but the specification says it does not guarantee that telemetry will be recorded.

  17. Sunsetting OpenCensus

    OpenTelemetry’s May 1, 2023 announcement reported feature parity with OpenCensus across several languages and scheduled most OpenCensus repositories for archival on July 31, 2023. Compatibility bridges supported incremental migration. This later announcement shows that the 2019 merger announcement and implementation transition were separate milestones.

  18. The LinkedIn Generative AI Application Tech Stack: Extending to Build AI agents

    LinkedIn’s September 10, 2025 account describes different capture choices for development and production. Pre-production used LangSmith to inspect model calls, tools and control flow with rich execution context. Production used leaner OpenTelemetry spans for model calls, tool invocation and memory usage, connecting agent behavior to upstream requests and downstream services. Persisted traces also supplied datasets for offline evaluation and regression testing. The workflow illustrates extending distributed tracing with AI-specific boundaries while changing capture detail for production constraints.

  19. OpenTelemetry GenAI agent spans

    Agent invocation spans identify the invoked agent with its available name, stable ID, and version, alongside operation, provider, conversation identifier, and error information. Distinguishing agent identity and version from individual model calls makes it possible to associate failures with the orchestration configuration that invoked them.

  20. Traces — OpenTelemetry

    A span records an operation with start and end times, an identity, and optional attributes, events, status, and links. Parent-child relationships describe nested work within a trace. Events mark meaningful instants rather than durations, while attributes attach metadata. Links can associate asynchronously started work with an earlier operation even when the later operation belongs to a separate trace. These distinctions support reconstructing request execution without forcing a queued job or concurrent branch into a misleading linear log.

  21. OpenTelemetry: Semantic conventions for messaging spans

    Messaging conventions distinguish message creation, sending, receiving, processing and settlement. Receive and process spans should link to the creation context of each message they account for. Links are the default producer-consumer correlation mechanism because batches can have multiple originating messages while a span has only one parent, and consumption may occur inside another active operation. For single-message processing, using the creation context as parent is permitted under documented conditions. Per-message attributes that differ within a batch belong on the corresponding links.

  22. OpenTelemetry: Context propagation

    Context propagation connects work across service boundaries by carrying trace and parent-span identity to the receiving process. With W3C Trace Context, the sender injects traceparent and the receiver extracts it so downstream spans belong to the same request. Trace and span identifiers can also correlate logs with that execution. Without propagation, individually instrumented services can still produce disconnected records. Incoming trace context is not inherently trustworthy, and propagated baggage can leak sensitive information; correlation metadata needs an explicit trust boundary too.

  23. Temporal: Workflow Id and Run Id

    Temporal distinguishes an application-level Workflow Id from the platform-level Run Id of an individual execution. Workflow retries and operations such as Continue-As-New create new executions and change the current Run Id. Namespace, Workflow Id and Run Id together identify an execution. Workflow identifiers are visible in operational interfaces and logs and are not protected by payload codecs, so they should not contain sensitive data.

  24. Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

    Dapper records timestamped span events alongside trace, span and parent identifiers used to reconstruct execution relationships. A single RPC span commonly contains observations from both client and server hosts. Because their clocks can disagree, its analysis tools use known communication ordering: the client sends before the server receives, and the server sends its response before the client receives it. These relationships bound server-side timestamps. Diagnostic implication: timestamps from different hosts alone cannot establish precise event ordering or one-way latency; preserve explicit communication and parent relationships rather than sorting all records as though their clocks were synchronized.

  25. OpenLLMetry is all you need

    Logs capture individual events, metrics describe aggregate behavior, and traces follow multi-step execution.

  26. OpenTelemetry Logging Specification

    OpenTelemetry correlates logs by execution context, origin, and time. Log records can carry trace and span identifiers so records from participating components can be joined to the same execution. Resource context identifies the service or infrastructure that emitted the record. The specification supports translating existing log formats into a common data model while providing structured events for new instrumentation. Logs, metrics, and traces therefore remain different records whose shared context enables navigation between them.

  27. OpenTelemetry Metrics API: Gauge

    An OpenTelemetry Gauge records a current absolute, non-additive numeric value rather than an increment or accumulated change. The synchronous Gauge is intended for values delivered through change-event subscriptions. When a current value is obtained through an accessor, the API directs implementations toward an asynchronous ObservableGauge callback. Values that are meaningfully additive across sources belong in an UpDownCounter instead.

  28. OpenTelemetry Metrics Data Model

    OpenTelemetry transforms individual metric observations into streams and time series because exporting every raw observation can be infeasible in network and CPU terms. A time series is identified by metric name, attributes, value type, and unit. Temporal reaggregation lowers time resolution; spatial reaggregation removes attributes. An exemplar retains a selected observation with its value, time, optional trace and span identifiers, and filtered attributes, allowing an aggregate metric point to lead investigators to a particular execution.

  29. Histograms and summaries — Prometheus

    Histograms preserve bucketed observations, their count and sum; summaries can expose precomputed quantiles. Counters increase except at resets, and rates describe their change over a chosen interval. Compatible histograms can be aggregated before estimating a fleet percentile; averaging instance percentiles does not produce that percentile. A constructed serial-latency example also shows why component percentiles cannot be added: among 100 requests, stage A takes 10 ms on four requests and 1 ms otherwise; stage B does likewise on four different requests. Each stage’s nearest-rank p95 is 1 ms, but total p95 is 11 ms, not 2 ms.

  30. Prometheus: metric-label cardinality and resource costs

    For a metric, each distinct label set identifies another time series with RAM, CPU, disk and network costs. If all combinations occur, label dimensions with c_1,...,c_k values can produce product_i c_i series, multiplied further by targets and metric components. Adding request IDs, user IDs or arbitrary prompt text can therefore grow series counts with traffic rather than with a bounded operational taxonomy. Use bounded labels for aggregate questions. Put request-level identifiers in appropriately protected structured logs or span attributes and correlate them with traces instead of making each request a metric dimension.

  31. OpenTelemetry: Handling sensitive data

    Telemetry instrumentation cannot determine on its own which fields are sensitive in a particular application. OpenTelemetry recommends collecting only attributes that serve an observability purpose, reviewing instrumentation output, and considering aggregates or anonymized data. Collector processors can remove attributes, filter whole records, transform values, or enforce an attribute allowlist. This makes observability a data-design decision: retain enough context to answer a specific diagnostic question, while recognizing that full prompts, tool results, tokens, and identifiers can create an additional sensitive dataset.

  32. OpenTelemetry: Sampling

    Head sampling decides before the full trace is known, making it efficient but unable by itself to retain every trace that later fails. Tail sampling waits for all or most spans and can retain traces with errors, high latency, or selected attributes, at the cost of buffering, state, and operational complexity. Combining them cannot recover traces discarded upstream. A diagnostic sample enriched for failures is therefore not a representative estimate of traffic quality; rates need a known denominator and a sampling design appropriate to the question.

  33. Transformers: chat templates serialize conversation history

    A chat model still receives a token sequence. A chat template turns role-labelled messages into that sequence, adding model-specific control tokens that mark speakers and message boundaries. Retained user messages, assistant messages and instructions therefore consume input tokens alongside the latest question. The rendered template, including any assistant-generation prefix, determines the effective input. Counting only visible message text can miss control-token overhead. Stored conversation history is not automatically identical to the history actually serialized for a particular inference call.

  34. Transformers GenerationConfig: stopping and output budgets

    Generation can end on an end-of-sequence token, a configured stop string, a length limit, or other stopping criteria. max_new_tokens limits generated tokens independently of prompt length; max_length includes the prompt. These are upper bounds, not promises to produce that many tokens. max_time is not a hard deadline: generation finishes its current pass after the allotted time. For ordinary single-beam generation, do_sample selects sampling versus greedy decoding. An application should distinguish normal completion from length truncation, cancellation and failure rather than interpreting every returned prefix as a completed answer.

  35. OpenTelemetry GenAI semantic conventions: spans

    gen_ai.request.model records the requested model; gen_ai.response.model records the actual model when available. gen_ai.request.* includes temperature, top_p, top_k, seed, max_tokens and stop_sequences. gen_ai.conversation.id correlates an existing conversation; do not invent one from a trace ID. Opt-in gen_ai.input.messages records ordered input history, gen_ai.system_instructions separately supplied instructions, and gen_ai.output.messages responses. Tool execution uses gen_ai.tool.call.id, arguments and result. Content may instead be stored externally; reference representation remains application-defined. gen_ai.prompt.name/version support prompt provenance. Code revision, policy revision, retrieval corpus/index version and workflow definition/run/attempt identity still require application instrumentation and explicit conventions; invoke_workflow alone is insufficient.

  36. Your Agent Failed in Prod. Good Luck Reproducing It.

    Capture inputs and outputs at workflow-node boundaries, including local operations, rather than relying exclusively on network capture.

  37. Your Agent Failed in Prod. Good Luck Reproducing It.

    Inspecting adjacent node inputs and outputs can distinguish a tool executing bad arguments from an upstream model generating those arguments.

  38. Node.js HTTP: server response completion and termination

    ServerResponse finish means the final response headers and body were handed to the operating system for transmission; it does not establish client receipt. close can indicate either completed output or premature connection termination. Inspect writableFinished to distinguish completed flushing from closure before that boundary; writableEnded only records that end() was called. An error event records an emitted error, not client consumption; outgoingMessage.destroy(error) can explicitly supply one. Application-design implication: record server flushing separately from client acknowledgment. If the example claims client consumption, define an acknowledgment sent after the client parses or otherwise processes the identified final response, and correlate it with the task and response identity.

  39. Making Retries Safe with Idempotent APIs

    A timeout can leave the caller unsure whether a mutation succeeded. AWS describes caller-provided request identifiers reused for retries of the same intent, with duplicate detection scoped to the caller and identifier. Identical parameters alone do not establish identical intent. The service must durably coordinate recording the identifier with all related mutations as an ACID operation: recording first can suppress work that never happened, while mutating first can allow duplicate effects after a crash. Duplicate requests receive semantically equivalent responses; reusing a key with changed parameters produces a mismatch error. Retention must account for late retries, with a service-specific lifetime. Merely putting a key in logs supplies audit evidence, not atomic duplicate prevention. Application inference: a local key log cannot guarantee an external side effect is idempotent unless that effect participates in the relevant protocol.

  40. What We Learned From A Year of Building With LLMs

    Associate traces with code, model, and prompt versions, and pin API model versions to reduce unexplained behavioral changes.

  41. OpenTelemetry Telemetry Schemas

    OpenTelemetry schema URLs identify retrievable, versioned schema files. Published schema files are immutable, and OTLP can attach schema_url to resource and instrumentation-scope groups containing spans, events, metrics, or logs. A schema-aware consumer can translate a recorded attribute name from one declared version to another. Recording instrumentation scope and schema identity therefore helps distinguish a changed field definition from a changed system behavior when comparing historical telemetry.

  42. The State of MCP Observability: Observable.tools — Alex Volkov and Benjamin Eckel, Weights & Biases and Dylibso

    An externally operated MCP server can remain a single opaque span, while a controlled server can contribute internal spans to the client's trace.

  43. The State of MCP Observability: Observable.tools — Alex Volkov and Benjamin Eckel, Weights & Biases and Dylibso

    The working example carried trace context through MCP's meta payload and restored it on the server to preserve the parent relationship.

  44. OpenTelemetry Baggage API

    OpenTelemetry Baggage is an immutable set of application-defined name/value properties associated with a distributed request or workflow. It is separate from trace identity and becomes a span, metric, or log attribute only when instrumentation explicitly copies it. Baggage may cross arbitrary process boundaries, so the API must permit clearing every entry before calling an untrusted process. This supports carrying bounded business correlation context without treating baggage as part of the trace protocol itself.

  45. OpenTelemetry: Tracing SDK

    The standard simple and batching processors export finished spans. The batching processor has a bounded queue and drops spans when its queue limit is reached. Span processor callbacks run synchronously and should not block or throw. ForceFlush and shutdown can fail or time out; honoring a timeout can require skipping or aborting export work. A flush request therefore does not establish complete delivery.

  46. Resiliency — OpenTelemetry Collector

    Collector sending queues buffer telemetry while an export destination is unavailable, and retries use backoff and jitter. A full queue or exhausted retry duration can still drop data. A persistent write-ahead log can preserve queued records across Collector restarts, but disk failure, capacity limits, or prolonged outages remain loss paths. Queue occupancy, queue capacity, and export-failure metrics therefore belong in the observability system itself. A quiet dashboard can reflect a broken evidence pipeline rather than healthy application behavior.

  47. OpenTelemetry Collector Contrib: Tail Sampling Processor

    The tail-sampling processor requires a trace’s spans to reach the same Collector instance. Its bounded buffer can evict a trace before a sampling decision. Spans arriving after a decision inherit it while it remains available; after eviction, an uncached trace can be treated as new and receive a different decision. A decision cache preserves earlier choices only while entries remain cached. The processor exposes early-drop and late-arrival measurements and can attach sampling-policy metadata.

  48. OpenTelemetry: OTLP Specification 1.11.0

    OTLP documents that a sender may not know whether telemetry arrived when its acknowledgment is lost. Resending after a reconnection or network interruption can therefore create duplicate data at the receiver. Duplicate delivery is an explicit protocol tradeoff, rather than proof that the application performed the represented operation twice.

  49. LangGraph: checkpoint state and execution identity

    A checkpointer stores graph state at super-step boundaries. thread_id identifies the continuing thread; checkpoint_id identifies a particular saved snapshot, with checkpoint_ns distinguishing checkpoint namespaces. StateSnapshot includes channel values, next nodes, configuration, metadata, parent checkpoint configuration and pending tasks. Resumption restores persisted state, not an arbitrary process stack or every local variable. Successfully persisted work can survive a later failure; survival across process loss requires an appropriate persistent checkpointer, not merely an in-memory example. Application request, attempt and trace identities should be explicitly linked to the thread and checkpoint rather than treated as interchangeable.

  50. Language Models Don't Always Say What They Think: Unfaithful Explanations in Chain-of-Thought Prompting

    The study changes irrelevant or biasing features in model inputs, such as the ordering of multiple-choice options, and observes that explanations can omit those influences while rationalizing the resulting answer. A plausible written rationale can therefore be an unreliable account of what caused a prediction. For application diagnosis, recorded inputs, actions, and outcomes establish what was observed; interventions such as controlled input substitutions are needed to test a proposed causal explanation.

  51. Anthropic: Reasoning models don't always say what they think

    Anthropic tested whether models acknowledged answer hints that influenced their responses. In the tested settings, Claude 3.7 Sonnet and DeepSeek R1 often adopted hints without mentioning them in their generated reasoning. Separate reward-hacking experiments produced explanations that omitted exploited hints or rationalized incorrect answers. These observations show that a generated reasoning account need not faithfully disclose factors affecting an answer.

  52. LangGraph: Use time-travel

    LangGraph's time-travel replay resumes from a selected checkpoint by re-executing subsequent nodes. Model calls, API requests and interrupts can run again and produce different results. Forking uses an updated state to create a new checkpoint branch while preserving the original history. Checkpoint placement determines how finely execution can be revisited; a subgraph without its own checkpoint history is re-executed as a unit.

  53. LangGraph: replaying from an earlier checkpoint

    Time-travel replay starts from a selected historical checkpoint. Nodes before that checkpoint are skipped because their results are saved; nodes after it execute again, including LLM calls, API requests and interrupts. Replaying a final checkpoint with no next nodes does nothing. Forking changes state into a new checkpoint while retaining the original history. This differs from fault resumption that reuses completed task results: historical replay intentionally re-executes subsequent work and may produce different outcomes. Reproducing an old answer exactly requires retaining and reading the original response, not assuming a new call will regenerate it.

  54. Two Roads to Durable Agents: Replay vs. Snapshot — Eric Allam, Co-founder, Trigger.dev

    Machine-using agents accumulate valuable filesystem, memory, and process state that the speaker proposes preserving separately from context.

  55. Mind the Gap (In your Agent Observability)

    Attach evaluation results to their corresponding traces so a failed metric can be followed directly to the execution step and compared across versions.

  56. Lawrence Jones - Fighting AI with AI

    A reliable prompt-editing loop still requires locating the faulty component in a larger hierarchy of agents, prompts, and tools.

  57. VCR.py: Usage and record modes

    VCR.py can replay recorded HTTP interactions. Its none mode replays existing interactions and raises an error for new requests, making it suitable for tests where fresh HTTP calls would be dangerous. The default once mode can record new interactions when no recording exists; new_episodes permits additional recordings; all makes fresh requests instead of replaying recorded responses. Replay safety therefore depends on selecting the intended mode explicitly.

  58. OpenTelemetry GenAI semantic conventions: metrics

    The current GenAI metrics distinguish client operation duration, token usage, and streaming time to the first response chunk. Client chunk timing is not interchangeable with the server's time-to-first-token metric: they have different observation points, and chunks need not correspond one-for-one to tokens. Token usage should be reported when it can be obtained efficiently, using provider usage when available; absent usage must not be fabricated. Model, provider, and operation dimensions help separate workload changes from changes in performance rather than collapsing all calls into one average.

  59. CRISP: Critical Path Analysis of Large-Scale Microservice Architectures

    CRISP’s 2022 paper defines the critical path as the longest weighted dependency path from start to finish; total work instead sums all task weights. Inclusive RPC time spans its start to finish, while exclusive time excludes callees. CRISP computes paths per request because different requests can have different bottlenecks. For a constructed parent lasting 100 ms with child intervals [10,70] and [40,90], their union covers 80 ms, leaving 20 ms outside child intervals; subtracting both durations separately incorrectly gives −10 ms.

  60. AI Engineering 201: The Rest of the Owl

    Monitor extreme latency quantiles and throughput separately, with diagnostics matched to the inference deployment model.

  61. Designing Voice Agents for Real Conversations

    Evaluate tail latency as well as median time to first token because occasional slow responses can break conversational flow.

  62. LLM cost management: how to track, attribute, and control spend — Langfuse

    Langfuse documents a concrete double-counting failure: application instrumentation and gateway callbacks can report the same model request as two generations, doubling aggregated cost. Its guidance calls for one accounting path per request, mutually exclusive usage buckets and the price applicable when the call ran. Application identifiers enable attribution to sessions, features and environments. It also supports separately recording metered tool costs. Inferred costs are computed at ingestion; correcting a price definition affects new generations rather than automatically repairing historical records.

  63. Agentic SDLC at Uber - Building Blocks for Uber’s Software Factory

    Uber places request attribution, policy middleware, and audit-session capture in a shared Model Gateway.

  64. OpenTelemetry Metrics — gRPC

    gRPC separately measures logical client calls and their attempts because retries or hedging can create multiple attempts. grpc.client.call.duration measures completion time from the application’s perspective. grpc.client.attempt.started counts attempts, including unfinished ones, while attempt.duration records completed-attempt durations. Experimental retry instruments record retry counts and time during which a call has no active attempt. Constructed example: one call that fails once and then succeeds produces two attempts but only one logical call.

  65. How do I export monthly usage details from the API Usage Dashboard?

    OpenAI distinguishes activity exports from cost exports. Its reconciliation guidance uses cost data grouped by invoice line item, with the same organization and calendar-month service period as the invoice. Dashboard dates use UTC. Activity data can instead be grouped by dimensions including project, model, API key, batch and service tier. These are different views of usage and expense, rather than interchangeable per-request ledgers.

  66. Allocation — FinOps Framework

    FinOps distinguishes directly assignable expenses from shared costs such as common platforms, networking and support. Shared costs require an explicit allocation strategy: they may remain centrally funded or be distributed using fixed proportions, usage proportions or proxy measurements. Account structures and metadata identify recipients; utilization and observability data can support finer allocation. Thus a workflow’s measured model-call expense and its assigned share of infrastructure answer different accounting questions.

  67. How Forward Deployed Engineering is done at Cognition

    The speaker contrasts 'token maxing' with 'intelligent orchestration': deployment success should depend on measurable delivery outcomes rather than consumption.

  68. Implementing SLOs — Google SRE Workbook

    A service-level indicator measures a defined aspect of service, often as good events divided by eligible events. A service-level objective sets a target for that indicator over a specified period; the remaining allowed fraction of bad events is the error budget. The indicator must reflect the customer experience, and the organization needs an explicit policy for how budget consumption changes decisions. Measuring a number without defining its population, success criterion, period, and owner does not create a useful reliability contract.

  69. Google SRE: Monitoring Distributed Systems

    The four golden signals are latency, traffic, errors and saturation. Traffic should reflect the service's workload; saturation measures pressure on constrained resources. Track successful and failed request latency separately, retaining visibility into slow failures. Errors include incorrect content returned with HTTP 200 and violations of an explicit service policy, not merely protocol errors. Latency distributions expose slow requests hidden by averages. User-visible monitoring and internal measurements answer complementary questions; alerts should call for meaningful investigation or action.

  70. Production Evals For Agentic AI Systems

    Apply an SRE or production-engineering lens: assess delivered value, operational reliability, human burden, risk, user experience, scalability, and resilience.

  71. AI System Design: From Idea to Production

    Continue tracking offline metrics in production and add human override frequency and review duration as investigation signals.

  72. LangSmith: Feedback data format

    LangSmith stores feedback separately from execution records and associates it with a trace or intermediate run. Sources include application feedback, human annotation and offline or online evaluators. The documented record includes run identity, creation and modification timestamps, a criterion key, numerical or categorical judgment, comments, correction information and feedback-source details. Source metadata and user identity can accompany the judgment.

  73. National Academies: inference with missing outcomes

    If O indicates an observed outcome and Y indicates success, the observed rate estimates P(Y=1|O=1), not automatically P(Y=1). Selective feedback can make these differ. Missing completely at random means missingness is independent of measured and missing values; missing at random permits dependence on observed information but not remaining missing outcomes after conditioning. MAR therefore does not justify an unadjusted complete-case success rate. Adjustment or weighting needs justified models and adequate observation probabilities. Dependence on unobserved outcomes requires additional assumptions and sensitivity analysis. Derived bookkeeping: with S successes, F failures and U unresolved eligible cases, the eventual success fraction lies between S/N and (S+U)/N, where N=S+F+U.

  74. National Academies: informative censoring and sensitivity analysis

    An outcome can remain unobserved because follow-up ends before the event, or because the subject disappears from observation. Censoring can be informative when the reason observation ends is related to the event time. A scheduled cutoff and dropout need not have the same missingness mechanism. Time-to-event inference requires justified assumptions about event and censoring dependence, potentially conditional on recorded prognostic variables; sensitivity analysis explores remaining dependence. Applied to AI workflows, recent requests have had less time to receive downstream outcomes. Compare cohorts at a specified follow-up horizon, report unresolved counts, and avoid counting absence of a recorded failure as success.

  75. Operationalizing Machine Learning: An Interview Study

    Interview participants reported that ground-truth feedback for live predictions could arrive late, unpredictably or not at all, limiting knowledge of current production performance. Reported operational problems also included missing, incomplete or corrupted data. The study describes difficulties choosing useful data alerts: simple checks can miss errors, while distribution-distance alerts can produce excessive false positives.

  76. Understanding Simpson’s Paradox — Judea Pearl

    For variant v and disjoint, exhaustive group g, define integer successes s_vg and totals n_vg>0, with 0<=s_vg<=n_vg. The aggregate rate is R_v=sum_g s_vg/sum_g n_vg=sum_g w_vg r_vg. A strict reversal requires r_Ag>r_Bg in every group but R_A<R_B. Different weights are necessary; identical weights preserve the within-group ordering. Derived count example: easy tasks A=9/10 and B=80/100; hard tasks A=20/100 and B=1/10. A wins within both groups, yet totals are A=29/110 and B=81/110. Here A receives many more hard tasks. A changed task mix alone can move an aggregate without any reversal; reversal additionally requires opposite aggregate and within-group comparisons.

  77. Practical Guide to Controlled Experiments on the Web

    Concurrent randomized treatment and control groups support causal comparison when assignment produces comparable populations, users receive consistent variants, and interactions or interference do not undermine the design. Choose the evaluation criterion before inspecting results. Define eligible users and actual exposure; unexposed users can dilute effects, but exposure filtering must preserve comparability. Statistical power is the probability of detecting a specified real effect under the design. For independent observations, standard error decreases approximately as 1/sqrt(n); detecting smaller effects requires substantially more data. A migration test that finds no significant difference can still miss a harmful change when power is low.

  78. OpenTelemetry Tracing SDK: sampling

    TraceIdRatioBased deterministically selects a configured ratio using the trace ID, but ignores the parent Sampled flag. ParentBased delegates root decisions to a configured sampler and, by default, records sampled children and drops unsampled children for both local and remote parents. Propagating SpanContext therefore lets downstream ParentBased samplers follow the upstream decision, keeping one distributed trace consistently sampled when propagation and configuration are intact.

  79. OpenTelemetry Collector Contrib: Tail Sampling Processor

    The Collector tail sampler supports probabilistic selection; token-bucket rate limiting; numeric, string, boolean, trace-state, trace-flag, and OTTL attribute conditions; status-code selection; elapsed-trace latency thresholds; and ordered composite policies with rate allocation. A known probabilistic policy can support adjusted population estimates under its assumptions. Attribute, status, and latency policies describe deliberately selected strata, not their prevalence in all traffic. Rate-limited output is a capacity-bounded retained set, not automatically representative. Composite output inherits the selection properties of its constituent policies and has no single unbiased population interpretation without recording those policies and inclusion behavior.

  80. An Online Probabilistic Distributed Tracing System

    Toslali and colleagues' May 2024 Astraea paper separates tracing costs into application runtime work to create spans, network work to route them, and backend storage and computation. In experiments on three microservice applications with injected performance variations, Astraea localized the responsible region 92% of the time while enabling 25% of available instrumentation; reported case studies used 11–28%. The system learns per-span sampling probabilities, trading exploration of changing problems against lower telemetry volume.

  81. OpenTelemetry: Handling sensitive data

    OpenTelemetry cannot determine what is sensitive in an application's context; implementers must review emitted telemetry and protect it. The guidance favors collecting only data needed for observability and avoiding unnecessary personal information. Collector processors can delete or modify attributes, filter entire records, enforce attribute allowlists, and transform values. Credentials and session tokens are among the explicitly identified sensitive categories. Hashing predictable identifiers does not reliably anonymize them because candidate values can be enumerated.

  82. OWASP: Logging Cheat Sheet

    Avoid directly logging passwords, access tokens, session identifiers, encryption keys, database connection strings, payment details, sensitive personal data and commercially sensitive content. Remove or appropriately transform sensitive fields before recording events. Restrict and periodically review log access, monitor access, protect integrity and secure transmission. Retention rules must cover debug logs, backups, copies and exports as well as primary storage. Engineering application: prompts, retrieved passages, tool arguments and model outputs require the same classification and redaction controls as ordinary application data.

  83. OpenLLMetry is all you need

    A self-deployed OpenTelemetry collector can preprocess telemetry before it reaches an observability provider.

  84. OpenTelemetry GenAI client spans and content capture

    The development conventions treat instructions, user messages and model outputs as sensitive and recommend not capturing them by default. Tool arguments and results are opt-in attributes and may contain sensitive data. Content can be omitted, attached to spans, or stored externally with references and separate access controls. Structured content may be truncated. A configured external-storage hook operates independently of content opt-in flags and should run regardless of span sampling, so disabling span content or sampling alone does not necessarily stop content collection.

  85. NIST Privacy Framework 1.0: lifecycle and minimized audit evidence

    The framework inventories data elements, processing purposes, actions, owners and flows. Policies define permitted uses and retention periods; the data lifecycle aligns with system development and operations. Authorizations must be maintained and revocable, access limited by least privilege, and deletion and destruction performed under policy. Audit records themselves must incorporate data minimization. Engineering application: define the decision evidence needed for review, its purpose, authorized readers, retention trigger and disposal method before logging. Retain the necessary decision, model and policy versions and relevant evidence without indiscriminately copying personal data into logs, prompts or backups. Where review requires sensitive evidence, constrain fields, access and retention rather than treating auditability as permission to keep everything. Assess removal and disclosure across downstream copies and service providers.

  86. How agent o11y differs from traditional o11y

    Agent traces combine semi-structured records with substantial unstructured text, creating ingestion, processing, and inspection challenges.

  87. Why building eval platforms is hard

    Agent trace storage must handle the combination of large, text-heavy, weakly structured records, fast ingestion, and heterogeneous reads.

  88. Billable Units — Langfuse

    Langfuse defines telemetry units as the sum of ingested traces, observations and scores. Records created by evaluation or annotation features also count. Under that documented contract, a constructed execution containing one trace, six observations and two scores contributes nine units, not one. This demonstrates why additional instrumentation and assessment can increase the observability bill independently of model-token spending.

  89. Configure Tempo — attribute limits and compression

    Tempo documents memory problems when querying traces with unusually large attributes. Its max_attribute_bytes setting truncates oversized attribute keys or values before storage, with a counter and diagnostic logs exposing truncation. The documentation also describes a compression tradeoff: disabling compression can reduce CPU and memory work while increasing network traffic and live-store volume. Payload capture and transport settings therefore change both diagnostic fidelity and operational resource use.

  90. Your Agent Failed in Prod. Good Luck Reproducing It.

    Record execution inputs and outputs together with session variables such as model version, code version, and retrieved content.

  91. Using RL-based Agent to Detect and Remediate ETL Pipeline Failures

    An event-driven recovery loop combines read-only diagnostic evidence, guarded execution, and validation after rerunning the job.

  92. AWS Builders' Library: timeouts, retries, backoff and jitter

    Retries add work precisely when an overloaded dependency may have least spare capacity. Nested retry layers multiply attempts: if layer i permits a_i total attempts, one operation can cause up to product_i a_i deepest calls when every layer exhausts its policy. Three attempts at each of five layers permit 243 calls. Serial attempts and backoff also increase elapsed latency; a caller timeout need not stop downstream work. Bound attempts, choose one appropriate retry layer, use timeouts, capped backoff and jitter, and constrain retry volume. A timeout means the caller stopped waiting, not that an external side effect failed to occur. Idempotent operations permit recovery without duplicating the intended effect.