Skip to content

The project brings the power of the Linux kernel tracing to Kubernetes. It leverages existing kernel tracing frameworks such as ftrace, perf, ebpf to trace workloads running on a Kubernetes cluster. Designed as a native Kubernetes application, its main goal is to be simple and efficient in doing one thing - collecting system traces per container.

License

Notifications You must be signed in to change notification settings

tzstoyanov/trace-kube

Repository files navigation

container-tracer

Overview

The container-tracer project brings the power of the Linux kernel tracing to Kubernetes. It leverages existing kernel tracing frameworks such as ftrace, perf, ebpf to trace workloads running on a Kubernetes cluster. Designed as a native Kubernetes application, its main goal is to be simple and efficient in doing one thing - collecting low level system traces per container.

Try it out

Prerequisites

  • Linux kernel with enabled ftrace. Almost all kernels, shipped with major Linux distributions meet that requirement.
  • Open Telemetry and Jaeger installed on the system / cluster. Although this is not a mandatory requirement, it is a good to have. Container-tracer does not store the collected traces. All it can do is to dump them on the console, or send them to an external database using Open Telemetry.
  • Root permissions on the system / cluster.

Build

Container-tracer uses Makefile to build, so just type make in the top directory of the project. By default, it builds two applications:
cmd/tracer-node/tracer-node
cmd/tracer-svc/tracer-svc
There are different make targets for each of them, so they can be compiled independently:
make tracer compiles cmd/tracer-node/tracer-node
make service compiles cmd/tracer-svc/tracer-svc

Install

Look at installation for detailed instructions.

Usage

After installation of the container-tracer, you can interact with it using a REST API.

Documentation

Look at the container-tracer documentation for a detailed explanation of the container-tracer architecture and a description of the REST API.
Index of available documentation:

Contributing

The container-tracer project team welcomes contributions from the community. For more detailed information, refer to CONTRIBUTING.md.

License

Container-tracer is available under the GPLv2.0 or later license.

About

The project brings the power of the Linux kernel tracing to Kubernetes. It leverages existing kernel tracing frameworks such as ftrace, perf, ebpf to trace workloads running on a Kubernetes cluster. Designed as a native Kubernetes application, its main goal is to be simple and efficient in doing one thing - collecting system traces per container.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published