{"id":37175598,"url":"https://github.com/memprofiler/memprofiler","last_synced_at":"2026-01-14T20:30:06.235Z","repository":{"id":54296681,"uuid":"141474175","full_name":"memprofiler/memprofiler","owner":"memprofiler","description":"Service that helps to track heap allocations in Go applications","archived":false,"fork":false,"pushed_at":"2021-02-26T00:05:35.000Z","size":2769,"stargazers_count":1,"open_issues_count":12,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-19T13:42:49.713Z","etag":null,"topics":["golang","heap","memory-leak","memory-profiler"],"latest_commit_sha":null,"homepage":"","language":"Go","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/memprofiler.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}},"created_at":"2018-07-18T18:25:22.000Z","updated_at":"2021-02-26T00:17:48.000Z","dependencies_parsed_at":"2022-08-13T11:20:18.464Z","dependency_job_id":null,"html_url":"https://github.com/memprofiler/memprofiler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/memprofiler/memprofiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memprofiler%2Fmemprofiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memprofiler%2Fmemprofiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memprofiler%2Fmemprofiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memprofiler%2Fmemprofiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memprofiler","download_url":"https://codeload.github.com/memprofiler/memprofiler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memprofiler%2Fmemprofiler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["golang","heap","memory-leak","memory-profiler"],"created_at":"2026-01-14T20:30:05.288Z","updated_at":"2026-01-14T20:30:06.192Z","avatar_url":"https://github.com/memprofiler.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# memprofiler\n[![Build Status](https://travis-ci.org/memprofiler/memprofiler.svg?branch=master)](https://travis-ci.org/memprofiler/memprofiler)\n[![codecov](https://codecov.io/gh/memprofiler/memprofiler/branch/master/graph/badge.svg)](https://codecov.io/gh/memprofiler/memprofiler)\n\nMemprofiler helps to track memory allocations of your Go applications on \nlarge time intervals. Go runtime implements multiple memory management \noptimizations in order to achieve good performance, low heap allocation \ncost and high degree of memory reuse. Therefore, sometimes it may be \ntricky to distinguish \"normal\" runtime behaviour from real memory leak.\nIf you have doubts whether your Go service is leaking, you're on the right\ntrack. Memprofiler aims to be an open source equivalent of \n[stackimpact.com](https://stackimpact.com/). \n\n| Warning: The project is under active development and not ready for usage yet. |\n| --- |\n\n## Getting started\n\nMemprofiler is a client-server application. Memprofiler client is embedded\ninto your Go service and streams memory usage reports to the Memprofiler server.\nMemprofiler server stores reports and performs some computations on the\ndata stream to turn it in a small set of aggregated metrics.\nUser will be able to interact with Memprofiler server via simple Web UI.\n\n![Components](https://imgbbb.com/images/2019/04/06/memprofiler.jpg)\n\n### Client\n\nTo use Memprofiler in your application, run client in your `main` function:\n\n```go\npackage example\n\nimport (\n\t\"time\"\n\n\t\"github.com/sirupsen/logrus\"\n\n\t\"github.com/memprofiler/memprofiler/client\"\n\t\"github.com/memprofiler/memprofiler/schema\"\n\t\"github.com/memprofiler/memprofiler/utils\"\n)\n\nfunc main() {\n\t// prepare client configuration\n\tcfg := \u0026client.Config{\n\t\t// server address\n\t\tServerEndpoint: \"localhost:46219\",\n\t\t// description of your application instance\n\t\tServiceDescription: \u0026schema.ServiceDescription{\n\t\t\tServiceType:     \"test_application\",\n\t\t\tServiceInstance: \"node_1\",\n\t\t},\n\t\t// granularity\n\t\tPeriodicity: \u0026utils.Duration{Duration: time.Second},\n\t\t// logging setting\n\t\tVerbose: false,\n\t}\n\n\t// you can implement your own logger\n\tlog := client.LoggerFromLogrus(logrus.New())\n\n\t// run profiler and stop it explicitly on exit\n\tprofiler, err := client.NewProfiler(log, cfg)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n    profiler.Start()\n\tdefer profiler.Quit()\n\n\t// ...\n}\n\n```\n\n### Server\n\nTo run Memprofiler server, just install it and prepare server config \n(you can refer to [config example](https://github.com/memprofiler/memprofiler/blob/master/server/config/example.yml)).\n\n```bash\n ✗ GO111MODULE=on go get github.com/memprofiler/memprofiler\n ✗ memprofiler -c config.yml \nDEBU[0000] Starting storage                             \nDEBU[0000] Starting metrics computer                    \nINFO[0000] HTTP Frontend server resource                 URL=/schema.MemprofilerFrontend/GetSessions subsystem=frontend\nINFO[0000] HTTP Frontend server resource                 URL=/schema.MemprofilerFrontend/GetServices subsystem=frontend\nINFO[0000] HTTP Frontend server resource                 URL=/schema.MemprofilerFrontend/GetInstances subsystem=frontend\nINFO[0000] HTTP Frontend server resource                 URL=/schema.MemprofilerFrontend/SubscribeForSession subsystem=frontend\nINFO[0000] Starting service                              service=backend\nINFO[0000] Starting service                              service=frontend\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemprofiler%2Fmemprofiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemprofiler%2Fmemprofiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemprofiler%2Fmemprofiler/lists"}