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.2.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.2-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: qobserva-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 7eb0f3a6ff72fba2b8f8a5f90b3c095ad11744f16985d90cc55b43776bbc47e4
MD5 acebb14ed71891bc874156a42743a85f
BLAKE2b-256 a0ee4d4ba504f859add9f39795cdd6f350fa695054b8485e9c2a152fac6ebae2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: qobserva-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a3d9534d6eb80b57411b6f2e85876127c068b4480f1c63f6dfff121d5d8f825a
MD5 4a89be4bf7a187f4efdbfc993bf94482
BLAKE2b-256 63d98faf9dc22666547032813d6af130245457f397dcddcfa859432c5c7ac538

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