{"id":25663494,"url":"https://github.com/bgeneto/windows-disk-trace-vis","last_synced_at":"2026-05-16T15:31:15.737Z","repository":{"id":189829134,"uuid":"681389463","full_name":"bgeneto/windows-disk-trace-vis","owner":"bgeneto","description":"A simple but useful web application designed to streamline the process of analyzing Event Trace Log (ETL) files, specifically focusing on Disk I/O activities","archived":false,"fork":false,"pushed_at":"2026-02-05T00:35:12.000Z","size":3628,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-05T11:40:51.644Z","etag":null,"topics":["benchmarking","performance-analysis","ssd","storage","tracing","windows"],"latest_commit_sha":null,"homepage":"https://windows-disk-trace-vis.streamlit.app/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bgeneto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-08-21T23:10:01.000Z","updated_at":"2026-02-05T00:35:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"58b31637-ebbe-43f7-8f32-3301130eb560","html_url":"https://github.com/bgeneto/windows-disk-trace-vis","commit_stats":{"total_commits":24,"total_committers":1,"mean_commits":24.0,"dds":0.0,"last_synced_commit":"96e18ef71b8badb76ddd947a9f8b9fb94fcaad63"},"previous_names":["bgeneto/windows-disk-trace-vis"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bgeneto/windows-disk-trace-vis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2Fwindows-disk-trace-vis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2Fwindows-disk-trace-vis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2Fwindows-disk-trace-vis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2Fwindows-disk-trace-vis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bgeneto","download_url":"https://codeload.github.com/bgeneto/windows-disk-trace-vis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2Fwindows-disk-trace-vis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33108090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["benchmarking","performance-analysis","ssd","storage","tracing","windows"],"created_at":"2025-02-24T05:16:30.945Z","updated_at":"2026-05-16T15:31:15.721Z","avatar_url":"https://github.com/bgeneto.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Windows Disk Trace Visualizer\n\n[Windows Disk Trace Visualizer](https://windows-disk-trace-vis.streamlit.app/) is a simple but useful web application designed to streamline the process of analyzing Event Trace Log (ETL) files,\nspecifically focusing on Disk I/O activities. This tool offers an intuitive and user-friendly interface to effortlessly navigate\nthrough complex ETL data, providing insightful summaries and statistics for a thorough understanding of your disk performance requirements.\nKey Features:\n\n- **Data Analysis:** Uncover the most frequently requested data size, the percentage of random reading or writing, the average access time, and more.\n- **Performance:** Identify the average throughput and IOPS for each disk, and compare the performance of sequential and random requests.\n- **Filter Capability:** Filter data by process name or request size.\n\nAll this info is valuable for understanding where the performance of your disk/ssd matters most for your desired/traced workload/application.\n\n# Usage \n\nThe webapp is hosted [here](https://windows-disk-trace-vis.streamlit.app). You will need my custom view\n[profile](https://raw.githubusercontent.com/bgeneto/windows-disk-trace-vis/main/DiskIO.wpaProfile) to convert the .etl trace log file to a .csv file. \n\nFirst, you need to record a trace of your 'Disk I/O activity' with WPRUI.exe (or via command line). You can trace your Windows boot process or a specific application/workload.\nThen you need to convert the saved `.etl` file to a `.csv` file using the `wpaexporter.exe` tool that comes with [Windows ADK](https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install).\nThe `wpaexporter.exe` tool is typically located in the `C:\\\\Program Files (x86)\\\\Windows Kits\\\\10\\\\Windows Performance Toolkit` folder, an example usage follows:\n```cmd\nwpaexporter.exe -i boottrace.etl -profile DiskIO.wpaProfile -delimiter ;\n```\n\nYou can also trace your boot process as follows:\n\n- Open an elevated command prompt and run:\n\n   ```cmd\n   wpr -addboot GeneralProfile.Light -filemode -recordtempto D:\\\\Temp\n   ```\n\nAfter this, the trace will start automatically at the early stage of the next (re)boot.\n\n- The command syntax to save the boot trace (.etl file) is the following:\n\n   ```cmd\n   wpr -stopboot D:\\\\Temp\\\\boottrace.etl\n   ```\n\nNow you can upload the (compressed) `.csv` file to this page. The page script \u0026mdash; written in Python{python_svg}using Pandas{pandas_svg} \u0026mdash; will analyze the single trace record using the provided\n[profile](https://raw.githubusercontent.com/bgeneto/windows-disk-trace-vis/main/DiskIO.wpaProfile) and show you the results in tabular and graphical formats.\n\u003e **Note:** tested with WPR v10.0.25931.1000 on Windows 11 Pro version 22H2.\n\n# Example Output \n\nHere is an excerpt from the application's output, which demonstrates a typical result from our Windows 11 boot trace [example file](https://raw.githubusercontent.com/bgeneto/windows-disk-trace-vis/main/Disk_Usage_Counts_by_IO_Type_Priority.csv.bz2).\n\n|                         | Value         |\n| ----------------------- | :------------ |\n| Monitoring time         | 52.25 seconds |\n| Average access time     | 83.93 µs      |\n| Read requests           | 150704        |\n| Write requests          | 15948         |\n| Total requests          | 166652        |\n| Percent READ            | 90.43%        |\n| Percent WRITE           | 9.57%         |\n| Percent RANDOM          | 90.07%        |\n| Percent SEQUENTIAL      | 9.93%         |\n| Read data size          | 3.65 GB       |\n| Write data size         | 0.29 GB       |\n| Total data size         | 3.95 GB       |\n| Min. read request size  | 0.5 KB        |\n| Avg. read request size  | 25.4 KB       |\n| Max. read request size  | 43132.5 KB    |\n| Min. write request size | 0.5 KB        |\n| Avg. write request size | 19.3 KB       |\n| Max. write request size | 1136 KB       |\n\n\n\n \n![image](https://github.com/bgeneto/windows-disk-trace-vis/assets/473074/38aca37a-4fc5-42ce-8ab6-8e97dda44992)\n\n☝ Note the predominant number of 4KB random read requests (56%), followed by 16KB requests (18% read|30% write).\n\n![image](https://github.com/bgeneto/windows-disk-trace-vis/assets/473074/fcc5ef51-1b98-48a2-9722-3360d36343c0)\n\n☝ Time spent in every request size. \n\n![image](https://github.com/bgeneto/windows-disk-trace-vis/assets/473074/552796b4-f46d-490a-9721-22ab88a51687)\n\n☝ Note how much faster is an SSD vs HDD in terms of latency/access time.\n\n![image](https://github.com/bgeneto/windows-disk-trace-vis/assets/473074/a3fd3754-5add-48d7-876f-e323fdded137)\n\n☝ Random vs Sequential requests by IO Type.\n\n# About WPR\n\nWindows Performance Recorder ([WPR](https://learn.microsoft.com/en-us/windows-hardware/test/wpt/windows-performance-recorder))\nis a performance recording tool that is based on Event Tracing for Windows ([ETW](https://learn.microsoft.com/en-us/windows/win32/etw/about-event-tracing)).\nIt records system and application events that you can analyze by parsing the generated Event Trace Log ([ETL](https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/trace-log)) file.\nThe ETL file format is a proprietary binary file format used by Microsoft Windows for collecting\nand storing event traces generated by various components of the operating system. Since it is a poorly documented and\nproprietary format, we need to use the [WPA Exporter](https://learn.microsoft.com/en-us/windows-hardware/test/wpt/exporter)\ntool in order to convert the .etl file to a .csv file and then perform the desired trace analysis via csv file. Both WPR and WPA Exporter are part of the\nWindows Assessment and Deployment Kit [Windows ADK](https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgeneto%2Fwindows-disk-trace-vis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbgeneto%2Fwindows-disk-trace-vis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgeneto%2Fwindows-disk-trace-vis/lists"}