| name | domino-model-monitoring |
| description | Monitor deployed models in Domino including drift detection, model quality tracking, and alerting. Covers data drift analysis, prediction capture, baseline comparison, alert configuration, and remediation workflows. Use when monitoring production models, detecting drift, or setting up model health alerts. |
Domino Model Monitoring Skill
Description
This skill helps users monitor deployed models in Domino, including drift detection, model quality tracking, and alerting.
Activation
Activate this skill when users want to:
- Monitor deployed model performance
- Set up drift detection
- Configure monitoring alerts
- Analyze prediction data
- Understand model degradation
What is Model Monitoring?
Domino Model Monitoring provides:
- Data Drift Detection: Detect changes in input data distributions
- Model Quality Tracking: Monitor prediction accuracy over time
- Alerting: Get notified when metrics exceed thresholds
- Prediction Capture: Log predictions for analysis
- Reproducibility: Diagnose issues with captured data
Setting Up Monitoring
Prerequisites
- Deployed Model API in Domino
- Training dataset (for baseline)
- Ground truth data (optional, for quality metrics)
Enable Monitoring
- Go to your Model API page
- Click Monitoring tab
- Click Set Up Monitoring
- Upload training dataset
- Configure drift detection settings
Register Training Data
import pandas as pd
train_df = pd.read_csv("training_data.csv")
train_df.to_csv("/mnt/artifacts/training_data.csv", index=False)
Drift Detection
Types of Drift
| Drift Type | Description |
|---|
| Data Drift | Input feature distributions change |
| Concept Drift | Relationship between inputs and outputs changes |
| Prediction Drift | Output distribution changes |
Statistical Tests
Domino supports multiple drift detection tests:
| Test | Best For |
|---|
| Kullback-Leibler Divergence | General-purpose, most common |
| Population Stability Index (PSI) | Finance industry standard |
| Wasserstein Distance | Comparing distributions |
| Energy Distance | Multivariate distributions |
Configure Drift Detection
- Go to Model API > Monitoring
- Click Configure Drift Detection
- For each feature:
- Select test type
- Set threshold
- Enable/disable alerts
Example Thresholds
| Test | Low Drift | Medium Drift | High Drift |
|---|
| KL Divergence | < 0.1 | 0.1 - 0.2 | > 0.2 |
| PSI | < 0.1 | 0.1 - 0.25 | > 0.25 |
Prediction Capture
How It Works
Domino automatically captures predictions:
- Model receives request
- Prediction is made
- Input/output logged to dataset
- Data available for drift analysis
Access Captured Data
import pandas as pd
predictions_df = pd.read_parquet(
"/mnt/data/model-predictions/predictions.parquet"
)
print(predictions_df.head())
Capture Frequency
- Predictions batched hourly
- Full data available in monitoring dataset
- Retention configurable by admin
Model Quality Monitoring
With Ground Truth
If you provide ground truth labels:
ground_truth = pd.DataFrame({
"prediction_id": [...],
"actual_label": [...]
})
ground_truth.to_csv("/mnt/artifacts/ground_truth.csv", index=False)
Quality Metrics
- Accuracy
- Precision/Recall
- F1 Score
- AUC-ROC
- Mean Squared Error (regression)
Schedule Quality Checks
- Go to Monitoring > Quality
- Upload ground truth dataset
- Configure metric thresholds
- Set check frequency
Alerting
Configure Alerts
- Go to Model API > Monitoring
- Click Alerts
- Configure:
- Metric to monitor
- Threshold
- Alert recipients (email)
Alert Types
- Drift threshold exceeded
- Quality metric below threshold
- Model API health issues
- Prediction volume anomalies
Disable Noisy Alerts
Click the bell icon next to features to exclude from alerts.
Viewing Monitoring Data
Monitoring Dashboard
Go to Model API > Monitoring to see:
- Drift trends over time
- Feature distributions
- Quality metrics
- Alert history
Export Data
import pandas as pd
drift_report = pd.read_csv("/mnt/data/monitoring/drift_report.csv")
print(drift_report)
Responding to Drift
Investigation Workflow
- Alert received: Drift detected on feature X
- Investigate: View feature distribution changes
- Diagnose: Compare current vs training data
- Action: Retrain or update model
Retrain Model
from sklearn.ensemble import RandomForestClassifier
recent_data = pd.read_csv("/mnt/data/recent_predictions.csv")
training_data = merge_with_ground_truth(recent_data)
model = RandomForestClassifier()
model.fit(training_data[features], training_data[label])
joblib.dump(model, "/mnt/artifacts/model_v2.joblib")
Automated Retraining
Set up scheduled job to retrain when drift detected:
from domino import Domino
domino = Domino("project/model-project")
drift_status = check_drift_metrics()
if drift_status["max_drift"] > 0.2:
domino.runs_start(
command="python retrain.py",
hardware_tier_name="medium"
)
Best Practices
1. Baseline with Quality Data
Use clean, representative training data for baseline.
2. Monitor Key Features
Focus on features with highest importance:
importances = model.feature_importances_
top_features = sorted(
zip(feature_names, importances),
key=lambda x: x[1],
reverse=True
)[:10]
3. Set Appropriate Thresholds
- Start with conservative thresholds
- Adjust based on business impact
- Different thresholds for different features
4. Include Business Context
Not all drift requires action:
- Seasonal variations may be expected
- New customer segments may cause drift
- Consider business impact before reacting
5. Regular Reviews
Schedule periodic monitoring reviews:
- Weekly: Check drift trends
- Monthly: Review alert configurations
- Quarterly: Assess model performance
Troubleshooting
No Data in Monitoring
- Verify Model API is receiving traffic
- Check prediction capture is enabled
- Wait for hourly batch processing
Drift Always High
- Review training data quality
- Check for data preprocessing differences
- Verify feature encoding consistency
Alerts Not Sending
- Check email configuration
- Verify alert thresholds
- Review spam folders
Documentation Reference