Skip to main content

academy-diaspora-logger

Academy LogConfig that ships agent logs to a Diaspora Kafka topic, with built-in support for running agents on Globus Compute.

Also ships a diaspora CLI for managing credentials, fetching events, and clearing topics.

Installation

pip install academy-diaspora-logger

Globus Compute users: install this package on both your local machine and the remote endpoint so that dill can deserialize DiasporaLogConfig on the worker.


Python API

Local execution (threads / local processes)

from diaspora_logger import DiasporaLogConfig
from academy.manager import Manager
from academy.exchange import LocalExchangeFactory
from concurrent.futures import ThreadPoolExecutor

log_cfg = DiasporaLogConfig(kafka_topic)

async with await Manager.from_exchange_factory(
    factory=LocalExchangeFactory(),
    executors=ThreadPoolExecutor(max_workers=3),
    log_config=log_cfg,
) as manager:
    ...

Globus Compute (remote execution)

Call prefetch() on your local machine before launching agents. It uses your locally cached Globus credentials to fetch AWS IAM keys from the Diaspora service and embeds them in the config. The remote worker receives the keys via the pickled config and never needs Globus auth itself.

from diaspora_logger import DiasporaLogConfig
from academy.manager import Manager
from academy.exchange.cloud.client import HttpExchangeFactory
from globus_compute_sdk import Executor as GCExecutor

log_cfg = DiasporaLogConfig.prefetch(kafka_topic)

async with await Manager.from_exchange_factory(
    factory=HttpExchangeFactory(),
    executors=GCExecutor(endpoint_id),
    log_config=log_cfg,
) as manager:
    ...

Consuming events locally

from diaspora_context import get_diaspora_events

result = get_diaspora_events(
    topic_name=kafka_topic,
    time_horizon=time_before_ms,   # unix epoch milliseconds
)
for event in result["events"]:
    print(event)

CLI

After installation a diaspora command is available on your PATH.

diaspora setup

Register your Globus identity with Diaspora and create your IAM credentials.

diaspora setup

diaspora context

Fetch recent events from a topic and print them as JSON.

diaspora context --topic my-topic
diaspora context --topic ns-abc123.my-topic --lookback 7200   # last 2 hours
diaspora context --topic my-topic --time-horizon 1718000000000 --max-messages 500
Flag Default Description
--topic required Topic name (short or fully-qualified)
--lookback 3600 Seconds to look back from now
--time-horizon — Unix-epoch ms timestamp (overrides --lookback)
--timeout-ms 30000 Consumer poll timeout
--max-messages 10000 Maximum events to return

diaspora clear

Recreate (wipe) a topic.

diaspora clear my-topic

How it works

Scenario Auth How credentials reach Kafka
Local Globus tokens on disk KafkaProducer calls Client().create_key() automatically
Globus Compute prefetch() called locally once AWS IAM keys embedded in pickled config, used directly on worker

prefetch() calls Client().create_key() once on the local machine (where Globus tokens are cached) and stores the returned access_key, secret_key, and endpoint in the config object. When Academy pickles the config and ships it to the remote worker, those credentials travel with it. init_logging() on the remote then builds a raw kafka.KafkaProducer from those credentials — no Globus auth needed on the worker side.

Requirements

  • Python ≥ 3.10
  • academy-py >= 0.3.1
  • diaspora-event-sdk
  • kafka-python < 3
  • certifi (optional, recommended for macOS SSL)

Metadata

Release files for academy-diaspora-logger 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for academy-diaspora-logger 1.0.0
File Size Uploaded
academy_diaspora_logger-1.0.0.tar.gz 9.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for academy-diaspora-logger 1.0.0
File Interpreter ABI Platform
academy_diaspora_logger-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.9 kB

Release files / academy_diaspora_logger-1.0.0.tar.gz

Download URL academy_diaspora_logger-1.0.0.tar.gz
Size 9.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e71ea5d84b075b4fd493b88af13aa4e5ed09f9a96368cd9d57dc5b5219f46a7c
BLAKE2b-256 checksum
How to use checksums
4e10a07bc4c6fd3a7ad354956491b95ab78c61949a6a62b02476c2c875bbb5a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / academy_diaspora_logger-1.0.0-py3-none-any.whl

Download URL academy_diaspora_logger-1.0.0-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f16a6f213083b6b492db7da11500072ca3de60fdf8df5194c7a0bf319e678f77
BLAKE2b-256 checksum
How to use checksums
2108e50e989baddda4edce7111b7399697f4163d6ef794a8419ae544ca9afa9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

1.0.2

2 release files

1.0.1

2 release files

This release

1.0.0 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release 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