Repository navigation
headless: archive matrix logs to S3; record the served model per call - #148
Merged
Merged
Conversation
- k8s/matrix-archiver.yaml: CronJob (every 15 min) copies each finished app=headless-matrix Job's log to s3://logs-open-llm-proxy/benchmark/raw/<job>.log. The bucket key lives only in this pod (read-only RBAC on jobs/pods/logs), never in the matrix pod, which runs arbitrary app repos and LLM-driven code. - matrix-job.yaml: ttlSecondsAfterFinished 1d -> 7d as a backstop. A 688-cell run finished on a Friday and was garbage-collected, logs and all, before collection. - run.js: capture the response's served model and upstream provider per proxy fetch, and roll them up as transcript.served_models. Route ids float (NRP aliases, OpenRouter upstream routing); a score must attach to what served it.
Member
Author
|
Verified end-to-end on the cluster: smoke matrix |
This was referenced Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two gaps a benchmark run fell into on 2026-10-02/04:
1. Logs lost to the Job TTL. A matrix Job's stdout is the only copy of its transcripts, and
ttlSecondsAfterFinished: 86400deleted a finished 688-cell run (11 Jobs) before anyone was back to collect it.headless/k8s/matrix-archiver.yaml: a CronJob every 15 min copies each finishedapp=headless-matrixJob's log tos3://logs-open-llm-proxy/benchmark/raw/<job>.log(idempotent; never rewrites).awssecret — read/write/delete on every NRP bucket) lives only in the archiver pod, under a ServiceAccount restricted to get/list jobs, pods, pods/log. The matrix pod — which clones arbitrary app repos and runs LLM-driven code — never gets it.matrix-job.yamlTTL 1d → 7d as a backstop.2. No record of what actually served. Transcripts recorded only the route id. NRP aliases float (
deepseek-v4-flashnow servesdeepseek-ai/DeepSeek-V4-Flash-Vision-Exp,glm-5servesInferact/GLM-5.3-NVFP4) and OpenRouter picks an upstream host per call (provider: "Io Net").run.jsnow keepsserved_model/served_provideron everyllm_fetchesentry and rolls them up astranscript.served_models: [{model, provider, calls}].node --check headless/run.jspasses; manifest validated withkubectl apply --dry-run=server. Will verify end-to-end with a smoke matrix before the next full run.