MLOps Observability
SkillDatabases & dataMake an ML system a glass box with reproducible runs, MLflow dataset lineage, drift monitoring, alerting, and SHAP explanations. Use when a deployed model needs traceability, monitoring, alerting, or explanation.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the MLOps Observability skill
What this skill tells your AI
The instructions your AI receives, as published by mlops-courses/mlops-coding-skills in mlops-observability/SKILL.md and read by ahel’s review.
Goal
To implement a "Glass Box" system where every result is Reproducible, every asset has Lineage, and system health is Monitored, Alerted on, and Explained.
Prerequisites
- Language: Python 3.14
- Context: Production monitoring and debugging.
- Platform Suggestion: MLflow 3.15, SHAP, Evidently, ...
Instructions
1. Guarantee Reproducibility
Consistency is key. For instance:
- Randomness: Set seeds for
random,numpy,torch,tensorflow. - Dependencies:
uv.lockis the reproducibility mechanism for Python. It records the exact resolved version and hash of every direct and transitive dependency, anduv sync --frozeninstalls exactly that — the same set on a laptop, in CI, and in the image. - Tools:
mise.lockdoes the same job for the binaries that are not Python packages (dprint,gitleaks,trivy,actionlint,zizmor, ...), recording version, URL, and checksum per platform. Commit both lockfiles; between them, "works on my machine" stops being a category of bug. - Builds:
mise run buildis a plainuv buildproducing a wheel and an sdist. Its reproducibility comes from the locked inputs above, not from a build flag — do not expectuv buildto pin anything by itself. - Environment: Ship the same locked set into a
dockerimage (uv sync --frozen), so the runtime matches what was tested. - Code: Track the git commit hash for every run, and fail the pipeline on a dirty working tree so a run can always be traced back to a commit.
2. Track Data Lineage
Know the origin of your data. For instance:
- Datasets: Create MLflow Datasets with
mlflow.data.from_pandas. - Logging: Log inputs to MLflow context with
mlflow.log_input. - Store: Keep tracking and registry on a SQL backend (
sqlite:///mlflow.dblocally, Postgres or a tracking server in production). Lineage queries are relational queries; the deprecated file store cannot answer them and does not support the model registry at all. - Versioning: Version data files (e.g.,
data/v1.csv) or use DVC. - Transformations: Log preprocessing parameters mapping data versions to model versions.
3. Monitoring & Drift Detection
Watch for silent failures. For instance:
- Validation: Gate models against quality thresholds with
mlflow.validate_evaluation_results(MLflow 3). - Drift: Use
evidentlyto comparereference(training) vscurrent(production) data.- Detect Data Drift (input distribution changes) and Concept Drift (relationship changes).
- System: Enable MLflow System Metrics (
log_system_metrics=True) for CPU/GPU.
4. Alerting
Don't stare at dashboards. For instance:
- Local: Use
plyerfor desktop notifications during long training runs. - Production: Use
PagerDuty(critical) orSlack(warnings). - Thresholds: Use Static (fixed value) or Dynamic (anomaly detection) rules.
- Action: Alerts must link to a dashboard or playbook.
5. Explainability (XAI)
Trust but verify. For instance:
- Global: Use Feature Importance (e.g., Random Forest) to understand overall logic.
- Local: Use
SHAPvalues to explain individual predictions. - Artifacts: Save explanations (plots/tables) as MLflow artifacts.
6. Infrastructure & Costs
Optimize resources. For instance:
- Tags: Tag runs with
project,env,user. - Costs: Log
run_timeand instance type to estimate ROI.
7. Observability of the Repository Itself
The pipeline that produces the model needs the same treatment.
- One Gate:
mise run all(format -> check -> test -> build) is the signal that a change is releasable. CI runs that exact task, so a green pipeline and a green laptop mean the same thing. - Static Guarantees: Ruff 0.16 and
ty0.0.69 run insidemise run check, alongside thepip-audit,gitleaks, andtrivyscans — quality signals you get on every commit, not once a quarter. - Written Down:
AGENTS.mdrecords the commands, the definition of done, and the conventions, so an AI assistant debugging a production incident reads the same runbook a human does.
Self-Correction Checklist
- Seeds: Are random seeds fixed?
- Lockfiles: Are
uv.lockandmise.lockcommitted, and does the image install with--frozen? - Inputs: Are input datasets logged to MLflow, on a SQL-backed store?
- System Metrics: Is
log_system_metricsenabled? - Explanations: Are SHAP values generated and stored as artifacts?
- Alerts: Are thresholds defined for failures?
- Gate: Does
mise run allpass, and does CI run that same task?
Signals
- GitHub stars
- 22
- Forks
- 4
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
mlops-observability- Source
- github.com/mlops-courses/mlops-coding-skills