Skip to content

Fix: laminar trace timeline to account for idle wait time#415

Open
Rainhunter13 wants to merge 4 commits intoOpenHands:mainfrom
lmnr-ai:fix_laminar_evals_timeline
Open

Fix: laminar trace timeline to account for idle wait time#415
Rainhunter13 wants to merge 4 commits intoOpenHands:mainfrom
lmnr-ai:fix_laminar_evals_timeline

Conversation

@Rainhunter13
Copy link
Contributor

@Rainhunter13 Rainhunter13 commented Feb 13, 2026

Fix evaluation datapoint trace timeline when number of tasks exceed concurrent workers.

Previously, the root "Evaluation" span was created in the parent process alongside the datapoint, before a worker picked up the task. When more tasks were queued than available workers, the span included idle wait time, resulting in inflated durations and misleading timelines in Laminar:

image

Now, the "Evaluation" span is created in the child process when execution actually begins. The span's trace ID is then linked back to the Laminar datapoint via update_datapoint, so the timeline accurately reflects real execution time.
Requires lmnr>=0.7.41 for update_datapoint trace ID support.

*The diff of evaluation.py looks a bit off due a new try except block + linter auto changes, might be better to look with "Hide whitespaces" option

@simonrosenberg simonrosenberg self-requested a review February 13, 2026 18:15
Copy link
Collaborator

@simonrosenberg simonrosenberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments