-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
High-volume runs return only a fraction of logs (≈200–300 lines) with no truncation notice. This can be considered in the same scope with #164 as overall DX improvement as logs are quite critical for o11y.
Repro
tower run --dir tower-examples/pressure-logs -p LINES=10000 -p LINE_BYTES=200 --detachedtower apps logs pressure-logs#<run> | wc -l(returns far fewer lines than 10000+)tower apps logs pressure-logs#<run> | awk 'NR<=5{print} {last=$0} END{print "LAST:" last}'
Sample reproducible job
tower run --dir tower-examples/pressure-logs -p LINES=10000 -p LINE_BYTES=200 --detached
Sample script
import json
import os
import sys
def to_int(value, name):
try:
return int(value)
except ValueError:
print(f"Invalid integer for {name}: {value}")
sys.exit(2)
def main():
lines = to_int(os.environ.get("LINES", "0"), "LINES")
line_bytes = to_int(os.environ.get("LINE_BYTES", "0"), "LINE_BYTES")
payload = "x" * max(0, line_bytes - 80)
for idx in range(1, lines + 1):
record = {"seq": idx, "payload": payload}
print(json.dumps(record, separators=(",", ":")))
print("LOG_DONE")
if __name__ == "__main__":
main()Sample output
wc -lreturns ~100-200 lines- Last line observed:
LAST: ... {"seq":171,...}(no truncation marker to indicate further data)
Metadata
Metadata
Assignees
Labels
No labels