Overview
Request Logs can contain thousands of entries across production traffic, playground tests, and CI/CD runs. Without effective filtering, you'll waste time scrolling through irrelevant data. Mastering the filter system makes debugging 10x faster.
Available filters
The filters sit above the Request Logs table. They are open when no filter is applied; once filters are set, the panel shows a summary, and Edit reopens it. Filters are chips in three groups. Selecting several chips in one group shows requests that match any of them; chips from different groups are combined. The current filters are kept in the page URL, so Back to request logs from a request detail returns you to the same filtered list.
Source
| Filter | When to use | What it shows |
|---|---|---|
| Production | Debugging production issues, monitoring health | Requests sent with your API keys (not from the console) |
| Playground | Validating workflow changes in the console | Requests run from the console playground |
| Cache | Checking cache hit behavior | Responses served from cache |
| Test | Reviewing CI/CD runs and integration tests | Requests to workflows in test mode, from the API or the playground |
Endpoint
| Filter | What it shows |
|---|---|
| chat/completion | OpenAI-compatible chat completion requests |
| /ai | Synchronous /v1/ai requests |
| /ai/async | Asynchronous /v1/ai/async requests |
| Backend pipeline | Backend pipeline (event-driven) requests |
| Other | Guardrails, budgets, and other internal routes |
Revision
| Filter | What it shows |
|---|---|
| Live | Requests that ran the published Live revision |
| Draft | Playground requests that ran the current draft |
| Historical | Playground requests that ran a previous revision |
Production is based on where a request came from, so test-mode requests sent with your API keys appear under both Production and Test.
With no chips selected you see every request in the project. The list has no free-text search, status filter, or date-range filter; it is sorted newest first and paginated, and you check status and time from the table columns.
Decision tree
Are you debugging a production issue? → Source: "Production" Are you reviewing test results? → Source: "Test" (covers test-mode runs from both the API and the playground) Are you validating a workflow change before publishing? → Source: "Playground" + Revision: "Draft" Are you debugging a backend pipeline? → Endpoint: "Backend pipeline" Are you monitoring overall health? → Start with Source: "Production"Filtering strategies
Strategy 1: Funnel approach
Start broad, then narrow down:
- No filters: Get the big picture
- Source: Production: Focus on production traffic
- Endpoint: Narrow to the integration path you're investigating (for example /ai/async or Backend pipeline)
- Scan the Status and Time columns: Find the failed requests around when the issue occurred
- Click to inspect: Drill into specific requests
Strategy 2: Environment isolation
Match your filter to your current task:
Deploying a workflow change: 1. Test the draft in the playground → Source "Playground" + Revision "Draft" 2. Publish, then compare against earlier runs → Revision "Live" vs "Historical" 3. Monitor real traffic → Source "Production" 4. Each phase uses a different filter to avoid cross-contaminationStrategy 3: Comparative analysis
Use filters to compare behavior across environments:
- Run the same prompt in the Playground
- Find the same prompt under Production
- Compare request/response payloads between the two
- Differences may explain production-only issues
Identifying requests by seed_batch
Some request types carry a seed_batch prefix that helps categorize them:
| Prefix | Source | Filter |
|---|---|---|
(none), or an internal prefix such as route: or compat:openai: | Production API calls | Production |
test_mode: | /v1/ai calls to a workflow in test mode | Production and Test |
pg: | Console playground (production workflow) | Playground |
pg_test_mode: | Console playground (test mode workflow) | Playground and Test |
callback: | Backend callbacks | (included in parent request's timeline) |
pg_callback: | Playground callbacks | (included in parent request's timeline) |
Tips for efficient navigation
- Use the refresh button after making API calls to see the latest logs immediately
- Scan status badges first: Green means OK, red needs attention, amber means failover was needed
- Check failed models count: A badge like "2 failed" tells you before you even click
- Look at duration outliers: Requests much slower or faster than average deserve attention
- Use pagination wisely: The list is newest first, so recent issues are on the first pages; load older pages only when you need them
Next steps
- Monitoring Failed Models: Track provider stability
- Separating Environments: Keep data clean
- Back to Best Practices: Return to the overview