Skip to content

Conversation

@josephjclark
Copy link
Collaborator

@josephjclark josephjclark commented Dec 10, 2025

Background

The production worker now supports batch logging (optionally).

What this means in short that instead of sending each log line straight to the run:socket channel, it'll save up a bunch of them and send a batch of logs in one go.

This should reduce latency on log processing in the worker, and may eliminate even more lost runs.

Overview

This is a very simple, minimal PR which supports log events being set from the worker in batches.

It is designed to be backward compatible with batched and un-batched logs.

So basically the behaviour here is is simply:

  • Always handle log events as an array of logs (under the logs key)
  • If receiving a "legacy" event, without a logs, key, massage the payload into an array of 1 log
  • Process the logs one at a time

This PR does not do any batch uploading in the database. It probably makes sense to do this? But it feels beyond the scope of what I ought to be doing (with or without Claude's help)

I have not touched tests, but we should introduce a few tests against batched logs.

Closes #4123

AI Usage

Please disclose how you've used AI in this work (it's cool, we just want to know!):

  • Code generation (copilot but not intellisense)
  • Learning or fact checking
  • Strategy / design
  • Optimisation / refactoring
  • Translation / spellchecking / doc gen
  • Other
  • I have not used AI

You can read more details in our Responsible AI Policy

@github-project-automation github-project-automation bot moved this to New Issues in v2 Dec 10, 2025
@josephjclark josephjclark marked this pull request as draft December 10, 2025 12:09
@josephjclark
Copy link
Collaborator Author

Hey @stuartc - this is all I've done on the lightning so far for batch logging. Just enough for local testing really.

There's a lot of work we could do here to improve. I don't know how much appetite we have?

@josephjclark
Copy link
Collaborator Author

Hi @midigofrank - as Stu is going to be tied up until the end of the year, can you help me with this? CC @theroinaochieng

@midigofrank
Copy link
Collaborator

Hey @josephjclark , I'll have a look

@josephjclark josephjclark moved this from New Issues to Ready in v2 Dec 17, 2025
@taylordowns2000 taylordowns2000 moved this from Ready to Blocked in v2 Dec 17, 2025
@codecov
Copy link

codecov bot commented Jan 8, 2026

Codecov Report

❌ Patch coverage is 91.66667% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.33%. Comparing base (ee132a8) to head (65aaa4a).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
lib/lightning/runs.ex 90.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4174      +/-   ##
==========================================
+ Coverage   89.32%   89.33%   +0.01%     
==========================================
  Files         425      425              
  Lines       19899    19923      +24     
==========================================
+ Hits        17775    17799      +24     
  Misses       2124     2124              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@midigofrank midigofrank marked this pull request as ready for review January 8, 2026 13:26
@midigofrank
Copy link
Collaborator

@josephjclark I have named the event run:batch_logs. Let me know your thoughts

@josephjclark josephjclark moved this from Blocked to In review in v2 Jan 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

Support batching of worker log events

3 participants