Skip to content

Collect traces

Once your application calls the inference endpoint, every call is recorded: the request, the response, the HTTP status and which model answered. Those records are the traces your first model is built from. Nothing else is needed on your side; the endpoint collects at the rate of your traffic.

The test set and the train set are both built from these traces, and every trace is used once. At the default settings that is 200 traces relabeled into the test set and 200 into the train set, so collect at least 400, plus whatever should serve as context when the teacher generates the synthetic rows (Building the test set). More traces give a larger test set and more real training rows; a few thousand is a comfortable amount.

By default the endpoint records every call. --trace-sample-rate 0.2 at creation records one call in five, which is worth setting only when traffic is very high. The rate is fixed at creation, and distil inference-endpoint show reports it as trace_sampling_rate.

Failed calls are recorded too, with their status; the relabeling job skips them. Once a trained model serves the endpoint, each record also says whether the trained model or the fallback answered, so the next iteration can learn from the right one.

Download every record since a start date and read the count the command prints:

distil inference-endpoint download-traces --from-start-time 2026-09-01 --all support-yeOdAS

The command prints the count and the file it wrote, for example Downloaded 312 traces to support-yeOdAS-traces.jsonl. The dashboard shows the same traffic on the endpoint’s page.

This step takes days to weeks, as long as your traffic takes. Come back when the endpoint holds enough.

Turn the records into a dataset.