Data Observability¶
Monitor and ensure data pipeline quality and reliability with comprehensive observability capabilities powered by IBM Databand.
GitHub Repository
The complete source code and examples are available in the GitHub repository:
Overview¶
Data Observability provides comprehensive monitoring, alerting, and quality validation for data pipelines using IBM Databand — IBM's enterprise data observability platform. Track every pipeline run, surface data quality anomalies, enforce SLA thresholds, and maintain a complete OpenLineage-compliant lineage graph for all IBM Cloud data assets.
When to Use¶
| Scenario | Asset |
|---|---|
| Monitor pipeline run health and surface quality anomalies via REST API | assets/databand-pipeline-monitor/ |
| Emit OpenLineage events from a Python ETL, DataStage, or Spark job | assets/openlineage-emitter/ |
| Apply pre-built alert policies (null-rate, schema-drift, SLA-breach) to a pipeline | assets/databand-alert-templates/ |
| Archive pipeline run reports to IBM COS for audit compliance | assets/databand-pipeline-monitor/ — COS archiving |
IBM Products Used¶
- IBM Databand: Data observability and pipeline monitoring platform
- IBM watsonx.data: Open lakehouse platform
- IBM Cloud Object Storage: Scalable object storage for archived reports
Assets¶
1. Databand Pipeline Monitor¶
FastAPI service that wraps the Databand REST API v1 — list pipelines, inspect run health, retrieve quality metrics, and manage alert policies programmatically.
API Endpoints:
| Method | Path | Description |
|---|---|---|
GET |
/pipelines |
List all Databand-monitored pipelines |
POST |
/pipelines/runs |
Run history with date filtering |
GET |
/pipelines/runs/{uid} |
Full run detail + per-task metrics |
GET |
/alerts |
List alert policies |
POST |
/alerts |
Create threshold-based alert policy |
POST |
/metrics/quality-summary |
Aggregated quality score for a run |
Quick Start:
cd assets/databand-pipeline-monitor
cp .env.example .env
# Edit .env: DATABAND_URL, DATABAND_ACCESS_TOKEN, IBM_API_KEY
pip install -r requirements.txt
python main.py
# Swagger UI → http://localhost:8080/docs
2. OpenLineage Emitter¶
Python library and CLI that instruments any Python ETL script, IBM DataStage job, or Apache Spark application to emit OpenLineage events (START / COMPLETE / FAIL) to IBM Databand.
Quick Start:
cd assets/openlineage-emitter
pip install -r requirements.txt
# CLI usage
python emitter.py \
--pipeline customer_etl \
--job transform_orders \
--inputs "cos://raw-bucket/orders.csv" \
--outputs "iceberg://cos_catalog/sales.orders" \
--event-type COMPLETE
Python context manager:
from emitter import PipelineRun
with PipelineRun(
pipeline_name="customer_etl",
job_name="transform_orders",
inputs=["cos://raw-bucket/orders.csv"],
outputs=["iceberg://cos_catalog/sales.orders"],
):
# ETL code here
pass
3. Databand Alert Templates¶
Pre-built YAML alert policy templates for common data quality failure modes.
| Template | Condition | Severity |
|---|---|---|
null_rate_policy |
null rate > 5% | High |
row_count_drop_policy |
row count < 80% of prior run | Critical |
schema_drift_policy |
schema change detected | High |
sla_breach_policy |
run duration > 2 hours | Medium |
quality_score_policy |
quality score < 0.85 | High |
duplicate_rate_policy |
duplicate rate > 2% | Medium |
Apply all templates:
cd assets/databand-alert-templates
python apply_alert_templates.py --all --pipeline customer_pipeline
Bob Mode¶
Give IBM Bob a Data Observability specialist persona.
Install (Windows):
Copy-Item bob-modes/base-modes/data-observability-builder.zip "$env:APPDATA\IBM Bob\User\globalStorage\ibm.bob-code\modes\"
cp bob-modes/base-modes/data-observability-builder.zip ~/.config/IBM\ Bob/User/globalStorage/ibm.bob-code/modes/
Restart IBM Bob — Data Observability Builder mode appears in the mode selector.
Bob Skills¶
| Skill | Zip | Capabilities |
|---|---|---|
databand-pipeline-setup |
databand-pipeline-setup.zip |
Databand pipeline onboarding, OpenLineage event design, alert policy authoring, IBM IAM auth patterns |
unzip bob-skills/databand-pipeline-setup.zip
Open IBM Bob → Skills panel → enable databand-pipeline-setup.
Architecture¶
graph LR
Pipelines["IBM Data Pipeline<br/>DataStage / Spark / Python"]
Databand["IBM Databand<br/>/api/v1/lineage<br/>/api/v1/runs<br/>/api/v1/alert_defs"]
Monitor["Databand Pipeline Monitor<br/>REST API"]
COS["IBM Cloud Object Storage<br/>archived run reports"]
Pipelines -->|OpenLineage events<br/>START / COMPLETE / FAIL| Databand
Monitor -->|Metrics / Alerts| Databand
Databand --> COS
Use Cases¶
Common Observability Scenarios
- Pipeline Health Monitoring: Track pipeline execution status and performance
- Data Quality Assurance: Validate data quality before AI consumption
- Incident Response: Quickly identify and resolve data issues
- Compliance Reporting: Generate audit trails and compliance reports
Best Practices¶
- Define Quality Metrics Early: Establish data quality standards before pipeline deployment
- Set Appropriate Alert Thresholds: Balance between noise and missing critical issues
- Monitor Data Freshness: Track data arrival times and processing delays
- Document Pipeline Dependencies: Maintain clear lineage and dependency maps
- Regular Review: Periodically review and update monitoring rules
Resources¶
- GitHub Repository
- IBM Databand on IBM Cloud Catalog
- IBM Databand Documentation
- OpenLineage Specification
- IBM watsonx.data Documentation
Support¶
For issues or questions, please refer to the GitHub repository or contact IBM support.