Skip to content

A transformative log viewer for Kubernetes

License

Notifications You must be signed in to change notification settings

RadoslavPetkow/khi

 
 

Repository files navigation

Kubernetes History Inspector

Language: English | 日本語

Header

Kubernetes History Inspector (KHI) is a rich log visualization tool for Kubernetes clusters. KHI transforms vast quantities of logs into an interactive, comprehensive timeline view. This makes it an invaluable tool for troubleshooting complex issues that span multiple components within your Kubernetes clusters.

KHI features and characteristics

  • No Prior Setup Required: KHI uses your existing logs, so you don't need to install anything extra. This makes setup easier and saves you time. Furthermore, you can use KHI to troubleshoot even past issues as long as logs are still available in your logging backend.

  • Effortless log collection: KHI significantly simplifies the process of collecting and visualizing Kubernetes-related logs. Instead of writing complex queries, users can leverage an interactive GUI. By setting the target cluster type, log types, and parameters such as time range and cluster name, KHI automatically generates the necessary queries and collects the logs for visualization.

Feature: quick and easy steps to gather logs

  • Comprehensive Visualization with Interactive Timelines: KHI transforms vast quantities of logs into an interactive and comprehensive timeline view.
    • Resource History Visualization: KHI displays the status of resources on a timeline. It also parses audit logs and displays the resource manifest at a specific point in time, highlighting differences.
    • Visualization of Multiple Log Types Across Multiple Resource Types: KHI correlates various types of logs across related resources, providing a holistic view.
    • Timeline Comparison of Logs Across Resources: The timeline view allows users to compare logs across resources in the time dimension, making it easy to identify relationships and dependencies.
    • Powerful Interactive Filters: KHI intentionally loads a massive amount of logs into memory. This enables users to interactively filter logs and quickly pinpoint the information they need within the large dataset.

Feature: timeline view

  • Cluster Resource Topology Diagrams (Early alpha feature): KHI can generate diagrams that depict the state of your Kubernetes cluster's resources and their relationships at a specific point in time. This is invaluable for understanding the configuration and topology of your cluster during an incident or for auditing purposes.

Feature: resource diagram

Supported environments

Kubernetes cluster

Logging backend

  • Google Cloud

    • Cloud Logging (For all clusters on Google Cloud)
  • Other

    • Log file upload (Coming soon)

Getting started

Run from a docker image

Supported environment

  • Latest Google Chrome

Important

We only test KHI with the latest Google Chrome. KHI may work with the other browser, but we will not support even if it won't work with the other browser.

Run KHI

  1. Open Cloud Shell
  2. Run docker run -p 8080:8080 asia.gcr.io/kubernetes-history-inspector/release:latest
  3. Click the link http://localhost:8080 on the terminal and start working with KHI!

Tip

If you want to run KHI with the other environment where the metadata server is not available, you can pass the access token via the program argument.

$ docker run -p 8080:8080 asia.gcr.io/kubernetes-history-inspector/release:latest -access-token=`gcloud auth print-access-token`

Note

The container image source may change in the soon future. #21

For more details, please try Getting started.

Run from source code

Get Started (Run from source)

Prerequisites

  • Go 1.23.*
  • Node.js environment 18.19.*
  • gcloud CLI

Initialization (one-time setup)

  1. Download or clone this repository
    e.g. git clone https://github.com/GoogleCloudPlatform/khi.git
  2. Move to the project root
    e.g. cd khi
  3. Run cd ./web && npm install from the project root

Run KHI

  1. Authorize yourself with gcloud
    e.g. gcloud auth login if you use your user account credentials
  2. Run make build-web && KHI_FRONTEND_ASSET_FOLDER=./dist go run cmd/kubernetes-history-inspector/main.go from the project root
    Open localhost:8080 and start working with KHI!

Authentication settings

Google Cloud

Your account must have the following permissions granted:

Required

  • logging.logEntries.list

Optional

This permission is used to show a suggestion popup to fill the forms of log filter. It works without the permission, but the suggestive autocomplete won't appear.

  • Cluster list permission for the cluster type (e.g container.clusters.list for GKE)

User Guide

Please check our user guide.

Contribute

If you'd like to contribute to the project, please read our Contributing guide.

Disclaimer

Please note that this tool is not an officially supported Google Cloud product. If you find any issues and have a feature request, please file a Github issue on this repository and we are happy to check them on best-effort basis.

About

A transformative log viewer for Kubernetes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 58.5%
  • TypeScript 34.0%
  • HTML 3.2%
  • Sass 3.1%
  • GLSL 0.5%
  • Groovy 0.3%
  • Other 0.4%