{"id":13564465,"url":"https://github.com/rubrikinc/wachy","last_synced_at":"2025-04-05T10:10:30.319Z","repository":{"id":39603882,"uuid":"435676577","full_name":"rubrikinc/wachy","owner":"rubrikinc","description":"A UI for eBPF-based performance debugging","archived":false,"fork":false,"pushed_at":"2022-10-31T05:08:45.000Z","size":1846,"stargazers_count":563,"open_issues_count":6,"forks_count":17,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-29T09:12:55.378Z","etag":null,"topics":["ebpf","tracing"],"latest_commit_sha":null,"homepage":"https://rubrikinc.github.io/wachy/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubrikinc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-06T23:11:29.000Z","updated_at":"2025-03-20T09:16:14.000Z","dependencies_parsed_at":"2023-01-19T17:01:16.116Z","dependency_job_id":null,"html_url":"https://github.com/rubrikinc/wachy","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubrikinc%2Fwachy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubrikinc%2Fwachy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubrikinc%2Fwachy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubrikinc%2Fwachy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubrikinc","download_url":"https://codeload.github.com/rubrikinc/wachy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318745,"owners_count":20919484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ebpf","tracing"],"created_at":"2024-08-01T13:01:31.814Z","updated_at":"2025-04-05T10:10:30.287Z","avatar_url":"https://github.com/rubrikinc.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# wachy\n\n\u003cimg src=\"docs/images/logo.png?raw=true\" alt=\"Logo\" width=\"72\" align=\"left\"\u003e\n\n\u003cbr\u003e\n\n\u0026nbsp; A dynamic tracing profiler for Linux\n\n\u003cbr\u003e\n\nWachy provides a UI for interactive eBPF-based userspace performance debugging.\nFor an overview, see the website: https://rubrikinc.github.io/wachy/. For\nbackground see the introductory\n[blog post](https://www.rubrik.com/blog/technology/22/1/introducing-wachy-a-new-approach-to-performance-debugging).\n\nFor more details see the [guide](docs/guide.md).\n\n## Compatibility\n\nWachy requires:\n1. Linux 4.6 or later kernel\n2. Traced binary should be in a compiled language, and have debugging symbols\n\n1 is due to availability of certain eBPF features, and 2 is due to the\ntechniques used by wachy (eBPF uprobes and address to line number mappings from\ndebugging symbols). Wachy also supports C++ symbol demangling - it has mostly\nbeen tested with C++ binaries. If you'd like demangling support for a new\ncompiled language, please open an issue (note: despite being compiled, [Go does\nnot play well with\neBPF](https://medium.com/bumble-tech/bpf-and-go-modern-forms-of-introspection-in-linux-6b9802682223#db17)).\nIf you have ideas on how to do something similar on other platforms or with\nother unsupported languages, I'm interested in hearing it!\n\nWachy also currently only supports x86-64 binaries. If you are interested in\nother architectures, please open an issue.\n\n## Install\n\nDownload the latest version from the [Releases\npage](https://github.com/rubrikinc/wachy/releases).\n\nWachy relies on\n[bpftrace](https://github.com/iovisor/bpftrace/blob/master/INSTALL.md) and the\nfollowing shared libraries to run: libgcc_s, libncursesw. On ubuntu some of\nthese may be installed by default, but to install them all you can run\n```\nsudo apt install bpftrace libgcc1 libncursesw5\n```\n\nIf you see strange characters in the TUI, ensure your `LANG` is set correctly,\ne.g. before starting wachy, run\n```\nexport LANG=en_US.UTF-8\n```\n\n## Compiling\n\nIf you want to build wachy from source, it requires the following development\npackages: libiberty, ncurses, cmake. On ubuntu you can install them with\n```\nsudo apt install libiberty-dev libncurses5-dev libncursesw5-dev cmake\n```\nYou also need [Rust](https://www.rust-lang.org) installed.\n\nThen build with cargo\n```\ncargo build --release\ntarget/release/wachy --help\n```\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ndual licensed as per [LICENSE.md](LICENSE.md), without any additional terms or\nconditions.\n\nContributions to this project must be accompanied by a Contributor License\nAgreement. We use https://cla-assistant.io to automate this process.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubrikinc%2Fwachy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubrikinc%2Fwachy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubrikinc%2Fwachy/lists"}