container-tracer

module
v0.0.0-...-a3c466b Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2024 License: GPL-2.0, GPL-2.0-or-later

README

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.

Directories

Path Synopsis
api
SPDX-License-Identifier: GPL-2.0-or-later
SPDX-License-Identifier: GPL-2.0-or-later
node
SPDX-License-Identifier: GPL-2.0-or-later
SPDX-License-Identifier: GPL-2.0-or-later
svc
SPDX-License-Identifier: GPL-2.0-or-later
SPDX-License-Identifier: GPL-2.0-or-later
cmd
tracer-svc
SPDX-License-Identifier: GPL-2.0-or-later
SPDX-License-Identifier: GPL-2.0-or-later
internal
logger
SPDX-License-Identifier: GPL-2.0-or-later
SPDX-License-Identifier: GPL-2.0-or-later
pods
SPDX-License-Identifier: GPL-2.0-or-later
SPDX-License-Identifier: GPL-2.0-or-later
tracehook
SPDX-License-Identifier: GPL-2.0-or-later
SPDX-License-Identifier: GPL-2.0-or-later
tracerctx
SPDX-License-Identifier: GPL-2.0-or-later
SPDX-License-Identifier: GPL-2.0-or-later
tracesvcctx
SPDX-License-Identifier: GPL-2.0-or-later
SPDX-License-Identifier: GPL-2.0-or-later

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL