/korrel8r

Correlation of observability signals.

Primary LanguageGoApache License 2.0Apache-2.0

Korrel8r: Signal correlation for Kubernetes

Korrel8r is a correlation engine for observability signals and observable resources.
It can correlate multiple domains, diverse signals, inconsistent labeling, and varied data stores.

The goals of this project include:

  • Encode domain knowledge from SREs and other experts as re-usable rules.

  • Automate navigation from symptoms to data that helps diagnose causes.

  • Connect data from diverse types of store, with different schema.

  • Reduce multiple-step manual procedures to fewer clicks or queries.

  • Help tools that gather and analyze diagnostic data to focus on relevant information.

Caution
Korrel8r is still in early development. There are no compatibility guarantees between versions.
Note
Read the Korrel8r Documentation for more about what Korrel8r is and how to use it.

There is a short demo video

Cluster Set-up

There are scripts and examples to set up a cluster with logging, metrics and other observable signals:

Log into your cluster as kubeadmin or other admin user.

Installing and running locally

You can install and run korrel8r on your local host, it can observe your cluster from the outside. You need to be logged-in as kubeadmin to your cluster:

go install github.com/korrel8r/korrel8r/cmd/korrel8r@latest
korrel8r web -http :8080 &

With korrel8r running, you can browse the following URLs:

You can also run korrel8r as a command line tool, see korrel8r --help for commands and options.

Deploying on a cluster

You can deploy the latest korrel8r image to your cluster in namespace korrel8r You need to be logged-in as kubeadmin to your cluster:

kubectl apply -k https://github.com/korrel8r/korrel8r/config/base

On an OpenShift cluster, you can create a route to korrel8r with make route to connect to korrel8r. On other types of cluster you can create a port mapping or ingress.

make route
URL=$(make route-url)

Browse the following URLs:

  • $URL # Interactive browser interface.

  • $URL/api # REST API documentation

Developers

Documentation:

If you are interested in helping to develop Korrel8r: - clone this repository - make help will list make targets with brief explanation. - make run will run korrel8r directly from source using the checked-in configuration

Building Images

By default, the Makefile uses quay.io/korrel8r/korrel8r as its image repository. Set IMG to use a different repository:

  • make image IMG=quay.io/myaccount/mykorrel8r build and push an image to your image repository.

  • make deploy IMG=quay.io/myaccount/mykorrel8r deploy your image to your cluster.

Important
you need a public image repository on a public service like quay.io or docker.io. Some services (including quay.io) make new repositories private by default. You may need to log in and change settings so that your new repository is public.

Contributing to documentation

  1. Fork and clone the repository

  2. Install Go

  3. Install make

  4. Run the following command to install required tools:

    make tools
  5. Make changes to the docs, then run the following command to generate the site:

    make _site