labmon
Records experiment readings — cryostat temperature, chamber pressure, laser power, a magnet's current — into InfluxDB 3, and reads them back three ways: a command line, a terminal panel, and Grafana in a browser.
This package is the Python half: the sensors, the calibration, the writer
and the labmon command. The other half is a Docker Compose stack —
InfluxDB, Grafana and its provisioned dashboards, Loki, Alloy — which
lives in the repository and cannot usefully be delivered by an
installer.
Install
uv tool install labmon # or: pip install labmon
Nothing else is needed if you already have an InfluxDB 3 instance to talk
to. Three environment variables point at it, in the process environment or
in a .env beside you:
INFLUXDB_HOST |
where the server is, e.g. http://192.168.1.50:8181 |
INFLUXDB_DATABASE |
which database to use, e.g. lab |
INFLUXDB3_AUTH_TOKEN |
the admin token InfluxDB issued |
If you have no instance yet, labmon init mints the token and creates the
database over HTTP, from any machine.
What you get
labmon query |
print readings as a table; query latest gives one row per sensor, with how long ago each spoke |
labmon export |
the same selection, written to CSV, Parquet, Feather or netCDF, with the unit carried along |
labmon monitor |
a panel that redraws in place, as a grid of tiles or a table of everything |
labmon sensors |
every sensor labmon has seen, cached, so one that stopped reporting is still listed |
labmon serial-sensor |
read a board over a serial port, converting raw counts through a calibration file |
labmon mock-sensor |
invent a plausible reading, for confirming an address and a token before wiring anything up |
labmon init, labmon reset-database |
set the database up, or wipe it and start again |
Extras
labmon[tui] |
Textual, which labmon monitor needs |
labmon[netcdf] |
netCDF export. CSV, Parquet and Feather need nothing extra |
labmon[spline] |
SciPy, for the spline calibration mode |
Combine them as labmon[tui,netcdf].
Documentation
Everything is in the repository: the
README for the whole stack, and
docs/ for one page per component —
client setup, export, the monitor panel,
serial sensors, Grafana, deployment.
Licensed GPLv3.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file labmon-0.3.0.tar.gz.
File metadata
- Download URL: labmon-0.3.0.tar.gz
- Upload date:
- Size: 126.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ef02f9de77172650f50b0d1e96c56f780c4f890bffc173ca847183b2f3f547b
|
|
| MD5 |
95fd6d1aa285c611c267626fe7b4d794
|
|
| BLAKE2b-256 |
cdeb2d22ca0d35be9fe3aa1b651d33e51fd9a806b02b72842376c4033032346d
|
Provenance
The following attestation bundles were made for labmon-0.3.0.tar.gz:
Publisher:
release.yml on quentinmarolleau/labmon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labmon-0.3.0.tar.gz -
Subject digest:
0ef02f9de77172650f50b0d1e96c56f780c4f890bffc173ca847183b2f3f547b - Sigstore transparency entry: 2690741686
- Sigstore integration time:
-
Permalink:
quentinmarolleau/labmon@0dd2affa3237e6538c9b0de0d4106cb1f6822040 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/quentinmarolleau
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0dd2affa3237e6538c9b0de0d4106cb1f6822040 -
Trigger Event:
push
-
Statement type:
File details
Details for the file labmon-0.3.0-py3-none-any.whl.
File metadata
- Download URL: labmon-0.3.0-py3-none-any.whl
- Upload date:
- Size: 147.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19b82605a79150e930f8ac86479b42889e1db6fc882054fb903f04b920b1969f
|
|
| MD5 |
6d809de6e957c42949b1d671f710522e
|
|
| BLAKE2b-256 |
ed3d96d3bb31c1b705b5357452a84cd93d9b6ad9236dae9a3b9f29cf4f21d1ae
|
Provenance
The following attestation bundles were made for labmon-0.3.0-py3-none-any.whl:
Publisher:
release.yml on quentinmarolleau/labmon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labmon-0.3.0-py3-none-any.whl -
Subject digest:
19b82605a79150e930f8ac86479b42889e1db6fc882054fb903f04b920b1969f - Sigstore transparency entry: 2690741866
- Sigstore integration time:
-
Permalink:
quentinmarolleau/labmon@0dd2affa3237e6538c9b0de0d4106cb1f6822040 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/quentinmarolleau
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0dd2affa3237e6538c9b0de0d4106cb1f6822040 -
Trigger Event:
push
-
Statement type: