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-monitorandhost-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_versiononget_services; empty when the instance does not report it; Kontiki ≥1.10.0). Selecting a row shows the public configuration in JSON (top-levelpublicmapping 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).stoggles the selected service;Smutes 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
allplus groups discovered in the live registry. Changing it in one tab updates all tabs. Missing/blank Registrygroupcounts as business. Instance is the Kontiki 12-hex id (same on Events, Exceptions, Flows hops). -
Incidents: open ops alerts (
list_open_alerts) fromkontiki-monitor(fleet / exception fingerprints) and every livehost-check-serviceinstance (disk). Session Group Select and localField/Valuefilters. Selecting a row shows the full alert JSON.econfirms the file path then writes a Markdown export of the selected alert toexport.directory. Mute does not cover host-check disk alerts. Requires Kontiki ≥1.14.0 andboomerang-contracts(pickledNormalizedAlert). -
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 withoutflow_idstay on Events only. Same census-RPC hide as Events.econfirms the file path then writes a Markdown export of the selected flow (hops included) toexport.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 noevent_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 tobusiness. -
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 whenflow_id/ entrypoint / operation are null. Traceback stays in Logs ([flow=…]). Requires Kontiki ≥1.15.0.econfirms the file path then writes a Markdown export of the selected exception toexport.directory. -
Logs: reads log files of instances currently in the registry, from
logs.directory. Useslnavwhen available; otherwise a Python reader. Files follow Kontiki ≥1.8.1 naming{service_name}-{short_instance_id}.logand the session Group Select. Leftover files from deregistered instances,ServiceRegistry-*.log, and non-Kontiki filenames are not opened. -
Silences: monitor silences (
list_silences), including names missing from the registry.sclears the selected silence. Session Group Select: absent names show asbusiness. Mute is still posed from Services. -
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 (ethenyon Incidents, Flows, Exceptions). Each export also overwriteskontiki-tui-last.mdin that folder.
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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| kontiki_tui-1.5.0.tar.gz | 36.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|