Godot Runtime Telemetry Lab
godot-runtime-telemetry-lab summarizes and compares lightweight runtime
telemetry from Godot scenario runs, smoke tests, soak tests, or project-owned
debug exporters. It is designed for CI artifacts and release reviews, not as a
replacement for Godot's built-in profiler.
Install
python -m pip install godot-runtime-telemetry-lab
From a source checkout:
python -m pip install -e .\godot-runtime-telemetry-lab
Quick Start
godot-telemetry-lab summarize reports\runtime --format markdown --output reports\runtime.md
godot-telemetry-lab compare reports\baseline reports\current --format json --output reports\runtime-compare.json
godot-telemetry-lab timeline reports\runtime --format html --output reports\runtime-timeline.html
godot-telemetry-lab adapt reports\godot-monitor.csv --format json --output reports\runtime-normalized.json
godot-telemetry-lab adapt godot-runtime-telemetry-lab\examples\tiny-godot-monitor\godot-performance-monitor.csv --format json --output reports\runtime-normalized.json
godot-telemetry-lab adapt godot-runtime-telemetry-lab\examples\tiny-godot-monitor\godot-performance-monitor-long.csv --format json --output reports\runtime-normalized-long.json
godot-telemetry-lab budget init --profile android-high --output reports\runtime-budget.json
Input Shape
The tool accepts .json or .csv files. JSON files can contain a list of
samples, or an object with a samples, frames, or events list.
Commands also accept a directory containing .json and .csv files. If the
path is wrong, the file extension is unsupported, the directory has no
telemetry files, or input cannot be read, the command emits a normal finding
with next-step guidance instead of a Python traceback.
{
"samples": [
{"scenario": "menu", "frame_ms": 12.4, "physics_ms": 2.1, "memory_mb": 180},
{"scenario": "menu", "frame_ms": 18.8, "physics_ms": 2.5, "memory_mb": 181}
]
}
Recognized numeric fields are frame_ms, physics_ms, memory_mb, nodes,
and draw_calls. Timeline output also uses optional time_s, timestamp_s,
frame, scenario, phase, and event fields when they are present.
Use adapt when a project-owned Godot exporter writes monitor names such as
fps, Performance.MEMORY_STATIC, Performance.OBJECT_NODE_COUNT, or
Performance.RENDER_TOTAL_DRAW_CALLS_IN_FRAME. The command emits normalized
samples that can be fed back into summarize, compare, or timeline.
For official Godot Performance monitors, adapt treats
Performance.TIME_PROCESS and Performance.TIME_PHYSICS_PROCESS as seconds
and converts them to milliseconds. Memory monitors such as
Performance.MEMORY_STATIC, Performance.RENDER_VIDEO_MEM_USED,
Performance.RENDER_TEXTURE_MEM_USED, and
Performance.RENDER_BUFFER_MEM_USED are treated as bytes and converted to MiB.
Wide rows and long monitor rows are both supported. Long rows can use columns
such as scenario, phase, time_s, monitor, and value; the adapter
groups rows with the same scenario, phase, and timestamp into one telemetry
sample. If an input file has no recognized frame, memory, node, or draw-call
signals, adapt emits a structured finding with next-step guidance.
Commands
summarize: reports sample counts, frame percentiles, and budget findings.compare: compares current telemetry with a baseline and reports frame p95 and memory max regressions.timeline: renders a frame and memory timeline as HTML, SVG, Markdown, text, or JSON.adapt: normalizes common Godot monitor and debug-exporter field names.budget init: writes starter budget JSON fordesktop-dev,android-high,android-low, orhtml5.
Budget files can be reused with summarize, compare, and timeline:
godot-telemetry-lab budget init --profile android-high --output reports\runtime-budget.json
godot-telemetry-lab timeline reports\runtime --budget-file reports\runtime-budget.json --format html --output reports\runtime-timeline.html
compare includes frame_p95_delta_ms and memory_delta_mb in JSON reports, so
CI jobs and dashboards can show the size of a runtime change without parsing
the full baseline and current summaries.
JSON reports also include metadata.rules, a compact catalog of runtime
telemetry rule titles and help text for scripts, dashboards, and CI comments.
Outputs
text: local terminal report.json: CI and scripts.markdown: PR comments and release notes.html: self-contained timeline report.svg: embeddable timeline chart.
Example
The package includes a tiny runtime fixture:
godot-telemetry-lab timeline godot-runtime-telemetry-lab\examples\tiny-runtime-run --format html --output reports\runtime-timeline.html
It also includes a tiny Godot monitor CSV fixture:
godot-telemetry-lab adapt godot-runtime-telemetry-lab\examples\tiny-godot-monitor\godot-performance-monitor.csv --format json --output reports\runtime-normalized.json
godot-telemetry-lab adapt godot-runtime-telemetry-lab\examples\tiny-godot-monitor\godot-performance-monitor-long.csv --format json --output reports\runtime-normalized-long.json
Metadata
Release files for godot-runtime-telemetry-lab 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| godot_runtime_telemetry_lab-0.1.7.tar.gz | 17.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| godot_runtime_telemetry_lab-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.7 kB
Release files / godot_runtime_telemetry_lab-0.1.7.tar.gz
| Download URL | godot_runtime_telemetry_lab-0.1.7.tar.gz |
|---|---|
| Size | 17.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
02f1a4a21f4a23684beb474977d0603f0e28ed548fac77c1d1bee58da85c993e
|
|
BLAKE2b-256 checksum How to use checksums |
450800c1b0f4c5e6cab1baa2881789bd1204b3371120eb4b9f20c96acd12d428
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logRelease files / godot_runtime_telemetry_lab-0.1.7-py3-none-any.whl
| Download URL | godot_runtime_telemetry_lab-0.1.7-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7bc6036a8d5a97a69817251ce1f9b129ce7a9d3223370ba996eac11aaf7e6642
|
|
BLAKE2b-256 checksum How to use checksums |
c2d31af972c01b6da2510577a61371059b2b7b27293d8238c5b12c4b40587f9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency log