Observability · 8/21/2026

Designing Drilling-Data Observability from Rig Site to Operations Dashboard

Lessons from building a real-time drilling observability platform on WITSML streams, SQL Server, PostgreSQL, and Grafana — where the architecture actually matters.

Every oil-and-gas operation eventually asks the same question: why can’t we see what’s happening at the rig right now? The honest answer is usually not “we lack dashboards.” It’s that the path between a sensor reading downhole and a decision in town has too many unmonitored hops.

This is a walkthrough of how I approached that problem as the architect of a real-time drilling observability system — and the decisions I’d repeat.

Start with the data contract, not the dashboard

WITSML gives you a rich but opinionated XML standard for rig-site data. The temptation is to consume it raw and push everything downstream. Don’t. The first architectural artifact we built was a normalized event model: which measurements matter, at what cadence, with what units, and what “bad data” looks like for each sensor type.

A depth-indexed log curve, a time-series rig activity feed, and a discrete alarm behave differently under load. Modeling them as one generic “stream” is how you end up with a system that works in the demo and falls over on a night shift.

Separate the hot path from the history

Drilling data has two consumers who want incompatible things:

  • The mudlogger and driller need sub-minute latency. If the hook load lags ninety seconds, the dashboard is furniture.
  • The reservoir and drilling engineers need months of clean, queryable history for well-to-well comparison.

We landed on a two-tier design: a high-frequency ingest tier that prioritizes availability over durability guarantees, feeding live Grafana views; and a replicated PostgreSQL tier that receives validated, deduplicated history. The replication between them is itself monitored — because an observability pipeline you can’t observe is just a rumor.

Validate at ingest, not at display

Bad sensor data is a certainty: dropped sequences, unit mismatches, stuck-value sensors reporting the same reading for hours. If validation happens when someone builds a chart, every downstream consumer inherits the cleanup cost. We validate at ingest, quarantine failures with reasons, and surface data-quality metrics as first-class panels next to the operational ones.

That last part changed conversations with operations staff. Once they could see data confidence beside hook load, trust in the whole system went up.

AI belongs on the boring 80%

The glamorous AI use case is predicting a kick before it happens. The valuable one is classifying routine drilling activity states so engineers stop hand-labeling shifts of data. We built classification models for standard activity patterns — connection, tripping, circulation — and measured them against operator logs.

Two lessons:

  1. Precision beats recall here. A mislabeled activity state erodes trust faster than a gap.
  2. The model is only as good as the validated stream from the previous section. Garbage in, confident garbage out.

What I’d tell anyone starting this

  • Instrument the pipeline itself first. Every hop gets a heartbeat, a lag metric, and an alert.
  • Choose boring, observable technology. Our stack — WITSML server, SQL Server at the edge, PostgreSQL centrally, Grafana everywhere — was chosen because each layer can be interrogated independently at 3 a.m.
  • Design for the night shift, not the steering committee. If the on-call engineer can’t tell within thirty seconds whether the problem is the rig, the link, or your platform, the architecture isn’t done.

Real-time observability in industrial settings isn’t a visualization project. It’s a data-contract project with a visualization budget.