Skip to main content

KontikiTUI

Part of the Kontiki suite — a compact open-source stack for startups and small teams that need ops without the heavy stack.

Full suite overview → https://kontiki-org.github.io/

Ops demo → kontiki-monitor Quickstart.

Overview

KontikiTUI is a terminal UI for a Kontiki fleet: one SSH entry point for registry census, open ops alerts, flows, events, exceptions, logs, and silences.

It is built with Textual. A session Group Select slices every monitoring tab the same way (all plus groups discovered in the registry).

  • Services — registered instances (status, heartbeat, host/pid, versions, mute).
  • Incidents — open alerts from kontiki-monitor and host-check-service.
  • Flows / Events / Exceptions — registry trackers (chains by flow_id, flat journal, exceptions).
  • Logs — log files of instances currently in the registry.
  • Silences — persisted monitor mutes, including names no longer registered.

The Header subtitle is the installed KontikiTUI version.


Tabs

  • Services: registered services with status, last heartbeat, degraded reason, host/pid, service version, and Kontiki runtime version (kontiki_version on get_services; empty when the instance does not report it; Kontiki ≥1.10.0). Selecting a row shows the public configuration in JSON (top-level public mapping on the instance, Kontiki ≥1.14.0). Empty when the service publishes none. Local filters (Field/Value): Service, Instance, Status, Host, Version, Kontiki.

    Mute column (🔇) reflects kontiki-monitor silences (service_name). s toggles the selected service; S mutes or unmutes all live names in the current Group (always confirmed). Activating the tab warns if silenced names are no longer in the registry (WarningPrompt).

    Defaults to all via the session Group Select on each monitoring tab. Options are all plus groups discovered in the live registry. Changing it in one tab updates all tabs. Missing/blank Registry group counts as business. Instance is the Kontiki 12-hex id (same on Events, Exceptions, Flows hops).

    Services tab

  • Incidents: open ops alerts (list_open_alerts) from kontiki-monitor (fleet / exception fingerprints) and every live host-check-service instance (disk). Session Group Select and local Field/Value filters. Selecting a row shows the full alert JSON. e confirms the file path then writes a Markdown export of the selected alert to export.directory. Mute does not cover host-check disk alerts. Requires Kontiki ≥1.14.0 and boomerang-contracts (pickled NormalizedAlert).

    Incidents tab

  • Flows: chains from the same event tracker, grouped by flow_id. Top table is one row per flow (Flow Id, window, hop count, origin service, first type); bottom table is that flow's hops (chronological, including hops outside the session Group). A flow is listed when at least one hop's emitter is in the selected Group. Events without flow_id stay on Events only. Same census-RPC hide as Events. e confirms the file path then writes a Markdown export of the selected flow (hops included) to export.directory.

  • Events: events tracked by the registry, with local filters (Field/Value/Limit: Service, Instance, Event Type). Instance is the 12-hex id. Domain publishes and RPC calls are shown (rpc:<remote_method> when there is no event_type). Hides registry bookkeeping, TUI observer traffic, and census RPCs (get_services, list_instances, tracker and silence/open-alert reads). Filtered by the same session Group Select (registry jointure). Deregistered instances fall back to business.

    Events tab

  • Exceptions: registry exception index (flow_id, entrypoint, operation, type, message). Instance is the 12-hex id. Same local filters and session Group Select. Empty cells when flow_id / entrypoint / operation are null. Traceback stays in Logs ([flow=…]). Requires Kontiki ≥1.15.0. e confirms the file path then writes a Markdown export of the selected exception to export.directory.

    Exceptions tab

  • Logs: reads log files of instances currently in the registry, from logs.directory. Uses lnav when available; otherwise a Python reader. Files follow Kontiki ≥1.8.1 naming {service_name}-{short_instance_id}.log and the session Group Select. Leftover files from deregistered instances, ServiceRegistry-*.log, and non-Kontiki filenames are not opened.

    Logs tab

  • Silences: monitor silences (list_silences), including names missing from the registry. s clears the selected silence. Session Group Select: absent names show as business. Mute is still posed from Services.

    Silences tab

  • Settings: edit ~/.config/kontiki_tui.yaml (the app reloads configuration on save). export.directory (default /tmp/kontiki-tui-exports) is the folder for Markdown exports (e then y on Incidents, Flows, Exceptions). Each export also overwrites kontiki-tui-last.md in that folder.

    Settings tab


Requirements

  • Optional: lnav for richer log filtering; without it, a built-in Python reader is used

Quickstart

Install from PyPI

pip install kontiki-tui
kontiki-tui

(package on PyPI)

Install from source (Poetry)

make install
make run

Test stack (RabbitMQ + registry + example services + kontiki-monitor)

In one terminal:

make stack-up

In another terminal:

make run

Launch examples to view events and exceptions

make run-rpc-example
make run-simple-event-example

To stop:

make stack-down

Contributing

See CONTRIBUTING.md.

License

Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.

Metadata

Release files for kontiki-tui 1.5.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 kontiki-tui 1.5.0
File Size Uploaded
kontiki_tui-1.5.0.tar.gz 36.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kontiki-tui 1.5.0
File Interpreter ABI Platform
kontiki_tui-1.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 88.8 kB

Release files / kontiki_tui-1.5.0.tar.gz

Download URL kontiki_tui-1.5.0.tar.gz
Size 36.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bf6ecb85e3654ff6480f89e1cf61d1d499cfc3937d2aa32d9ee93e2391822dc5
BLAKE2b-256 checksum
How to use checksums
2f36d11b01376de047bd1b6dbfe9efb8e953b9a768a33ab86148f7eebd0f90dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.2 CPython/3.13.7 Linux/6.8.0-139-generic

Release files / kontiki_tui-1.5.0-py3-none-any.whl

Download URL kontiki_tui-1.5.0-py3-none-any.whl
Size 52.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e5eb6ef7ee1fc7dce35f88472a2418dcc6b79dfad4141a3bf5a5968d3ee32fc4
BLAKE2b-256 checksum
How to use checksums
0cc90dfd0a20e007a58b2e0c26238c63d347f24b11be33ba302bba62ff30c68e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.2 CPython/3.13.7 Linux/6.8.0-139-generic

Release history Release notifications | RSS feed

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.6.0

2 release files

This release

1.5.0 This release

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.2.0

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