kee

command module
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 27, 2025 License: MIT Imports: 16 Imported by: 0

README

Kee

Keep an Eye on Everything

kee screenshot

Documentation

About

Kee is a CLI tool that helps operate backend systems and investigate issues. You customise it to your infrastructure, and it reports on the health of its components, across layers and providers.

Unlike centralised monitoring platforms, it is designed to run locally on your computer. While it doesn't replace monitoring and alerting services, it gives you the opportunity to aggregate all of them into one single convenient view. Kee supports a range of systems, providers and services through probe providers.

Kee is for DevOps and SREs who love TUIs configured with plaintext files. It is heavily inspired by k9s and Terraform.

If you're curious, you can read more about how this project started.

Setup

  1. Install Go >= 1.24, and make sure to set your $PATH to include $GOPATH/bin
  2. Run go install gitlab.com/mwwaa/kee@v1.4.0
  3. Create and edit the following file: $HOME/.config/kee/config.hcl. See below for a configuration example.
  4. Run kee

Configuration example

This is a quickstart configuration example. Customise to your own use and taste.

probe "http" "m.w.fr" {
  interval      = "30s"
  url           = "https://maxime.walzberg.fr/"
  search_string = "Maxime Walzberg"
}

probe "statuspage_status" "CloudFlare" {
  interval      = "30s"
  base_url      = "https://www.cloudflarestatus.com"
  curious = true
}

probe "dns" "w.fr.mx" {
  interval    = "30s"
  nameserver  = "beau.ns.cloudflare.com:53"
  name        = "walzberg.fr."
  record_type = "A"
  expected_values = [
    "172.67.160.104",
    "104.21.65.86",
  ]
  expect_all_values = true
}

probe "ping" "1111" {
  address  = "1.1.1.1"
  interval = "30s"
}

# This will only work if you have a "Minikube" running
probe "k8s_service" "Minikube" {
  interval = "10s"
  context  = "minikube"
  # Choose namespaces relevant to you
  namespaces = ["cats"]
}

# This will only work if you have AWS configuration and credentials setup, and have CloudWatch alarms configured
probe "aws_cloudwatch" "CloudWatch" {
  interval = "1m"
}

Configuration reference

The exhaustive configuration reference is available here.

Documentation

Overview

Kee: Keep an Eye on Everything

Directories

Path Synopsis
internal
cli
Package cli implements a CLI interface for Kee using tview.
Package cli implements a CLI interface for Kee using tview.
configuration
Package configuration defines the HCL and internal types the configuration file is mapped to, and useful consts and functions that can be used using HCL.
Package configuration defines the HCL and internal types the configuration file is mapped to, and useful consts and functions that can be used using HCL.
controller
Package controller runs Probes, reads time, receives Statuses from Probes, Command from the UI, and computes a View for the app to display.
Package controller runs Probes, reads time, receives Statuses from Probes, Command from the UI, and computes a View for the app to display.
logger
Package logger implements different ways of logging Statuses.
Package logger implements different ways of logging Statuses.
tester
Package tester implements a one-shot infrastructure status test in kee.
Package tester implements a one-shot infrastructure status test in kee.
ui
Package ui implements kee's terminal user interface.
Package ui implements kee's terminal user interface.
Package model defines the core types of kee.
Package model defines the core types of kee.
testhelpers
Package testhelpers provide helpers for writing probe provider tests.
Package testhelpers provide helpers for writing probe provider tests.
Package probes exports useful runtime helpers for probes implementations.
Package probes exports useful runtime helpers for probes implementations.
aws/cloudwatch
Package cloudwatch reports the status of AWS CloudWatch alarms.
Package cloudwatch reports the status of AWS CloudWatch alarms.
dns
Package dns reports whether DNS answers matches expected records.
Package dns reports whether DNS answers matches expected records.
http
Package http reports on the success of an HTTP request.
Package http reports on the success of an HTTP request.
k8s
Package k8s reports the status of various Kubernetes objects.
Package k8s reports the status of various Kubernetes objects.
k8s/daemonset
Package daemonset checks the status of k8s DaemonSet objects
Package daemonset checks the status of k8s DaemonSet objects
k8s/deployment
Package deployment checks the status of k8s Deployment objects
Package deployment checks the status of k8s Deployment objects
k8s/node
Package node checks the status of k8s Node objects
Package node checks the status of k8s Node objects
k8s/pod
Package pod checks the status of k8s Pod objects
Package pod checks the status of k8s Pod objects
k8s/service
Package service checks the status of k8s Service objects
Package service checks the status of k8s Service objects
ping
Package ping reports the status of a system responding to ICMP pings.
Package ping reports the status of a system responding to ICMP pings.
statuspage
Package statuspage implements the base client for statuspage probes.
Package statuspage implements the base client for statuspage probes.
statuspage/components
Package components reports on the components of a service exposing an Atlassian StatusPage API.
Package components reports on the components of a service exposing an Atlassian StatusPage API.
statuspage/status
Package status reports the status of a service exposing an Atlassian StatusPage API.
Package status reports the status of a service exposing an Atlassian StatusPage API.
tools
doc_gen command
print_probe command
print_probe is a debug tool to help implement a probe
print_probe is a debug tool to help implement a probe
ui_test command