{"action":"created","issue":{"url":"https://api.github.com/repos/jupyterhub/jupyterhub/issues/2542","repository_url":"https://api.github.com/repos/jupyterhub/jupyterhub","labels_url":"https://api.github.com/repos/jupyterhub/jupyterhub/issues/2542/labels{/name}","comments_url":"https://api.github.com/repos/jupyterhub/jupyterhub/issues/2542/comments","events_url":"https://api.github.com/repos/jupyterhub/jupyterhub/issues/2542/events","html_url":"https://github.com/jupyterhub/jupyterhub/pull/2542","id":439826752,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjc1NTUwNjg5","number":2542,"title":"[WIP] Instrument JupyterHub to emit events","user":{"login":"yuvipanda","id":30430,"node_id":"MDQ6VXNlcjMwNDMw","avatar_url":"https://avatars2.githubusercontent.com/u/30430?v=4","gravatar_id":"","url":"https://api.github.com/users/yuvipanda","html_url":"https://github.com/yuvipanda","followers_url":"https://api.github.com/users/yuvipanda/followers","following_url":"https://api.github.com/users/yuvipanda/following{/other_user}","gists_url":"https://api.github.com/users/yuvipanda/gists{/gist_id}","starred_url":"https://api.github.com/users/yuvipanda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yuvipanda/subscriptions","organizations_url":"https://api.github.com/users/yuvipanda/orgs","repos_url":"https://api.github.com/users/yuvipanda/repos","events_url":"https://api.github.com/users/yuvipanda/events{/privacy}","received_events_url":"https://api.github.com/users/yuvipanda/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":10,"created_at":"2019-05-02T23:13:58Z","updated_at":"2019-05-09T19:15:17Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/jupyterhub/jupyterhub/pulls/2542","html_url":"https://github.com/jupyterhub/jupyterhub/pull/2542","diff_url":"https://github.com/jupyterhub/jupyterhub/pull/2542.diff","patch_url":"https://github.com/jupyterhub/jupyterhub/pull/2542.patch"},"body":"This is a WIP PR to add some infrastructure to JupyterHub for\r\neventlogging (aka telemetry), and to add some basic eventlogging.\r\n\r\n- Introduce the EventLog class from BinderHub for emitting\r\n  structured event data\r\n- Instrument server starts and stops to emit events\r\n- Defaults to not saving any events anywhere\r\n- Admins must *opt-in* to store specific schemas, rather than \r\n  by default store all schemas. This should be at the config\r\n  level, so we don't need a bunch of 'if' statements in\r\n  the code. All events are emitted all the time, but immediately\r\n  discarded if they are not whitelisted\r\n\r\nSince this uses python's logger machanism to send data to various\r\ndata 'sinks', it can send data to any destination - files,\r\nelasticsearch, nowhere, stderr, rsyslog, fluent-bit, etc.\r\nThis keeps all code in JupyterHub completely agnostic of where\r\nthe data should go to.\r\n\r\nTODO:\r\n\r\n- [ ] Expose to the end user what data is actually being collected\r\n      in an easy to understand and transparent way.\r\n- [ ] Think about how we can easily scrub / anonymize the data before\r\n      it leaves. For example, we can build in special handling of\r\n      usernames to always salt it."},"comment":{"url":"https://api.github.com/repos/jupyterhub/jupyterhub/issues/comments/491030927","html_url":"https://github.com/jupyterhub/jupyterhub/pull/2542#issuecomment-491030927","issue_url":"https://api.github.com/repos/jupyterhub/jupyterhub/issues/2542","id":491030927,"node_id":"MDEyOklzc3VlQ29tbWVudDQ5MTAzMDkyNw==","user":{"login":"Zsailer","id":2791223,"node_id":"MDQ6VXNlcjI3OTEyMjM=","avatar_url":"https://avatars0.githubusercontent.com/u/2791223?v=4","gravatar_id":"","url":"https://api.github.com/users/Zsailer","html_url":"https://github.com/Zsailer","followers_url":"https://api.github.com/users/Zsailer/followers","following_url":"https://api.github.com/users/Zsailer/following{/other_user}","gists_url":"https://api.github.com/users/Zsailer/gists{/gist_id}","starred_url":"https://api.github.com/users/Zsailer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zsailer/subscriptions","organizations_url":"https://api.github.com/users/Zsailer/orgs","repos_url":"https://api.github.com/users/Zsailer/repos","events_url":"https://api.github.com/users/Zsailer/events{/privacy}","received_events_url":"https://api.github.com/users/Zsailer/received_events","type":"User","site_admin":false},"created_at":"2019-05-09T19:15:17Z","updated_at":"2019-05-09T19:15:17Z","author_association":"MEMBER","body":"@yuvipanda great stuff! \r\n\r\nJust for fun, I think I'm going to work on a prototype of the \"telemetry service\" we've talked about. I'll try to get it working against this branch. :)"}}
{"actor":{"display_login":"Zsailer"}}