{"id":16913394,"url":"https://github.com/aalexand/pprof-upload","last_synced_at":"2025-10-09T17:35:42.998Z","repository":{"id":57497046,"uuid":"165988832","full_name":"aalexand/pprof-upload","owner":"aalexand","description":"Upload a performance profile in pprof format to Stackdriver Profiler UI for visualization","archived":false,"fork":false,"pushed_at":"2020-02-11T21:27:24.000Z","size":227,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-11T16:16:15.712Z","etag":null,"topics":["performance","performance-analysis","pprof"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aalexand.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}},"created_at":"2019-01-16T06:43:28.000Z","updated_at":"2024-12-26T07:24:28.000Z","dependencies_parsed_at":"2022-09-03T23:20:45.124Z","dependency_job_id":null,"html_url":"https://github.com/aalexand/pprof-upload","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aalexand/pprof-upload","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalexand%2Fpprof-upload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalexand%2Fpprof-upload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalexand%2Fpprof-upload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalexand%2Fpprof-upload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aalexand","download_url":"https://codeload.github.com/aalexand/pprof-upload/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aalexand%2Fpprof-upload/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001871,"owners_count":26083197,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["performance","performance-analysis","pprof"],"created_at":"2024-10-13T19:13:10.559Z","updated_at":"2025-10-09T17:35:42.980Z","avatar_url":"https://github.com/aalexand.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pprof-upload\n\nBinary `pprof-upload` uploads a performance profile in pprof format to\n[Stackdriver Profiler UI](https://cloud.google.com/profiler/docs/using-profiler)\nfor visualization.\n\n## Installation\n\n[Download and install](https://golang.org/doc/install) Go, then run command\n\n```\ngo get github.com/aalexand/pprof-upload\n```\n\nAdd your `$GOPATH/bin` to `$PATH` for convenience.\n\n## Usage\n\nYou'll need a Google Cloud Platform project to upload and visualize the\nprofiling data. You can use an existing project you have, or [create a new\none](https://cloud.google.com/resource-manager/docs/creating-managing-projects).\nNote the project ID, you'll need it in the upload command.\n\nMake sure the project has the [profiler API\nenabled](https://cloud.google.com/profiler/docs/profiling-go#enabling-profiler-api).\n\nOnce the prerequisites are completed, run command like:\n\n```\npprof-upload -project_id=your-project-id ~/path/to/profile.pb.gz\n```\n\nThe command will upload the profile and print out a URL that can be visited to\nview the data. You should see something like\n\n![Stackdriver Profiler UI](sample.png?raw=true \"Stackdriver Profiler UI\")\n\nYou can pass more than one profile path to the tool:\n\n```\npprof-upload -project_id=your-project-id ~/path/*.pg.gz\n```\n\nIn that case the profiles will be merged before being uploaded. The profiles\nmust be merge-compatible - have the same profile type (e.g. `heap` vs. `cpu`)\nand set of metrics. You can also disable the merge like:\n\n```\npprof-upload -merge=false -project_id=your-project-id ~/path/*.pg.gz\n```\n\nThe profiles must still be merge-compatible but will be uploaded individually\nsuch that the merge will only be done at the viewing time. This is rarely needed\nand the main benefit is the ability to use the weight filter in the profiler UI.\n\nNote that Stackdriver Profiler stores data for 30 days, so the profile will be\ngone after about a month.\n\nSee also [Stackdriver Profiler\nquickstart](https://cloud.google.com/profiler/docs/quickstart) on how to enable\ncontinuous production profiling for a service running on Google Cloud Platform.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faalexand%2Fpprof-upload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faalexand%2Fpprof-upload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faalexand%2Fpprof-upload/lists"}