Repository navigation
v0.6.0
·
70 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Added
- A panel's Sync crosshair and step across charts setting now also locks its image-series sliders
together: moving one moves the others to the latest step each has at or before it. - An image-series chart is titled with its artifact key.
- A tag can carry a unit:
tags={"took": Quantity(value=5400, unit=TimeUnit.SECONDS)}records what the
number was measured in (timenstod, sizeBtoTB, decimal); on the wire it is
{"value": 5400, "unit": "s"}. The client never says how to show it: the image chart shows it in the
largest unit that fits by default (1.500 h,2.500 GB, not5400or2500000000), or in the unit set
by its newtag_time_unit/tag_size_unitsettings, totag_precisionsignificant digits, and
tag_displayoverrides those per tag name. Plain
numbers are written with separators (12,346) instead of1.235e+04. - Opt-in OpenTelemetry for enterprise deployments.
DLBOARD_TELEMETRY_METRICS=prometheus,otlpexports the
server's own metrics (HTTP requests and latency, metric and artifact ingest, the artifact write queue, run
lifecycle, sign-ins, artifact purges) either as a Prometheus scrape of/metrics-- added up across every
worker -- or pushed over OTLP to a collector, Mimir or Grafana Cloud, andDLBOARD_TELEMETRY_LOGSsends the
logs over OTLP too (Loki). It is the newotelextra (OpenTelemetry SDK 1.25 or later, 1.38 for logs),
installed in the Docker image; with none of it set nothing is imported or logged, and every process (each
Granian worker and its artifact writer) sets itself up on first use, so a collector that is down never stops
the server from starting. Telemetry never takes down what it measures: a failure to record is logged once and
skipped, and a setup that failed is retried with a back-off. The metrics API is public, as
dlboard.serve.telemetry, for plugins to record their own. See docs/telemetry.md. - Docker images between releases:
ghcr.io/dlangerm/dlboard:betafollows main (andsha-<commit>pins a
single landing),:latestis the same testedmain, and:stablefollows the newest release.
See docs/docker.md.
Fixed
- Live updates replaced a chart's whole item with a whole new item nested inside it (a second set of
controls and padding) the first time its data moved, and redrew every open chart on the first update
after a page loaded, including ones whose data had not changed. A chart now carries a fingerprint of the
data it was drawn from, so a poll replaces only the chart inside its item, and only when its data moved. - A request the sign-in gate turned away (a
401, or the redirect to the sign-in page) had no request id, and
withDLBOARD_ACCESS_LOGon its response raised an error instead of being logged. - Pressing Ctrl+C during training left the process hung for a minute per unshipped queue, with "still hadn't
all been shipped" and "shipping process is dead" warnings. The terminal's Ctrl+C reached the logger's
background shipping processes too, so they died before the final flush could send what was queued. They now
ignore Ctrl+C, and the training process flushes and exits.
Changed
- The
latestDocker tag no longer means "the newest release": it now followsmain(the same as
:beta). Pin:stable(or a version,:0.5.0) for releases only. - An image-series chart lays its runs out by what its panel and page say: as many columns as the panel's
grid column count (following it the instant it changes) and as many runs per page as the viewer's
charts-per-page size, instead of a fixed three and six. It never uses more columns than it has runs, so one
run's image fills the chart's width and a large chart size now enlarges it. - Artifact
tagsvalues are JSON scalars (str | int | float | bool) on the wire and in storage, not
text (#179):NewArtifact.tagsisdict[str, TagValue], clients send what the caller logged
(tags={"score": 0.14}), and the image-series and file-list charts format numbers the same way wherever
they come from. A server older than this release rejects a numeric tag with a 400, so upgrade the
server before the clients; existing string tags are unaffected. This replaces the text-only storage
described under 0.5.0.