efc0de230a
* fix: stabilize history timestamps and telemetry docs * fix: preserve numeric epoch cursors in history SQLite queries Normalize mixed ISO and unixepoch time values for incremental resume and scoped dedup so legacy numeric rows are not dropped by julianday filters. Co-authored-by: Cursor <cursoragent@cursor.com> * Bump version to v1.1.2 * fix: aggregate incremental start timestamps in SQLite Use MAX on the normalized time expression with GROUP BY so incremental resume loaders stay O(groups) instead of materializing every history row. Co-authored-by: Cursor <cursoragent@cursor.com> * test: parametrize duplicated incremental-start cases in TestIncrementalStart Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
919 B
919 B
Grafana
::: mt5cli.grafana
Grafana-ready SQLite workflow
Use ensure_grafana_schema(conn) or the grafana-schema CLI command to create
the snapshot tables, grafana_* views, and supporting indexes in one step.
publish_grafana_copy(source, target) creates a consistent SQLite copy via the
SQLite backup API, which is useful when the primary database is running in WAL
mode and Grafana should read from a separate published file.
Main APIs
ensure_grafana_schema(): idempotently creates snapshot tables, Grafana views, and indexes.create_grafana_views(): rebuilds the shippedgrafana_*views.create_grafana_indexes(): creates read-oriented indexes for Grafana queries.publish_grafana_copy(): writes an atomic, WAL-safe published copy for a Grafana datasource.
For end-to-end snapshot collection examples, see the Grafana and observability
section in the project README.md.