{"id":15056947,"url":"https://github.com/danteslimbo/dust","last_synced_at":"2025-04-10T05:06:26.740Z","repository":{"id":244884990,"uuid":"816569227","full_name":"danteslimbo/dust","owner":"danteslimbo","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-15T12:58:56.000Z","size":826,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T05:06:21.525Z","etag":null,"topics":["ebpf"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danteslimbo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-18T02:26:32.000Z","updated_at":"2024-07-15T12:59:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"41bbbd7c-96e2-44a2-8eb7-0b683564e4e7","html_url":"https://github.com/danteslimbo/dust","commit_stats":null,"previous_names":["danteslimbo/dust"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danteslimbo%2Fdust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danteslimbo%2Fdust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danteslimbo%2Fdust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danteslimbo%2Fdust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danteslimbo","download_url":"https://codeload.github.com/danteslimbo/dust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161274,"owners_count":21057555,"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"],"created_at":"2024-09-24T21:59:07.651Z","updated_at":"2025-04-10T05:06:26.700Z","avatar_url":"https://github.com/danteslimbo.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dust\n`dust` is a [pwru](https://github.com/cilium/pwru) to trace io request\n## Why dust?\nAs we all know, io requests initiated by processes go through a long process before they finally hit the disk, during which the io request is handled by the kworker. This asynchronous processing makes it very difficult to track io, so we start with the io request and track the io request's lifecycle.\n\n`dust` tracks the io request returned by `blk_mq_alloc_request` and monitors how long it runs in all functions that call `struct request *`, giving a clearer picture of the io request lifecycle.\n## TL;DR\nUsage:\n\n```shell\n./dust -h\nUsage: ./dust [options]\n    Available options:\n  -h, --help              show help\n  -i, --interval uint32   set monitor time in seconds (default 10)\n  -o, --ofile string      output file\n  -p, --pid uint32        filter pid\n  -v, --version           show version\n```\nExample: trace a process for 30 seconds.\n```shell\nsudo ./dust -p {the_process_you_want_to_trace} -i 30\n```\n\n## TODO\n- [ ] kprobe filters.\n- [ ] kprobe.multi supports.\n- [x] output to files.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanteslimbo%2Fdust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanteslimbo%2Fdust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanteslimbo%2Fdust/lists"}