A latency histogram tells you the 99th percentile is four seconds and cannot tell you which request that was, and an exemplar attaches a trace id to a bucket.
$histogram->observe($seconds, $labels, exemplar: [
'trace_id' => $trace->id(),
]);
# scraped alongside the sample:
# http_request_duration_seconds_bucket{le="5.0"} 1 # {trace_id="9c1f"} 4.2 1663...
# and in Grafana, a dot on the graph that opens the trace.
This closes the gap between “the system is slow” and “here is a slow request”, which is otherwise a search through a trace store with a time range and a guess. Support requires the OpenMetrics exposition format and a compatible scraper, both of which were available in 2022 and neither of which is the default.