{"action":"created","issue":{"url":"https://api.github.com/repos/iopipe/iopipe-java/issues/39","repository_url":"https://api.github.com/repos/iopipe/iopipe-java","labels_url":"https://api.github.com/repos/iopipe/iopipe-java/issues/39/labels{/name}","comments_url":"https://api.github.com/repos/iopipe/iopipe-java/issues/39/comments","events_url":"https://api.github.com/repos/iopipe/iopipe-java/issues/39/events","html_url":"https://github.com/iopipe/iopipe-java/pull/39","id":303499039,"number":39,"title":"Profiler Feature","user":{"login":"XerTheSquirrel","id":11927855,"avatar_url":"https://avatars2.githubusercontent.com/u/11927855?v=4","gravatar_id":"","url":"https://api.github.com/users/XerTheSquirrel","html_url":"https://github.com/XerTheSquirrel","followers_url":"https://api.github.com/users/XerTheSquirrel/followers","following_url":"https://api.github.com/users/XerTheSquirrel/following{/other_user}","gists_url":"https://api.github.com/users/XerTheSquirrel/gists{/gist_id}","starred_url":"https://api.github.com/users/XerTheSquirrel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/XerTheSquirrel/subscriptions","organizations_url":"https://api.github.com/users/XerTheSquirrel/orgs","repos_url":"https://api.github.com/users/XerTheSquirrel/repos","events_url":"https://api.github.com/users/XerTheSquirrel/events{/privacy}","received_events_url":"https://api.github.com/users/XerTheSquirrel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-03-08T14:30:29Z","updated_at":"2018-03-10T19:48:51Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/iopipe/iopipe-java/pulls/39","html_url":"https://github.com/iopipe/iopipe-java/pull/39","diff_url":"https://github.com/iopipe/iopipe-java/pull/39.diff","patch_url":"https://github.com/iopipe/iopipe-java/pull/39.patch"},"body":"Hello, this adds support for profiling.\r\n\r\nCurrently it only performs sampling profiling of running methods. It requires no modifications to be performed or any code to be processed, it is quite automatic in that only profiling needs to be enabled.\r\n\r\nOne important minor change is that internally the method being invoked is performed in another thread so that way the profiler only profiles threads and threads that thread creates in the same thread group. This should not cause any issues in virtually all cases, if there are any issues where values go missing then memory barriers could be placed around input object but this would have a speed impact.\r\n\r\nThere have some changes to the API which should only affect power users that do not use the default connection or the default connection factories. The connection code needed to be refactored to be clean and able to support profiling without having duplicate code or a gigantic mess of existing code. So anyone who has directly used classes in `com.iopipe.http` will need to adjust their code accordingly.\r\n\r\nThe documentation for the profiler is currently simple, it can be expanded and made more informative.\r\n\r\nThis is linked to issue #36 .\r\n"},"comment":{"url":"https://api.github.com/repos/iopipe/iopipe-java/issues/comments/372060172","html_url":"https://github.com/iopipe/iopipe-java/pull/39#issuecomment-372060172","issue_url":"https://api.github.com/repos/iopipe/iopipe-java/issues/39","id":372060172,"user":{"login":"XerTheSquirrel","id":11927855,"avatar_url":"https://avatars2.githubusercontent.com/u/11927855?v=4","gravatar_id":"","url":"https://api.github.com/users/XerTheSquirrel","html_url":"https://github.com/XerTheSquirrel","followers_url":"https://api.github.com/users/XerTheSquirrel/followers","following_url":"https://api.github.com/users/XerTheSquirrel/following{/other_user}","gists_url":"https://api.github.com/users/XerTheSquirrel/gists{/gist_id}","starred_url":"https://api.github.com/users/XerTheSquirrel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/XerTheSquirrel/subscriptions","organizations_url":"https://api.github.com/users/XerTheSquirrel/orgs","repos_url":"https://api.github.com/users/XerTheSquirrel/repos","events_url":"https://api.github.com/users/XerTheSquirrel/events{/privacy}","received_events_url":"https://api.github.com/users/XerTheSquirrel/received_events","type":"User","site_admin":false},"created_at":"2018-03-10T19:48:51Z","updated_at":"2018-03-10T19:48:51Z","author_association":"COLLABORATOR","body":"Okay, I changed how the default URL code is laid out and also now have fallbacks in case they are not specified. It should be much cleaner now."}}
{"actor":{"display_login":"XerTheSquirrel"}}