{"id":17640581,"url":"https://github.com/bettyblocks/tracy_web","last_synced_at":"2025-03-30T05:12:05.418Z","repository":{"id":62430515,"uuid":"92171428","full_name":"bettyblocks/tracy_web","owner":"bettyblocks","description":null,"archived":false,"fork":false,"pushed_at":"2017-07-22T00:01:41.000Z","size":302,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-05T08:44:49.164Z","etag":null,"topics":["elixir","tracing"],"latest_commit_sha":null,"homepage":null,"language":"Elixir","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/bettyblocks.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":"2017-05-23T12:40:46.000Z","updated_at":"2017-06-14T07:29:48.000Z","dependencies_parsed_at":"2022-11-01T20:21:39.059Z","dependency_job_id":null,"html_url":"https://github.com/bettyblocks/tracy_web","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bettyblocks%2Ftracy_web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bettyblocks%2Ftracy_web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bettyblocks%2Ftracy_web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bettyblocks%2Ftracy_web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bettyblocks","download_url":"https://codeload.github.com/bettyblocks/tracy_web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246277373,"owners_count":20751549,"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":["elixir","tracing"],"created_at":"2024-10-23T06:04:02.943Z","updated_at":"2025-03-30T05:12:05.395Z","avatar_url":"https://github.com/bettyblocks.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tracy [![Build Status](https://travis-ci.org/bettyblocks/tracy_web.svg?branch=master)](https://travis-ci.org/bettyblocks/tracy_web)\n\n## `tracy_web` - web interface\n\nProvides a web user interface for the Tracy function tracer.\n\nThe web UI is a separate phoenix app which runs as a separate node. It\nserves a web interface (ReactJS powered) which allows you to configure\nhow to trace a request.\n\n### User interaction\n\n* Create new tracer definition or select one from the list of\n  existing definitions\n* Open tracer definition details\n* Copy the trace definition key using the button\n* Make a HTTP request with the trace request header\n\nNow a new trace log opens which streams the results in real time. The\ntracing stops when the traced process exists or the trace limit is\nhit.\n\n\n## `tracy` - tracing library\n\nThe tracing library is a separate OTP app which runs on the node to be\ntraced, similar to Recon.\n\nThe tracing is limited to function call tracing, for a specific\nprocess. The actual tracing is done on the specific node where the\nprocess runs.\n\nTraces are defined by their \"definition\". Each definition defines\nwhich function calls are going to be traced, specified on the module\nlevel. To start a trace, a process must know its trace \"definition\"\nkey, and call `Tracy.check_start_trace/1` using this key. This key can\nbe put in a HTTP request header, for instance. The `Tracy.Plug`\nextension automatically starts tracing a request whenever the\n`x-tracy-definition` request header is set to a valid definition key.\n\nOn the node, the following information is collected for each function\nthat a traced process hits:\n\n* Module / function / arguments\n* Return value\n* Return location\n* Timing\n\nNote that one process can be traced at a time per node. This is a\nlimitation of Erlang's tracing API. In practice, this is not a big deal.\n\n\n## Installation\n\nTo start your Phoenix server:\n\n  * Install dependencies with `mix deps.get`\n  * Start Phoenix endpoint with `mix phx.server`\n\nNow you can visit [`localhost:4100`](http://localhost:4100) from your browser.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbettyblocks%2Ftracy_web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbettyblocks%2Ftracy_web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbettyblocks%2Ftracy_web/lists"}