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.5.tar.gz (8.3 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.5-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: qobserva-0.1.5.tar.gz
  • Upload date:
  • Size: 8.3 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.5.tar.gz
Algorithm Hash digest
SHA256 ef8aa55bc59ab738ec8e4e47d62ef42f36c7923bff8667d769b48a1ff9cc275e
MD5 225fe3c072ea96ac9e8acd9fbbf52565
BLAKE2b-256 3dd14471f73ee59d9878c6389cbc0f348034177dae5260c25e73b4b1d03b6fcd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: qobserva-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 10.9 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 38bebec05cc159773cd4ccc93adedacb1551a33f25ab1ff5fe10354cc34259fe
MD5 15f52d5ea9a276e38d92011d9ffddd46
BLAKE2b-256 b2bed9ee82a584c57d01930492ef494fb7d8ed0bda7a65f683a620e9d88988fb

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