Guides
Measuring latency
Measure submission, webhook acknowledgment, and dot execution.
dm-dot is event-driven, but webhook acceptance and dot execution are different milestones. A single synchronous tool call cannot measure the entire path to the dot’s first action.
Three useful timestamps
| Label | Timestamp | Captured by |
|---|---|---|
T0 |
Immediately before invoking send_to_dot or POST /v1/messages |
Sending application |
T1 |
Immediately after the tool or REST call returns successfully | Sending application |
T2 |
Earliest observable time at which the dot actually starts handling the event | Receiving dot or runtime |
T1 - T0 measures submission and webhook acknowledgment. T2 - T0 approximates sender-to-dot-start latency. If the platform independently exposes a verified webhook-ingress timestamp, record it as T_ingest and compare it separately.
The event payload’s own timestamp is set by dm-dot before delivery; it is not a receipt timestamp from ChatGPT.
Recommended experiment
- Generate a unique test ID to correlate the send with the dot’s acknowledgment.
- Read a real synchronized UTC epoch time immediately before calling the sending tool or API, and include it in the message.
- Capture the HTTP/tool return time immediately after it finishes.
- Instruct the dot to make its first available tool action a runtime UTC clock read, then report that time, its source, and the test ID through an independently authorized communication channel.
- Calculate deltas in milliseconds. Repeat several times and report median, variability, and possible clock skew.
Example payload:
{
"message": "LATENCY TEST. Test ID: run-abc123. Sender T0 epoch_ms: <capture just before sending>. On arrival, immediately obtain a trusted UTC runtime timestamp as your first action and report the exact timestamp and test ID through our existing channel. Do not estimate the time."
}
This experiment does not add a reply channel to dm-dot. It relies on a separate channel already available to your dot. A model’s text assertion about the current time is not a reliable measurement; ask it to use a real runtime clock.
Interpreting results
- The sender and dot may run on different machines with clocks that have small offsets. Prefer synchronized UTC clocks and mention uncertainty.
- If the dot’s first clock read happens after other operations,
T2 - T0is an upper bound for arrival-to-execution timing, not an exact webhook queue delay. - ChatGPT can accept an event significantly before the dot begins processing it.
- A callback HTTP
2xxonly proves event acceptance; it is not proof of execution or success. - Duplicated events can occur after retries, so correlate by test ID and webhook event ID where possible.
Keep timestamps and results free of secrets. See MCP & Events reference for event metadata and Architecture for the delivery sequence.