Repository navigation
[FSTORE-2153] Metrics and traces for feature view transformations in model deployments - #718
Open
jimdowling wants to merge 5 commits into
Open
jimdowling wants to merge 5 commits into
jimdowling wants to merge 5 commits into
Conversation
…model deployments https://hopsworks.atlassian.net/browse/FSTORE-2153 Tracing of a model or feature view deployment created with tracing can be switched off and on, and its sampling changed, while it runs: PUT /project/{id}/serving/{servingId}/tracing with active and samplingPercentage, deployment.set_tracing() in the SDK, and a switch on the Transformations section. The backend keeps the state in a config map mounted into the predictor, and each serving worker applies it within the kubelet sync, without a restart. A deployment created without tracing is refused, since its pods have no collector. New guide user_guides/mlops/serving/transformation-tracing.md: enabling tracing at deploy time, switching it from the SDK, REST and UI, the metrics, the trace tree and the measured overhead. Signed-off-by: Jim Dowling <jim@logicalclocks.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…model deployments https://hopsworks.atlassian.net/browse/FSTORE-2153 The Web UI section of the transformation tracing guide describes the section's title and instructions while tracing is off. Signed-off-by: Jim Dowling <jim@logicalclocks.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…model deployments https://hopsworks.atlassian.net/browse/FSTORE-2153 The guide says the disabled notice opens on click. Signed-off-by: Jim Dowling <jim@logicalclocks.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…model deployments https://hopsworks.atlassian.net/browse/FSTORE-2153 The trace section says the feature log write runs in the background and is drawn as a separate process. Signed-off-by: Jim Dowling <jim@logicalclocks.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jimdowling
marked this pull request as ready for review
October 24, 2026 09:52
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR (logicalclocks.github.io)
New guide
user_guides/mlops/serving/transformation-tracing.md(nav: Model Serving > Transformation Tracing): enabling tracing at deploy time, switching it from the SDK, REST and UI, the metrics, the trace layout and the measured overhead.markdownlintandsnakeoilpass; the strict build resolves the new page's API links once the hopsworks-api PR is merged.FSTORE-2153: metrics and traces for feature view transformations in model deployments
JIRA: https://hopsworks.atlassian.net/browse/FSTORE-2153
A model or feature view deployment runs its feature view's on-demand and model-dependent transformations, a DAG of transformation functions, on every request. This work times them:
predict>feature_lookup>transformations> each phase > one span per function in DAG order, thenmodel_predictandfeature_log. The feature log write is a background span in the same trace.model.deploy(tracing={"enabled": True})) can be switched off and on, and resampled, while it runs:PUT /project/{id}/serving/{servingId}/tracing,deployment.set_tracing(...), or the switch on the section. The backend writes the state to a config map mounted in the predictor; each serving worker applies it within about a minute, without a restart. A deployment created without tracing is refused (240058), since its pods have no collector sidecar.It also fixes the default predictor OOM found while testing: the predictor read
model_schema.jsonthrough the Go HopsFS client (libhdfs-golang via pyarrow), whose idle heap bursts took it past 1 GiB.ModelEngine._read_jsonnow reads it over REST; peak memory fell from the 1 GiB limit to 438 to 483 MiB. The client defects are HOPSFS-425 (logicalclocks/hopsfs-go-client#46).Testing
workflows/model_serving/python_driver/external/test_transformation_tracing.py, 3/3 passed on jim-dag-stats (job loadtest-1792732688, SDK from this branch): the tracing config survives an update; a request records the nested transformation spans with one row span; tracing switched off records nothing and switched back on records again, with the deployment running throughout. Run before the merge of upstream on 2026-10-23; not re-run after it.hopsworks_transformations_calls_totalat 40 and traces at 281, on at 50% added 80 calls and 24 traces for 40 requests, same pod, 0 restarts; the config map reached the pod in 8 s and 48 s; the UI switch, the disabled-tracing notice and the background log process drawn on real traces.Merge order
hopsworks-api, then hopsworks-ee, then docker-images (its wrapper calls the new
hopsworks_common.tracingfunctions and its tests install the client from main), then hopsworks-front, loadtest and logicalclocks.github.io (its API links resolve once hopsworks-api is merged).Related PRs
🤖 Generated with Claude Code