At a glance
Each signal answers a different question:- Logs answer “what happened?” They are discrete, timestamped events with a message, severity, and context.
- Traces answer “why was it slow, and what called what?” They are timed operations (spans) and their parent-child relationships, including across services.
- Session replay answers “what did the user experience?” It is a visual reconstruction of the UI as the user saw it.
Observability also captures errors and metricsThe LaunchDarkly observability product also captures errors (exceptions and crashes with stack traces) and metrics (counters, histograms, and gauges for values such as crash rate and launch time). This topic focuses on session replay, traces, and logs, but errors sit alongside logs and traces in most investigations, and metrics are what alerts watch.
Use logs for discrete events and state
A log is a discrete record of something that happened: a message, a severity level (INFO, WARN, ERROR), a timestamp, and any custom attributes you attach. Logs are the searchable, text-first record of application-level state and events.
Use logs when:
- You need the specific value or state at a moment, such as the cart total when an error fired.
- You are reconstructing a discrete sequence of events and want a searchable record.
- You are capturing application-level context that is not about timing, such as a config that loaded, a branch that was taken, or a third-party response body.
Use traces for performance and causation
A trace is a tree of timed operations called spans. Each span has a start time, a duration, and a parent. A trace shows both how long each step took and what called what. With context propagation, a single trace can follow a request across coroutines, threads, and separate services. Use traces when:- Something is slow and you need to identify the bottleneck.
- You need to follow the path of a request through nested operations or across service boundaries.
- You are investigating an intermittent timeout or a latency regression, where the question is about timing and structure.
Use session replay for user experience problems
Session replay captures snapshots of your application’s UI at regular intervals and stitches them into a scrubbable recording of what the user saw and did. It is the only signal that represents the user’s experience rather than the system’s internal state. Use session replay when:- The problem is about user experience, such as a button that looked disabled or a layout that broke on a particular screen.
- A bug is hard to reproduce from a description and you need to watch it happen.
- You are investigating user behavior, such as where users get stuck, rage clicks, or abandoned flows.
Compare the three signals
The following table summarizes what each signal is best at:| Logs | Traces | Session replay | |
|---|---|---|---|
| Question it answers | What happened? | Why was it slow / what called what? | What did the user experience? |
| Shape of data | Discrete timestamped events | Timed spans in a parent/child tree | Visual UI recording over time |
| Best for | State, values, discrete events | Performance, latency, causation | UX bugs, hard-to-reproduce issues, behavior |
| Weakness | No timing or causal structure | Not a place to read detailed state | Privacy weight; not precise internal values |
| Where available | Client- and server-side | Client- and server-side | Client-side only (mobile and web) |
Use Vega when you want the investigation done for you
Vega is the LaunchDarkly AI agent for observability. It reads logs, traces, errors, and sessions, reasons across them, and pulls in context such as recent flag changes and alerts. Vega appears in a few forms:- Investigate mode (read-only, the default) summarizes the relevant observability data, highlights anomalies, and identifies likely root causes. It often correlates findings with recent flag or code changes.
- Fix mode analyzes the relevant code paths, generates candidate changes, and can open a pull request with proposed edits. Fix mode requires a connected GitHub account.
- Search assistant converts plain-language questions about your observability data (“which traces increased error rates?”) into structured queries and runs them.
- Auto remediation, paired with alerts, starts a Vega investigation automatically when a threshold is breached.
- You have a symptom and would rather have the first-pass investigation done for you than scrub replay, traces, and logs manually.
- You want the signals correlated with recent flag and code changes automatically, such as to answer “did the flag I just flipped cause this?”
- You want issues triaged when an alert fires, not only when a human notices.
- You want a candidate fix proposed, not only a diagnosis. Fix mode handles this.
Read it yourself or ask VegaAny of the three signals can be read by you or investigated by Vega. The signal choice is independent of the agent choice. A common default is to let Vega take the first pass, especially for the flag-change correlation, then drop into the specific signal yourself to confirm or dig deeper.
Signal availability by platform
Session replay is client-side only because there is a UI to record. Server-side SDKs do not capture sessions. Traces and logs are available on both client and server.- On a mobile app or web frontend, all three signals are available. Replay is often the fastest entry point for a user-reported bug, and you can drill from there into traces and logs.
- On a backend service, session replay is not available. Traces and logs carry the entire investigation, and traces are especially valuable because they follow a request across services.
How to choose
First, match the signal to the symptom. Open session replay when:- A user reported something looked or behaved wrong
- A bug is hard to reproduce from a description
- You are studying behavior, such as drop-off, confusion, or rage clicks
- Something is slow and you need to find the bottleneck
- You need to follow a request across operations or services
- You are chasing intermittent latency or timeouts
- You need a specific value or state at a moment
- You want a searchable record of a discrete event
- You are reconstructing a sequence of events
- You would rather have the first-pass investigation done for you
- You want the issue correlated with recent flag and code changes automatically
- You want triage to start when an alert fires, without a human watching
- You want a candidate fix proposed, not only a diagnosis
Further reading
- Observability: Reviewing logs, traces, and sessions in the LaunchDarkly UI.
- Session replay: How recording, privacy, and the session player work.
- Vega: The AI agent’s investigate and fix modes, search assistant, and auto remediation.
- Observability settings: Ingestion filters and rate limits for each signal.