{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/16351","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/16351/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/16351/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/16351/events","html_url":"https://github.com/grpc/grpc/pull/16351","id":350498065,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4MzM1NTMz","number":16351,"title":"Implement Watch method in health check service.","user":{"login":"markdroth","id":18664614,"node_id":"MDQ6VXNlcjE4NjY0NjE0","avatar_url":"https://avatars2.githubusercontent.com/u/18664614?v=4","gravatar_id":"","url":"https://api.github.com/users/markdroth","html_url":"https://github.com/markdroth","followers_url":"https://api.github.com/users/markdroth/followers","following_url":"https://api.github.com/users/markdroth/following{/other_user}","gists_url":"https://api.github.com/users/markdroth/gists{/gist_id}","starred_url":"https://api.github.com/users/markdroth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markdroth/subscriptions","organizations_url":"https://api.github.com/users/markdroth/orgs","repos_url":"https://api.github.com/users/markdroth/repos","events_url":"https://api.github.com/users/markdroth/events{/privacy}","received_events_url":"https://api.github.com/users/markdroth/received_events","type":"User","site_admin":false},"labels":[{"id":961831639,"node_id":"MDU6TGFiZWw5NjE4MzE2Mzk=","url":"https://api.github.com/repos/grpc/grpc/labels/release%20notes:%20yes","name":"release notes: yes","color":"5319e7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2018-08-14T16:12:28Z","updated_at":"2018-08-17T18:34:27Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/grpc/grpc/pulls/16351","html_url":"https://github.com/grpc/grpc/pull/16351","diff_url":"https://github.com/grpc/grpc/pull/16351.diff","patch_url":"https://github.com/grpc/grpc/pull/16351.patch"},"body":"This adds a streaming Watch method to the health check service, which is needed as part of the work to enable client-side health checking.  The proto changes are imported from grpc/grpc-proto#33.\r\n\r\nNote that this changes the health check service to use the async API for both the unary and streaming methods (code based on the work done by @AspirinSJL for server load reporting), so this eliminates the restriction that we don't add the default health checking service on async-only servers.\r\n\r\nThe one thing here that I'm not crazy about is the way I had to create the `ServerCompletionQueue` inside of `Server::Start()`, rather than doing it inside of `ServerBuilder` like we do for all of the other ones.  Unfortunately, I didn't see a better way to do that without breaking the existing `EnableDefaultHealthCheckService()` API, but I'd welcome suggestions on how to improve this.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/grpc/grpc/16351)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/grpc/grpc/issues/comments/413953090","html_url":"https://github.com/grpc/grpc/pull/16351#issuecomment-413953090","issue_url":"https://api.github.com/repos/grpc/grpc/issues/16351","id":413953090,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMzk1MzA5MA==","user":{"login":"yang-g","id":10122250,"node_id":"MDQ6VXNlcjEwMTIyMjUw","avatar_url":"https://avatars0.githubusercontent.com/u/10122250?v=4","gravatar_id":"","url":"https://api.github.com/users/yang-g","html_url":"https://github.com/yang-g","followers_url":"https://api.github.com/users/yang-g/followers","following_url":"https://api.github.com/users/yang-g/following{/other_user}","gists_url":"https://api.github.com/users/yang-g/gists{/gist_id}","starred_url":"https://api.github.com/users/yang-g/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yang-g/subscriptions","organizations_url":"https://api.github.com/users/yang-g/orgs","repos_url":"https://api.github.com/users/yang-g/repos","events_url":"https://api.github.com/users/yang-g/events{/privacy}","received_events_url":"https://api.github.com/users/yang-g/received_events","type":"User","site_admin":false},"created_at":"2018-08-17T18:34:27Z","updated_at":"2018-08-17T18:34:27Z","author_association":"CONTRIBUTOR","body":"I will not be able to get to it today ~\n\nOn Fri, Aug 17, 2018 at 11:33 AM Juanli Shen <notifications@github.com>\nwrote:\n\n> *@AspirinSJL* approved this pull request.\n>\n> Looks good to me!\n>\n> Reviewed 1 of 1 files at r2, 2 of 2 files at r3.\n> *Reviewable\n> <https://reviewable.io/reviews/grpc/grpc/16351#-:-LK89DUVBzmYOv1aovqT:b9j9n3q>*\n> status: [image: :shipit:] complete! all files reviewed, all discussions\n> resolved (waiting on @yang-g <https://github.com/yang-g>)\n>\n> —\n> You are receiving this because you were mentioned.\n> Reply to this email directly, view it on GitHub\n> <https://github.com/grpc/grpc/pull/16351#pullrequestreview-147336302>, or mute\n> the thread\n> <https://github.com/notifications/unsubscribe-auth/AJp0Co7fPZbBA5mjB6iGqpZ61quLqkM8ks5uRwxngaJpZM4V8vaU>\n> .\n>\n"}}
{"actor":{"display_login":"yang-g"}}