Observability reference#
conda-presto exposes readiness and version endpoints, application logs, and conda-broker process diagnostics. It does not expose a metrics endpoint or a public cache-administration API.
HTTP endpoints#
Endpoint |
Success |
Failure |
Scope |
|---|---|---|---|
|
HTTP 200 with |
HTTP 503 with |
Readiness of the configured persistent worker |
|
HTTP 200 |
Not applicable |
Installed conda-presto and conda versions, plus conda-rattler-solver and conda-lockfiles when their distribution metadata is available |
When persistent-worker mode is disabled, /health returns ready after the
application lifespan has started. It does not probe channels, a persistent
result store, or an external Redis server. In persistent-worker mode, it
returns unavailable when the worker is not ready and triggers that server’s
configured recovery path.
The Docker health check uses /health. The broker service wraps the same
endpoint in its executable health check.
Application logging#
CONDA_PRESTO_LOG_LEVEL controls the conda_presto logger and defaults to
INFO. Litestar records only the request path, method, content type, and
response status for public HTTP access logs. It does not record headers,
cookies, query parameters, request bodies, response headers, or response
bodies. The exact private /solver/v1 route is excluded from access logging
because its body can contain channel credentials and installed-prefix state.
Operational messages record channel counts rather than raw channel URLs.
Before application and propagated conda log records are emitted, URL-shaped
strings and conda Current channels: blocks are replaced. This catches URLs
that embed credentials, but it is not generic secret detection. Keep other
secrets out of specs, filenames, and free-form values that can reach logs.
conda presto --serve, including the Docker and broker entrypoints, disables
uvicorn’s separate access log so raw query strings are not logged twice. When
starting uvicorn directly, pass --no-access-log to preserve this behavior.
Operational log messages cover:
repodata warmup and persistent-worker startup
unexpected solve and export failures
persistent-worker restart and cleanup failures
persistent result-store read, write, timeout, and corrupt-entry failures
recorded-request persistence failures
scheduled solver-cache refresh warnings and cycle summaries
Request-specific refresh warnings contain only the first 12 characters of the recorded-request fingerprint. The cycle summary contains aggregate counters and no specs, channel definitions, serialized requests, or complete fingerprints.
Refresh cycle counters#
At INFO or a more verbose level, every completed scheduled refresh cycle
emits a message beginning with Solver cache refresh cycle. Its
solver_cache_refresh log-record field has these integer values:
Field |
Scope |
|---|---|
|
Eligible requests selected for the current cycle |
|
Successful foreground recordings during the process lifetime |
|
Cycles started during the process lifetime |
|
Inspections or resolve outcomes that found a current entry |
|
Background solve attempts started |
|
Background results published or confirmed current after recomputation |
|
Cycle stops or skips caused by active, waiting, or newly arrived foreground work |
|
Background inspection, worker startup, or solve timeouts |
|
Background infrastructure or solver failures |
|
Results not accepted by the cache or required persistent store |
All fields except selected accumulate from process startup. The counters are
not persisted and are not returned by /health.
Broker diagnostics#
conda-broker captures stdout and stderr from the service process. The following
commands are available for conda-presto.server:
conda broker status conda-presto.server
conda broker endpoint conda-presto.server
conda broker logs conda-presto.server --lines 200
conda broker logs conda-presto.server --previous
conda broker logs conda-presto.server --follow
conda broker events --lines 100
conda broker doctor
--previous includes output from a previous service process. events reports
broker lifecycle events, including unhealthy and restart transitions. Add
--json to obtain machine-readable output from these commands. doctor
reports provider-discovery errors and whether the selected runtime and log
directories are writable.
Cache visibility#
/resolve returns a content-addressed Location only when its response was
retained. The same location on a later response identifies the same canonical
inputs and repodata markers, but it does not prove whether that request was a
cache hit or a recomputation.
The private solver response has no cache-status header. Recorded requests, their counts, and scheduler controls are not exposed through HTTP or OpenAPI. Use aggregate refresh logs and controlled timing measurements when evaluating cache behavior.