đ MLHB Server listening on http://0.0.0.0:8080 Example : A tiny Flask inference API.
app = Flask(__name__)
# Initialise the MLHB agent (autoâstarts background thread) mlhbdapp.init( service_name="demoâsentimentâapi", version="v0.1.3", tags="team": "nlp", # optional: custom endpoint for the server endpoint="http://localhost:8080/api/v1/telemetry" ) mlhbdapp new
# app.py from flask import Flask, request, jsonify import mlhbdapp
(mlhbdapp) â What It Is, How It Works, and Why Youâll Want It (Published March 2026 â Updated for the latest v2.3 release) TL;DR | â What youâll learn | đ Quick takeaways | |----------------------|--------------------| | What the MLHB App is | A lightweight, crossâplatform âMLâHealthâDashboardâ that lets developers and data scientists monitor model performance, data drift, and resource usage in realâtime. | | Why it matters | Turns the dreaded âmodelâmonitoring nightmareâ into a single, shareable UI that integrates with most MLOps stacks (MLflow, Weights & Biases, Vertex AI, SageMaker). | | How to get started | Install via pip install mlhbdapp , spin up a Docker container, and connect your ML pipeline with a oneâline Python hook. | | Whatâs new in v2.3 | Liveâquery notebooks, AIâgenerated anomaly explanations, native Teams/Slack alerts, and an extensible plugin SDK. | | When to use it | Any production ML system that needs transparent, lowâlatency monitoring without a fullâblown APM suite. | đ MLHB Server listening on http://0
mlhbdapp.register_drift( feature_name="age", baseline_path="/data/training/age_distribution.json", current_source=lambda: fetch_current_features()["age"], # a callable test="psi" # options: psi, ks, wasserstein ) The dashboard will now show a gauge and generate alerts when the PSI > 0.2. Tip: The SDK ships with builtâin helpers for Spark , Pandas , and TensorFlow data pipelines ( mlhbdapp.spark_helper , mlhbdapp.pandas_helper , etc.). 5ď¸âŁ New Features in v2.3 (Released 2026â02â15) | Feature | What It Does | How to Enable | |---------|--------------|---------------| | AIâExplainable Anomalies | When a metric exceeds a threshold, the server calls an LLM (OpenAI, Anthropic, or local Ollama) to produce a naturalâlanguage rootâcause hypothesis (e.g., âLatency spike caused by GC pressure on GPU 0â). | Set MLHB_EXPLAINER=openai and provide OPENAI_API_KEY in env. | | LiveâQuery Notebooks | Embedded JupyterâLite environment in the UI; you can query the telemetry DB with SQL or Python Pandas and instantly plot results. | Click Notebook â âCreate Newâ. | | Teams & Slack Bot Integration | Rich interactive messages (charts + âAcknowledgeâ button) sent to your chat channel. | Add MLHB_SLACK_WEBHOOK or MLHB_TEAMS_WEBHOOK . | | Plugin SDK v2 | Write plugins in Python (for backend) or TypeScript (for UI widgets). Supports hotâreload without server restart. | mlhbdapp plugin create my_plugin . | | Improved Security | Roleâbased OAuth2 (Google, Azure AD, Okta) + optional SSO via SAML. | Set
@app.route("/predict", methods=["POST"]) def predict(): data = request.json # Simulate inference latency import time, random start = time.time() sentiment = "positive" if random.random() > 0.5 else "negative" latency = time.time() - start | | How to get started | Install
volumes: mlhb-data: docker compose up -d # Wait a few seconds for the DB init... docker compose logs -f mlhbdapp-server You should see a log line like: