Skip to main content

arrakis-lldd-connector

A service built on SGN, connecting data between LLDD, Arrakis, and frame files.

ci coverage pypi version


Stream gravitational-wave detector timeseries between the low-latency data distribution system (LLDD), the Arrakis timeseries service, and GWF frame files. Pick a --source and a --sink and the connector builds and runs the SGN pipeline between them.

Resources

Installation

pip install arrakis-lldd-connector

Or from source:

git clone git@git.ligo.org:ngdd/arrakis-lldd-connector.git
cd arrakis-lldd-connector
pip install .

Features

  • Sources: LLDD (Kafka frame streams), Arrakis, GWF frame file directories, and synthetic test signals
  • Sinks: Arrakis, LLDD, GWF frame files, and a null sink for testing
  • Any source can be paired with any sink
  • Live streams are resilient to interruptions: sources reconnect with capped exponential backoff and bridge outages with gap buffers
  • Bounded (--start/--end) or continuous live operation
  • Arrakis replay namespace support for both streaming and publishing (--replay-id)
  • Frame writing options: file retention (--max-files, --retention-time), and skipping files that contain no real data (--skip-all-gap)
  • Live monitoring of the running pipeline (--monitor): an HTML dashboard, Prometheus metrics, and a health endpoint

Quickstart

The CLI shows contextual options: pass --source and/or --sink with --help to see the options relevant to that combination, e.g.

arrakis-lldd-connector --source frames --sink arrakis --help

Publish live DAQ data from LLDD to Arrakis

arrakis-lldd-connector --source lldd --sink arrakis \
    --ifo L1 --topic Live_LLO_Data \
    --bootstrap-servers kafka1:9092,kafka2:9092 \
    --arrakis-url grpc://arrakis-online1:31206 \
    --publisher-id L1-lldd

The channels to publish are discovered from the publisher's registration on the Arrakis server.

Write an Arrakis stream to frame files

The Arrakis source reads the server URL from the ARRAKIS_SERVER environment variable:

export ARRAKIS_SERVER=grpc://arrakis-online1:31206
arrakis-lldd-connector --source arrakis --sink frames \
    --channels L1:GDS-CALIB_STRAIN L1:GDS-CALIB_STATE_VECTOR \
    --frame-duration 64 --output-dir /data/frames \
    --skip-all-gap

Without --start and --end this streams live data continuously; press Ctrl+C to stop.

Publish frame files to LLDD

Watch a directory for new frame files and publish them to Kafka:

arrakis-lldd-connector --source frames --sink lldd \
    --channels H1:GDS-CALIB_STRAIN \
    --watch-dir /data/live/H1 \
    --ifo H1 --topic Live_LHO_Data \
    --bootstrap-servers kafka1:9092

Test a pipeline with synthetic data

arrakis-lldd-connector --source fake --sink null \
    --channels H1:TEST --rate 2048 --signal-type sin \
    --start 0 --end 10

Monitoring

Serve live monitoring for the running pipeline with sgnmon:

arrakis-lldd-connector --source arrakis --sink frames \
    --channels L1:GDS-CALIB_STRAIN \
    --frame-duration 64 --output-dir /data/frames \
    --monitor

This starts a background web server (default port 9090; --monitor-port changes it and implies --monitor, with 0 picking a free port) exposing:

  • / — a live dashboard drawing the pipeline graph with per-channel rates, latencies, and gap fractions
  • /metrics — Prometheus metrics for scraping
  • /health — a JSON health report (HTTP 503 when unhealthy), usable directly by container orchestration or sgnmon check
  • /status — a JSON snapshot of all probes

Rather than observing every pad, the connector taps each link once at the receiving element, plus post-alignment consumption (adp) to distinguish "data arrived" from "data processed", and the source's output pads so input rate and latency are visible per channel at the origin. The data-freshness health check tolerates three missed output strides (--frame-duration for the frames sink, --delta-t for the LLDD sink) before failing, so slow output cadences do not false-alarm.

Usage with Docker

The container image is hosted on containers.ligo.org. Pull the latest version with:

podman pull docker://containers.ligo.org/ngdd/arrakis-lldd-connector:latest

Run with podman (or docker):

podman run --rm --net=host \
    docker://containers.ligo.org/ngdd/arrakis-lldd-connector:latest \
    --source lldd --sink arrakis \
    --ifo L1 \
    --arrakis-url grpc://arrakis-online1:31206 \
    --publisher-id L1-lldd \
    --bootstrap-servers kafka1:9092,kafka2:9092 \
    --topic Live_LLO_Data

Download files

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

Source Distribution

arrakis_lldd_connector-0.7.1.tar.gz (198.4 kB view details)

Uploaded Source

Built Distribution

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

arrakis_lldd_connector-0.7.1-py3-none-any.whl (47.5 kB view details)

Uploaded Python 3

File details

Details for the file arrakis_lldd_connector-0.7.1.tar.gz.

File metadata

  • Download URL: arrakis_lldd_connector-0.7.1.tar.gz
  • Upload date:
  • Size: 198.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1

File hashes

Hashes for arrakis_lldd_connector-0.7.1.tar.gz
Algorithm Hash digest
SHA256 50f10a54c9a18a1f780336fff7b0e099c4de820eeeaff521fa4903a31bb1d2c1
MD5 b0b43edd6bf44edfd4b35b7e1cd0f047
BLAKE2b-256 a19a331c31e71f3e659aeaed700cd4d1b2791aa8f527925352f3ab59ea9cc7ec

See more details on using hashes here.

File details

Details for the file arrakis_lldd_connector-0.7.1-py3-none-any.whl.

File metadata

File hashes

Hashes for arrakis_lldd_connector-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ce8295cb2c025d1f5b93d7109e60adaa6ac0a37c05eabdf313497fb64cd338c4
MD5 382ba3d37d5d05bd3bc63fa8cab38e60
BLAKE2b-256 fa69a66006b043e9e4b09520f03144d38824402210c997bb0feb8297e4d0d769

See more details on using hashes here.

Release history Release notifications | RSS feed

0.7.3

2 files

0.7.2

2 files

This release

0.7.1 This release

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page