Skip to main content

kestrel-feature-observability

Per-agent lifecycle observability emitter for Kestrel Sovereign agents. Attaches an ObservabilityHook to the agent's hook system; every lifecycle event is POSTed to the fleet host's observability store (POST {KESTREL_OBSERVABILITY_URL}/api/host/observability/events). Prometheus metrics emit through the SDK's shared registry, so a single /metrics scrape stays coherent across the framework + every feature package.

This package is producer-only. The event store, query routes, and Console UI (LLM-call table + fleet swimlane) are owned by the fleet host feature — the single tenant-aware owner of the observability data plane.

Installation

uv pip install kestrel-feature-observability

For real Prometheus output:

uv pip install 'kestrel-feature-observability[metrics]'

The feature is auto-discovered by Kestrel Sovereign via the kestrel_sovereign.features entry point — install it alongside kestrel-sovereign and ObservabilityFeature registers itself at startup.

Emitter transport

The hook reads two frozen env vars (the same keys talon's emitter uses):

  • KESTREL_OBSERVABILITY_URL — the fleet host root. The hook POSTs to this URL plus the path /api/host/observability/events. When unset, the emit path is a no-op (the agent still runs; Prometheus counters still fire).
  • KESTREL_OBSERVABILITY_KEY — sent as the X-API-Key request header when set.

Delivery is lightweight and best-effort: an httpx.AsyncClient POST, fire-and-forget with a short (~2s) timeout, all failures swallowed, no buffering, no retry, no entities dependency. Each event payload carries orchestrator/session_id/tool_name/lineage and friends; orchestrator is the agent itself when self-driven, else null (rendered "Direct" by the fleet store).

Privacy

The hook is observational — it never blocks, denies, or modifies. User-message content is not sent (only length); tool errors are truncated to 200 chars; exceptions in the hook are swallowed so they cannot affect agent operation.

Dependencies

  • kestrel-sovereign-sdk>=0.14.1,<1 — base Feature, Hook, and shared metrics module
  • httpx>=0.27.0 — lightweight HTTP client for the emitter POST
  • Optional [metrics] extra → kestrel-sovereign-sdk[metrics]prometheus-client

No runtime dependency on kestrel-sovereign (or any entities/fleet package); the hook talks to the fleet host purely over HTTP.

Development

uv pip install -e '.[test]'
uv run pytest

License

Apache-2.0

Download files

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

Source Distribution

kestrel_feature_observability-0.6.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

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

kestrel_feature_observability-0.6.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file kestrel_feature_observability-0.6.0.tar.gz.

File metadata

File hashes

Hashes for kestrel_feature_observability-0.6.0.tar.gz
Algorithm Hash digest
SHA256 753e1e90adca0ba308712666b179217e590c973db9e580550c9d943d1bb9d70e
MD5 6c86d15213b5d0fe72d80df5a95c8b6d
BLAKE2b-256 193a21d0ea7c8b0a9706a9303576a482e2ad69d78463fbd5e9bdf01d36a3e530

See more details on using hashes here.

Provenance

The following attestation bundles were made for kestrel_feature_observability-0.6.0.tar.gz:

Publisher: publish.yml on KestrelSovereignAI/kestrel-feature-observability

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

File details

Details for the file kestrel_feature_observability-0.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for kestrel_feature_observability-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8c7fdf16a693bec08cc238c4cc0231754e059be91ee0cc8ff985bb34043cb947
MD5 e37f40778dfea4be026cb47fe49f065f
BLAKE2b-256 5231ba5f4ce5958504254fe29e9d41db247a2464e99dde6532b1a2f02f613067

See more details on using hashes here.

Provenance

The following attestation bundles were made for kestrel_feature_observability-0.6.0-py3-none-any.whl:

Publisher: publish.yml on KestrelSovereignAI/kestrel-feature-observability

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

Release history Release notifications | RSS feed

0.17.13

2 files

0.17.12

2 files

0.17.11

2 files

0.17.10

2 files

0.17.9

2 files

0.17.8

2 files

0.17.7

2 files

0.17.6

2 files

0.17.5

2 files

0.17.4

2 files

0.17.3

2 files

0.17.2

2 files

0.17.1

2 files

0.17.0

2 files

0.16.2

2 files

0.16.1

2 files

0.16.0

2 files

0.15.1

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

This release

0.6.0 This release

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page