Location via proxy:   
[Report a bug]   [Manage cookies]                

Brendan Gregg's Homepage

    G'Day. I use this site to share and bookmark various things, mostly my work with computers. While I currently work on large scale cloud computing performance at Intel (previously Netflix), this site reflects my own opinions and work from over the years. I have a personal blog, and I'm also on Mastodon and Twitter. Here is my bio and anti-bio.

    This page lists everything: Documentation, Videos, Software, Misc. For a short selection of most popular content, see my Overview page.


Documentation

Documents I've written, in approximately reverse chronological order:


Videos


Software

    The following are my spare time software projects, and are open source with no warranty – use at your own risk. Some are computer security tools, which may be illegal to own or run in your country if they are misidentified as cracking tools.

    I've also developed software as a professional kernel engineer, which isn't listed below (e.g., the ZFS L2ARC).

Linux - tracing
  • eBPF Tools using Linux eBPF and the bcc front end for advanced observability and tracing tools.
  • bcc tools (github), BPF compiler collection, for which I'm a major contributor, especially for performance tools.
  • bpftrace tools (github) a high-level BPF tracing language, for which I'm a major contributor.
  • perf Examples for perf_events, the standard Linux profiler. Page including one-liners and flame graphs.
  • perf-tools (github) is a collection of ftrace- and perf_events-based performance analysis tools for Linux.
  • ktap Examples for the lua-based Linux dynamic tracing tool, including one liners and tools (no longer maintained).
  • msr-cloud-tools model specific register observability tools intended for cloud instances.
FreeBSD/OS X/Solaris - DTrace
  • DTrace Tools for FreeBSD.
  • DTrace book scripts from the DTrace book, which demonstrates many new uses of dynamic tracing.
  • DTraceToolkit a collection of over 200 scripts, with man pages and example files (no longer maintained).
  • DTrace Tools original versions of iosnoop, opensnoop, bitesize.d, execsnoop, shellsnoop, tcpsnoop, iotop, ...
Unix/Linux - C
  • Dump2PNG visualizes file data as a PNG (uses libpng). An experimental tool intended for core dump analysis. screenshot.
  • nicstat network interface stats for Solaris (uses Kstat). example. There is also a Perl version, and Tim Cook added Linux support.
Unix/Linux/Windows - Perl
  • FlameGraph: a visualization for sampled stack traces, used for performance analysis. See the Flame Graphs page for an explanation.
  • HeatMap: an program for generating interactive SVG heat maps from trace data. See the page about it.
  • Chaosreader: A forensics and network troubleshooting tools that extracts and reassembles application data from sniffed TCP/UDP sessions in tcpdump or snoop logs. Supports HTTP transfers, FTP transfers, SMTP emails, telnet sessions, etc. This example output was created by Chaosreader to link to the extracted HTTP sections, telnet sessions, and FTP files found in a snoop log. This can also create telnet replay programs that play back sessions in realtime: example. Created in 2003. download code (github).
  • Perl modules: Net::SnoopLog for snoop packet logs (RFC1761), Net::TcpDumpLog for tcpdump/libpcap logs, Algorithm::Hamming::Perl.
  • FreqCount is a simple frequency counter. Useful for processing logs (most common IP addr, port, etc..). example.
  • PortPing is a version of ping that connects using ssh (or other ports), not ICMP. Good for checking firewalls. example.
  • MTUfinder tests different sized HTTP requests to a web server, highlighting MTU size problems. example.
  • Specials is a collection of "special" programs for system administrators. Mostly Perl.
Unix/Linux - Bourne/Korn Shell

  • DtkshDemos a collection of X11 dtksh scripts. They include xvmstat - a GUI version of vmstat, and xplot - a generic data plotter. Written for any OS with dtksh.
  • total is a simple awk script to sum a field (example); field prints a field (example). These exist for convenience at the shell.
Windows - Delphi
  • Quick Text Toaster v1.0 An editor I wrote many years ago to grab text from corrupted files. Works with executables, documents, etc.
MSDOS - QBASIC
  • QBASIC CRO v1.2 I still find this old program amusing. It is a digital (on/off) CRO that samples the parallel port at 1KHz. screenshot.
Other
  • Guessing Game is written in awk C C++ csh Fortran java ksh Pascal Perl QBASIC sh and more as a language comparison.
  • The Crypt has some of my older Solaris and Unix software, including the K9Toolkit collection of kstat-based performance tools, Psio for disk I/O by-process, and CacheKit for hardware and software cache analysis.

Misc


Last updated: 17-Mar-2024
Created: 2001
About this site, and email address: here
Copyright 2024 Brendan Gregg, all rights reserved