OpenAI probe configuration worksheet (before production cutover)
Switching your LLM-powered feature from staging to production traffic is the moment when latency stops being a curiosity and becomes a customer-facing metric. Before you flip that switch on OpenAI's API, whether you call it directly or route through OpenRouter, you need a repeatable checklist that validates probe coverage, baseline thresholds, and alerting paths. This worksheet walks you through every configuration decision so that your first production day is boring in the best possible way.

Photo by Andrew Neel from Pexels
Switching your LLM-powered feature from staging to production traffic is the moment when latency stops being a curiosity and becomes a customer-facing metric. Before you flip that switch on OpenAI's API, whether you call it directly or route through OpenRouter, you need a repeatable checklist that validates probe coverage, baseline thresholds, and alerting paths. This worksheet walks you through every configuration decision so that your first production day is boring in the best possible way.
TL;DR
- Map every OpenAI model and endpoint your application uses to a dedicated synthetic probe.
- Establish TTFB and TTFT baselines from at least the three regions where most of your users live.
- Set degradation thresholds relative to your measured baseline, not arbitrary round numbers.
- Wire alerts to on-call channels before cutover, not after the first incident.
- Use Observinio's 21-region daily probes to validate your worksheet assumptions continuously.
Why a worksheet matters before cutover
Most teams treat latency monitoring as a post-launch concern. The problem is that without pre-production baselines, your first alert threshold is a guess. A guess that is either too tight, flooding on-call with noise, or too loose, letting real degradation slip through unnoticed for hours.
A structured worksheet forces you to answer concrete questions: Which models are you calling? From which regions? What does "normal" look like for each combination? What constitutes a degradation worth waking someone up for? Answering these questions before production traffic hits means your monitoring is calibrated to reality, not hope.
This is especially critical for OpenAI endpoints because latency profiles differ significantly between models. A gpt-4o completion call from us-east-1 has a very different TTFB envelope than a gpt-4o-mini call from ap-southeast-1. Treating them as interchangeable in your monitoring config is a recipe for blind spots.
Step 1: Inventory your OpenAI usage
Before configuring any probes, you need a complete picture of what your application actually calls. Walk through your codebase and API gateway logs to fill in the following table for every distinct OpenAI call path:
Usage inventory checklist
- Model identifier, e.g.,
gpt-4o,gpt-4o-mini,o3-mini. List every model your code references, including fallback models. - Endpoint type, Chat Completions (
/v1/chat/completions), Embeddings (/v1/embeddings), or other. Each endpoint has a different latency signature. - Routing path, Direct to
api.openai.comor via OpenRouter (openrouter.ai/api/v1). If you use both, each path needs its own probe. - Streaming vs. non-streaming, Streaming calls have a meaningful TTFT (time to first token) metric; non-streaming calls are measured by total response time. Your probe must match the mode your application uses.
- Typical prompt size, Bucket into small (< 500 tokens), medium (500–2000 tokens), or large (> 2000 tokens). Prompt size affects queue time on the provider side.
- Typical max_tokens setting, The completion length you request influences total response duration.
- User-facing regions, List the top three to five geographic regions where your end users are concentrated. These are the regions where latency matters most.
"Intuition: Prompt tokens add very little latency to completion calls.">, Production best practices
This insight means your probe's prompt payload does not need to mirror your production prompt exactly. A short, representative prompt is sufficient for latency measurement. What matters more is matching the max_tokens and streaming configuration, because those parameters dominate the response-time profile.
Step 2: Establish regional baselines
With your inventory complete, the next step is collecting baseline latency data from each relevant region. This is where many teams cut corners, they run a few curl commands from their laptop and call it a baseline. That approach misses time-of-day variance, regional routing differences, and provider-side load patterns.
Baseline collection process
- Select probe regions, For each user-facing region in your inventory, identify the closest Observinio probe region. With 21 regions available, you can typically find a probe within the same cloud availability zone or metro area.
- Run probes for at least 72 hours, A single day of data misses weekday/weekend variance and provider maintenance windows. Three days gives you a minimum viable baseline.
- Record P50, P90, and P99 for TTFB, The median tells you what "normal" feels like. The P90 tells you what your SLO should target. The P99 tells you where your alert threshold lives.
- Record TTFT for streaming endpoints, If your application streams tokens to the user, TTFT is the metric that determines perceived responsiveness. A 200 ms TTFT feels instant; a 1500 ms TTFT feels broken.
- Note any regional outliers, If one region consistently shows 2× the latency of others, investigate whether it is a routing issue, a provider capacity gap, or expected geographic distance.
Example baseline table
| Region | Model | TTFB P50 | TTFB P90 | TTFB P99 | TTFT P50 |
|---|---|---|---|---|---|
| us-east-1 | gpt-4o | 320 ms | 580 ms | 1100 ms | 280 ms |
| eu-west-1 | gpt-4o | 410 ms | 720 ms | 1350 ms | 350 ms |
| ap-southeast-1 | gpt-4o-mini | 290 ms | 490 ms | 950 ms | 240 ms |
Step 3: Define thresholds and alert rules
Baselines are useless without thresholds that trigger action. The goal is to define two tiers of alerts: a warning that notifies the team during business hours, and a critical that pages on-call immediately.
Threshold-setting guidelines
- Warning threshold, Set at 1.5× your P90 baseline for the given region and model combination. This catches gradual degradation without firing on normal variance.
- Critical threshold, Set at 2× your P90 baseline or when the P99 is exceeded for three consecutive probe cycles. This indicates a genuine incident.
- Sustained vs. spike, A single slow response is not an incident. Require at least two consecutive breaches (roughly 10–15 minutes of Observinio probe intervals) before escalating to critical.
- Per-region granularity, Do not use a single global threshold. A 600 ms TTFB is normal in
ap-southeast-1but alarming inus-east-1if your baseline there is 320 ms. Each region-model pair gets its own threshold. - Review cadence, Baselines drift. Schedule a monthly review of your thresholds against the latest Observinio weekly summary data. Adjust when the provider ships model updates or infrastructure changes.
Alert routing matrix
| Severity | Channel | Response expectation |
|---|---|---|
| ⚠️ Warning | Slack channel / email digest | Acknowledge within 2 hours during business hours |
| 🚨 Critical | PagerDuty / on-call rotation | Acknowledge within 15 minutes, investigate immediately |
Observinio's email alerts and the status page can serve as the warning tier out of the box. For critical alerts, integrate the degradation notifications with your existing incident management tooling.
Step 4: Validate the worksheet end-to-end
Before cutover day, run a dry-run validation to confirm that every piece of the worksheet actually works:
Your progress is saved automatically in your browser.
- Verify probe coverage, Confirm that every model-region-endpoint combination from your inventory has an active probe returning data on the Observinio dashboard.
- Trigger a test alert, Temporarily lower a threshold to force a warning. Confirm the notification arrives in the expected channel within the expected timeframe.
- Check the status page, Visit /status and verify that your monitored endpoints appear with current data. If stakeholders will reference this page during incidents, they need to see it working before the first real incident.
- Document the escalation path, Write a one-paragraph runbook entry: "If OpenAI TTFB exceeds critical threshold in region X, check Observinio provider page for cross-region confirmation, then escalate to provider support if degradation is global."
- Archive the baseline snapshot, Export your baseline data and commit it to your ops repository. Post-cutover, you will compare against this snapshot to detect any shifts caused by production traffic patterns.
Common mistakes to avoid
- Using the same probe config for direct and routed calls. OpenRouter adds a routing hop. Its latency profile is different from direct
api.openai.comcalls. Probe both if you use both. - Ignoring streaming mode. If your app streams but your probe measures non-streaming, your TTFT data is meaningless. Match the probe to the production call pattern.
- Setting thresholds from documentation, not measurement. OpenAI's published rate limits and latency guidance are useful context, but they do not reflect your specific region, model, and traffic pattern. Measure first, then set thresholds.
- Skipping the fallback model. If your code falls back from
gpt-4otogpt-4o-miniunder load, you need probes and baselines for both models. The fallback path is the one that fires during incidents, exactly when you need monitoring most.
Frequently Asked Questions
api.openai.com directly, probe that. If you use both (e.g., OpenRouter as primary, direct as fallback), configure probes for both paths and maintain separate baselines for each.Key takeaway: Calibrate every probe, threshold, and alert path against measured baselines before production cutover — not after your first incident. A completed worksheet turns your monitoring from guesswork into a repeatable, evidence-based safety net that keeps your first production day uneventful.
Start monitoring before you cut over
The worst time to discover a monitoring gap is during your first production incident. Observinio's daily probes from 21 global regions give you the baseline data this worksheet requires, without building custom probe infrastructure. Set up your degradation alerts and bookmark the status page before cutover day. When production traffic starts flowing, you will already know what "normal" looks like and exactly when it stops looking normal.
Additional Resources
- Production best practices | OpenAI API - Explore best practices for transitioning your AI projects from prototype to production, including scaling, security, and cost management.
- OpenAI in Production: Essential Best Practices Explained - Chapters: 00:00 Intro 00:51 Setting up your Organization 03:18 Managing Billing Limits 04:40 API Keys 06:10 Staging and Production Projects ...
- Model guidance | OpenAI API - Compare model features, migration guidance, and prompting best practices across OpenAI models. complex production workflows. Learn how to configure prompt ...
Monitor AI API latency from 22 regions
Observinio runs daily probes against OpenRouter and OpenAI endpoints and emails you when latency degrades.
Set up alerts