Skip to content

DataHub and OpenTelemetry

DataHub and OpenTelemetry answer different questions.

DataHub asks “what does this data mean?”

DataHub can provide metadata such as:

  • dataset and schema information;
  • ownership;
  • upstream and downstream lineage;
  • quality assertions;
  • lifecycle and deprecation signals;
  • query or usage context;
  • business descriptions and documents.

Themis reads this information through its MCP boundary. A missing DataHub record is an evidence gap. It is not permission to guess.

OpenTelemetry asks “what did the system do?”

OpenTelemetry provides runtime signals. The Themis instrumentation records trace and span IDs for release, replay, oracle, evaluation, and write-back work. A trace backend such as Jaeger can display those spans.

OpenTelemetry can help answer:

  • Did the run create a trace?
  • Which spans belong to the same run?
  • Which operation took the most time?
  • Did an operation return an error?

Those values come from telemetry or a receipt. They do not come from the nyc_taxi SQL table.

What each plane proves

Question DataHub OpenTelemetry
Is the field deprecated? Yes, when cataloged No
Which team owns the dataset? Yes, when cataloged No
Did the replay execute? No Yes, when traced
How long did a span take? No Yes, when retained
Did the result match the oracle? No No; Themis evaluation proves this
Which dataset identity did the run use? Context only Context only; Themis receipt is authoritative

Current public boundary

The public Analytics Agent has SQL, DataHub, and a narrow read-only Themis Evidence MCP bridge. The bridge can return only configured demonstration receipts and Jaeger spans referenced by those validated receipts. It cannot query an arbitrary trace, enumerate release history, or call Themis mutation routes. If the bridge cannot verify a value, the agent must label it UNVERIFIED and point to the current Themis receipt.

Trace correlation

Themis records real IDs returned by the OpenTelemetry SDK. It validates the shape of those IDs and places them in the receipt. A trace ID links related spans. A span ID identifies one operation. The parent-child relationship shows the order of work.

A trace is not a decision

A complete trace proves that instrumented work ran. The replay result, oracle result, DataHub evidence, and policy still decide the release.