DEV Community

Cover image for Quantum computing SDKs lack observability. We built QObserva to fix that.
QObserva Labs
QObserva Labs

Posted on

Quantum computing SDKs lack observability. We built QObserva to fix that.

Over the past few months, we’ve been working extensively with quantum SDKs like Qiskit, Cirq, and Amazon Braket. Building circuits and running jobs is becoming more accessible, but we kept running into the same friction point—not in execution, but in understanding what actually happened after a run.

At a small scale, things feel manageable. You run a few experiments, inspect results, maybe store some outputs. But as soon as you start iterating—changing parameters, switching backends, or comparing runs over time—the workflow becomes harder to reason about. Context gets scattered across notebooks, logs, and ad-hoc scripts, and simple questions become surprisingly difficult to answer.


The problem: runs without context

As workflows grow, we repeatedly ran into questions like:

  • Which backend produced this result?
  • What changed between two runs?
  • Why did performance drop this week?
  • Are we comparing equivalent experiments across SDKs?

None of these questions are inherently complex. The issue is that the information needed to answer them isn’t captured in a structured way.

Instead, context is spread across:

  • Notebooks
  • Logs
  • One-off scripts
  • Memory (which doesn’t scale)

As a result, teams spend more time reconstructing what happened than actually improving their experiments.


This is a tooling gap, not a quantum problem

In modern software systems, this problem was solved years ago through observability. Metrics, logs, and traces provide a clear picture of system behavior, and tools like Datadog or Prometheus make debugging and optimization straightforward.

In quantum SDK workflows, that layer is still mostly missing.

You can run experiments—but tracking, comparing, and explaining them is still largely manual.


What we wanted instead

We weren’t looking for a heavy platform or something tied to a single SDK. We wanted something practical that fits into existing workflows.

The requirements were simple:

  • Works across Python-based quantum SDKs
  • Local-first (no mandatory cloud setup)
  • Minimal friction to adopt
  • Captures run-level metadata and metrics

Most importantly, it needed to make experiments comparable and explainable over time.


Introducing QObserva

QObserva is a lightweight observability layer for quantum SDK workflows.

It captures structured telemetry for each run—metadata, tags, and metrics—so you can understand what happened without piecing together context manually.


Getting started

You can set it up in a few minutes.

Install:

pip install qobserva
Enter fullscreen mode Exit fullscreen mode

Start the local stack:

qobserva up
Enter fullscreen mode Exit fullscreen mode

Instrument your run:

In this example we use a Qiskit StatevectorSampler to create a Bell-state run.

The same @observe_run pattern works across other SDKs too (Braket, Cirq, PennyLane, pyQuil, D-Wave) by changing the sdk tag and your SDK-specific run code.

See:

from qobserva import observe_run
from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler

@observe_run(
    project="first_demo",
    tags={"sdk": "qiskit", "algorithm": "bell_state"},
    benchmark_id="first_demo_bell_state",
    benchmark_params={
        "shots": 1024,
        "target_bitstrings": ["00", "11"],
    },
)
def run_algorithm():
    qc = QuantumCircuit(2, 2)
    qc.h(0)
    qc.cx(0, 1)
    qc.measure([0, 1], [0, 1])

    sampler = StatevectorSampler()
    job = sampler.run([qc], shots=1024)
    return job.result()
Enter fullscreen mode Exit fullscreen mode

Open the dashboard at:

http://localhost:3000
Enter fullscreen mode Exit fullscreen mode

You’ll immediately see:

  • Run metadata
  • Tags and context
  • Metrics across experiments

Demo

Video: https://github.com/BuildersArk/qobserva/blob/main/docs/video/demo_qiskit_run.gif


Why this matters

Most quantum workflows today are still highly experimental. That makes clarity and iteration speed critical.

Without observability:

  • You lose context between runs
  • You repeat work unintentionally
  • You spend time debugging setup instead of improving algorithms

Even a small layer of structured visibility makes a noticeable difference.


What’s next

QObserva is currently in beta, and we’re shaping it based on real-world usage.

If you’re working with quantum SDKs, we’d love to understand:

  • What you currently track
  • What feels hardest to debug or compare
  • What would actually save you time

Try it out

Learn More:
https://qobserva.com/

Repository:
https://github.com/BuildersArk/qobserva

Feedback and issues:
https://github.com/BuildersArk/qobserva/issues


Final thought

We’re not trying to solve all of quantum computing.

The goal is simpler: make it easier to understand what your code is doing when you run it.

If that resonates, we’d love to hear your thoughts.

Top comments (0)