GithubHelp home page GithubHelp logo

woojunghuh / netto Goto Github PK

View Code? Open in Web Editor NEW

This project forked from miolad/netto

0.0 0.0 0.0 876 KB

eBPF-based network diagnosis tool for Linux

License: MIT License

C 97.29% Rust 2.65% HTML 0.03% Dockerfile 0.02%

netto's Introduction

Netto

Example output from Netto

Netto is an eBPF-based network monitoring tool for Linux that measures the CPU cost of the Linux network stack.

Features

  • Measurement of the on-CPU time of the main networking entry points in kernel
  • Breakdown of the NET_RX_SOFTIRQ entry point into the basic network functions by stack trace-based profiling of the kernel
  • Low overhead
  • Real time operation
  • Minimum Linux version supported: 5.11 (BPF_MAP_TYPE_TASK_STORAGE)

Compilation

To build Netto you'll need:

  • Latest Rust toolchain (stable or nightly)
  • wasm_pack (for the web frontend)

Compile and run with:

cargo xtask run [--release]

Usage

$ ./netto -h
eBPF-based network diagnosis tool for Linux

Usage: netto [OPTIONS]

Options:
-f, --frequency <FREQUENCY>
        Perf-event's sampling frequency in Hz for the NET_RX_SOFTIRQ cost breakdown [default: 1000]
-a, --address <ADDRESS>
        Bind address for the web frontend [default: 0.0.0.0]
-p, --port <PORT>
        Bind port for the web frontend [default: 8080]
    --user-frequency <USER_FREQUENCY>
        User-space controller update period in ms [default: 500]
-h, --help
        Print help
-V, --version
        Print version

Netto exposes the real time results as a Wasm-powered web page accessible on http://localhost:8080

Repository structure

Folder Contents
images Images used on this README
netto Main Rust binary crate
netto/src/bpf BPF-C programs
metrics-common Bridge Rust library crate for main and web-frontend
web-frontend Rust WebAssembly frontend
www Static files for the web frontend
xtask Utility binary crate for managing coordination between the other crates

netto's People

Contributors

miolad avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.