Skip to main content

Entity-centric observability client for scientific instrument pipelines

Project description

helixobs — Python client

Entity-centric observability for scientific instrument pipelines.

Track domain entities (raw observations, intermediate products, derived results) across disjoint asynchronous pipeline stages. The library attaches provenance links between entities so you can trace any scientific result back to the raw data that produced it.

Built on OpenTelemetry. Signals are standard OTLP — the HelixObs gateway adds entity intelligence on top.

Installation

pip install helixobs

Requires Python 3.11+.

Quick start

from helixobs import setup
import logging

log = logging.getLogger("my.pipeline")

# One call wires both traces and logs with matching service name
tel = setup(
    "my-instrument.pipeline",
    instrument_id="MY_INSTRUMENT",
    endpoint="gateway:4317",
    otlp=True,               # ship logs via OTLP to the collector (port 4319)
)

# Track an entity through a pipeline stage
with tel.create("detector", id=product_id, parents=[frame_id]) as token:
    result = process(item)
    log.info("item processed")           # helix_entity_id injected automatically
    if result.score > 0.95:
        token.add_event("helix.event.detection_confirmed", {"score": result.score})
# complete() called on exit; error() called on unhandled exception

Two OTLP endpoints:

Endpoint Default port Purpose
HelixObs Gateway 4317 OTLP traces — entity spans
OTel Collector 4319 OTLP logs — structured log shipping

Set OTEL_EXPORTER_OTLP_ENDPOINT=http://<host>:4319 for log shipping, or pass log_endpoint to setup().

See USER_GUIDE.md for the full API reference, integration patterns, structured logging, and data model.

Development

pip install -e ".[dev]"
pytest

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

helixobs-0.3.4.tar.gz (29.7 kB view details)

Uploaded Source

Built Distribution

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

helixobs-0.3.4-py3-none-any.whl (23.7 kB view details)

Uploaded Python 3

File details

Details for the file helixobs-0.3.4.tar.gz.

File metadata

  • Download URL: helixobs-0.3.4.tar.gz
  • Upload date:
  • Size: 29.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for helixobs-0.3.4.tar.gz
Algorithm Hash digest
SHA256 ad587a5e40d4a54d2531efb737b52f9ddd27592612baafeb0c5ecf5b4e122e9b
MD5 afa77c273de4c812a5030e3240248d2e
BLAKE2b-256 fc84566bb01803afac42042257ec0c8ac67419a876095d0f97f70d64737f584c

See more details on using hashes here.

Provenance

The following attestation bundles were made for helixobs-0.3.4.tar.gz:

Publisher: publish.yml on HelixObs/client-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file helixobs-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: helixobs-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 23.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for helixobs-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6b4bf6b47cce7eeafa5a2b2db3aaee28198d0c8ef7fd6e38ca2d250967ab29c7
MD5 d2e3277ff85cfddadef9d9fd5c465f13
BLAKE2b-256 c836e077a7b9c151b85385321b150bc5fbb6f4e3e1179c2bfa73b2d3d7af8d93

See more details on using hashes here.

Provenance

The following attestation bundles were made for helixobs-0.3.4-py3-none-any.whl:

Publisher: publish.yml on HelixObs/client-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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