Skip to main content

QObserva - Quantum program observability and benchmarking. One command to install and run everything.

Project description

QObserva

Quantum program observability and benchmarking. Local-first, security-first observability for quantum computing.

⚠️ Beta: QObserva is currently in beta. APIs may change.

Quick Start

Prerequisites

Recommendation: For best compatibility with all SDKs, use Python 3.12.

Installation

From PyPI (recommended):

pip install qobserva

For SDK adapters, install the agent with extras:

pip install qobserva-agent[qiskit]      # Qiskit
pip install qobserva-agent[all-sdks]    # All supported SDKs

From source (development):

git clone https://github.com/BuildersArk/qobserva.git
cd qobserva
pip install -e packages/qobserva_agent
pip install -e packages/qobserva_collector
pip install -e packages/qobserva_local
pip install -e packages/qobserva
# One-time: cd packages/qobserva_ui_react && npm install

Start QObserva

qobserva up

Dashboard opens at http://localhost:3000

Stop QObserva

qobserva down

What is QObserva?

QObserva provides standardized telemetry, metrics, and visualizations for quantum program executions across all major Python quantum SDKs.

Features

  • Decorator-first instrumentation: @observe_run() decorator with a simple API
  • Multi-SDK support: Qiskit, Braket, Cirq, PennyLane, pyQuil, D-Wave (all tested)
  • Professional React dashboard: Modern dark-themed UI with diverse visualizations
    • Home dashboard with KPIs, trends, and run tables
    • Analytics dashboard with performance metrics and comparisons
    • Algorithm analytics for cross-SDK algorithm comparison
    • Run details with comprehensive quantum metrics
    • Compare runs side-by-side, search and filter, PDF report generation
  • Local-first: Everything runs locally, no cloud required
  • Standardized schema: Common event format across all SDKs
  • One-command setup: qobserva up starts collector and dashboard
  • Energy metrics: D-Wave optimization metrics (energy, approximation ratio)
  • Comprehensive metrics: Entropy, top-K dominance, shot efficiency, runtime analysis

Usage

Instrument Your Code

Always include the sdk tag for reliable adapter selection.

from qobserva import observe_run

@observe_run(
    project="my_project",
    tags={
        "sdk": "qiskit",       # Required
        "algorithm": "vqe"     # Optional but recommended
    },
    benchmark_id="vqe_h2_ground_state",
    benchmark_params={"energy": -1.137, "convergence_iterations": 10}
)
def my_quantum_algorithm():
    # Your quantum code here
    return execute_quantum_circuit()

Supported SDK values: "qiskit", "braket", "cirq", "pennylane", "pyquil", "dwave"

Add an "algorithm" tag (e.g. "vqe", "grover", "qaoa") to enable algorithm-specific dashboards and cross-SDK comparison.

View Dashboard

Open http://localhost:3000 for:

  • Home: Real-time run metrics, KPIs, success rate trends
  • Analytics: Performance analysis and trends
  • Algorithms: Algorithm-specific metrics and cross-SDK comparison (with algorithm tags)
  • Compare: Side-by-side run comparison, search and filter

Architecture

  • qobserva-agent: Telemetry agent with decorators and adapters for all major quantum SDKs
  • qobserva-collector: FastAPI service for ingestion, validation, and storage
  • qobserva-local: One-command orchestrator for the local stack (includes React dashboard)
  • qobserva: This meta-package and CLI (qobserva up / qobserva down)

The React dashboard is part of the local stack and runs automatically when you run qobserva up.

SDK Support

pip install qobserva-agent[all-sdks]

# Or individual SDKs
pip install qobserva-agent[qiskit]
pip install qobserva-agent[braket]
pip install qobserva-agent[cirq]
pip install qobserva-agent[pennylane]
pip install qobserva-agent[pyquil]
pip install qobserva-agent[dwave]

Python Version Compatibility

SDK Python Version Notes
Qiskit 3.10+ 3.10–3.14
Braket 3.10 – 3.13 3.14+ not supported (Braket uses Pydantic v1)
Cirq 3.10+ 3.10–3.14
PennyLane 3.10+ 3.10–3.14
pyQuil 3.10 – 3.12 3.13+ not supported (PyQuil 4.x)
D-Wave 3.10+ 3.10–3.14

Recommendations: Use Python 3.12 for all 6 SDKs; Python 3.13 if you don’t need pyQuil.

Project, Provider, and Backend

  • Project: From @observe_run(project="...") — user-defined, for grouping runs.
  • Provider: Extracted from the result (e.g. ibm, aws_braket, local_sim).
  • Backend: Extracted from the result (e.g. ibm_brisbane, default.qubit).

Filter by these in the dashboard to compare providers and backends. Always set tags={"sdk": "..."} so adapter selection is correct.

Documentation

Links

Reporting Issues / Getting Help

If you encounter bugs, have questions, or would like to request features for the qobserva CLI / meta-package, please open an issue on GitHub:

License

The qobserva meta-package and CLI are provided under the QObserva Community License v1.0 (source-available). See the LICENSE file in this package for full terms. Commercial hosting, distribution of modified versions, or commercial products based on QObserva require a separate license from BuildersArk LLC.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qobserva-0.1.3.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qobserva-0.1.3-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file qobserva-0.1.3.tar.gz.

File metadata

  • Download URL: qobserva-0.1.3.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for qobserva-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c74fbae769eb67f9196a9190ce5c21fc8f0ecea0e50053e63b372efb378168c7
MD5 09dae61a18e963dca307643945ebcfeb
BLAKE2b-256 64330bd49218b5621cfc3189183d4d51840c0545436245758d5f121c5be038fb

See more details on using hashes here.

File details

Details for the file qobserva-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: qobserva-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for qobserva-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a5a22983bd40fd7ff9ede7e7b1905aae465b07d61fe0580f016772ef76d03437
MD5 95a1922df6eacdd8f4fb5c13d7e37a02
BLAKE2b-256 51be2bf8b82d51a9da88fe680a659622a771d5a87e50e85a3225ac9913b38eb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page