Crates.io | bul |
lib.rs | bul |
version | 0.1.1 |
source | src |
created_at | 2024-05-20 11:41:39.710892 |
updated_at | 2024-05-23 09:32:13.133863 |
description | Interactive log analyzer for Kubernetes |
homepage | |
repository | https://github.com/ynqa/bul |
max_upload_size | |
id | 1245639 |
size | 107,916 |
bul provides an interactive TUI to explore container logs for Kubernetes.
[!IMPORTANT] Please note that bul is still at a conceptual stage and in early development. Future updates may significantly alter its search capabilities and user interface.
brew install ynqa/tap/bul
cargo install bul
I frequently utilize kubectl logs
or stern
to analyze errors or debug applications by examining the logs of Kubernetes Pods.
For example:
kubectl logs -n my-namespace my-pod | grep "something"
# Or
stern pod-query | grep "something"
Typically, when analyzing logs, these commands are used in conjunction with grep
to filter for specific keywords.
However, this process requires repeatedly running the command with adjusted parameters,
and re-running the command each time can be cumbersome.
To address this issue, bul project provides to allow users to filter and review logs in real-time. This design enables dynamic adjustment of filtering criteria without the need to rerun the command.
Key | Action |
---|---|
Ctrl + C | Exit bul |
Ctrl + F | Enter digger mode |
Ctrl + R | Reconnect to log API |
← | Move the cursor one character to the left |
→ | Move the cursor one character to the right |
Ctrl + A | Move the cursor to the start of the filter |
Ctrl + E | Move the cursor to the end of the filter |
Backspace | Delete a character of filter at the cursor position |
Ctrl + U | Delete all characters of filter |
Interactive Kubernetes log viewer
Usage: bul [OPTIONS]
Options:
--context <CONTEXT>
Kubernetes context.
-n, --namespace <NAMESPACE>
Kubernetes namespace.
-p, --pod-query <POD_QUERY>
query to filter Pods.
--container-states <CONTAINER_STATUS>
Container states to filter containers. [default: all] [possible values: all, running, terminated, waiting]
--log-retrieval-timeout <LOG_RETRIEVAL_TIMEOUT_MILLIS>
Timeout to read a next line from the log stream in milliseconds. [default: 100]
--render-interval <RENDER_INTERVAL_MILLIS>
Interval to render a log line in milliseconds. [default: 10]
-q, --queue-capacity <QUEUE_CAPACITY>
Queue capacity to store the logs. [default: 1000]
-h, --help
Print help (see more with '--help')