{"action":"created","comment":{"url":"https://api.github.com/repos/linkedin/cruise-control/pulls/comments/215461823","pull_request_review_id":152732394,"id":215461823,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNTQ2MTgyMw==","diff_hunk":"@@ -88,9 +88,12 @@ capacity.config.file=config/capacity.json\n # The list of goals to optimize the Kafka cluster for with pre-computed proposals\n default.goals=com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.PotentialNwOutGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskUsageDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundUsageDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundUsageDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuUsageDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.TopicReplicaDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.LeaderBytesInDistributionGoal\n \n-# The list of goals that is supported.\n+# The list of goals that is supported\n goals=com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuCapacityGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.PotentialNwOutGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskUsageDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundUsageDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundUsageDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuUsageDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.TopicReplicaDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.LeaderBytesInDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.kafkaassigner.KafkaAssignerDiskUsageDistributionGoal,com.linkedin.kafka.cruisecontrol.analyzer.kafkaassigner.KafkaAssignerEvenRackAwareGoal,com.linkedin.kafka.cruisecontrol.analyzer.goals.PreferredLeaderElectionGoal\n \n+# The list of hard goals that is supported","path":"config/cruisecontrol.properties","position":8,"original_position":8,"commit_id":"c1e21eb9f98ad885e49d0f152c095bb057dcb58d","original_commit_id":"c1e21eb9f98ad885e49d0f152c095bb057dcb58d","user":{"login":"efeg","id":1877110,"node_id":"MDQ6VXNlcjE4NzcxMTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1877110?v=4","gravatar_id":"","url":"https://api.github.com/users/efeg","html_url":"https://github.com/efeg","followers_url":"https://api.github.com/users/efeg/followers","following_url":"https://api.github.com/users/efeg/following{/other_user}","gists_url":"https://api.github.com/users/efeg/gists{/gist_id}","starred_url":"https://api.github.com/users/efeg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/efeg/subscriptions","organizations_url":"https://api.github.com/users/efeg/orgs","repos_url":"https://api.github.com/users/efeg/repos","events_url":"https://api.github.com/users/efeg/events{/privacy}","received_events_url":"https://api.github.com/users/efeg/received_events","type":"User","site_admin":false},"body":"`The list of hard goals that is supported` -> `The list of supported hard goals`","created_at":"2018-09-06T00:07:51Z","updated_at":"2018-09-06T00:51:28Z","html_url":"https://github.com/linkedin/cruise-control/pull/305#discussion_r215461823","pull_request_url":"https://api.github.com/repos/linkedin/cruise-control/pulls/305","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/linkedin/cruise-control/pulls/comments/215461823"},"html":{"href":"https://github.com/linkedin/cruise-control/pull/305#discussion_r215461823"},"pull_request":{"href":"https://api.github.com/repos/linkedin/cruise-control/pulls/305"}}},"pull_request":{"url":"https://api.github.com/repos/linkedin/cruise-control/pulls/305","id":210540539,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEwNTQwNTM5","html_url":"https://github.com/linkedin/cruise-control/pull/305","diff_url":"https://github.com/linkedin/cruise-control/pull/305.diff","patch_url":"https://github.com/linkedin/cruise-control/pull/305.patch","issue_url":"https://api.github.com/repos/linkedin/cruise-control/issues/305","number":305,"state":"open","locked":false,"title":"Add skip_hard_goal_check parameter to add_broker/remove_broker/rebalance endpoint","user":{"login":"kidkun","id":24600518,"node_id":"MDQ6VXNlcjI0NjAwNTE4","avatar_url":"https://avatars1.githubusercontent.com/u/24600518?v=4","gravatar_id":"","url":"https://api.github.com/users/kidkun","html_url":"https://github.com/kidkun","followers_url":"https://api.github.com/users/kidkun/followers","following_url":"https://api.github.com/users/kidkun/following{/other_user}","gists_url":"https://api.github.com/users/kidkun/gists{/gist_id}","starred_url":"https://api.github.com/users/kidkun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kidkun/subscriptions","organizations_url":"https://api.github.com/users/kidkun/orgs","repos_url":"https://api.github.com/users/kidkun/repos","events_url":"https://api.github.com/users/kidkun/events{/privacy}","received_events_url":"https://api.github.com/users/kidkun/received_events","type":"User","site_admin":false},"body":"Add a new config `hard.goals` which specifies all the hard goals currently supported. At the same time, add a new parameter `skip_hard_goal_check` to `add_broker/remove_broker/rebalance` endpoints. If this parameter is true and `goals` parameter misses any hard goals,  the missing goals will be added to consideration when generating executing proposal.\r\n\r\nsome notes about this patch:\r\n1. `demote_broker` endpoint does not have this parameter and the PLE proposal generated via this endpoint will not take hard goals into consideration.\r\n2.`proposal` endpoint does not have this parameter and does not enforce the hard goal  when generating the proposal.\r\n3. anomaly detector's fix will automatically consider all the hard goals.","created_at":"2018-08-23T18:44:16Z","updated_at":"2018-09-06T00:51:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e1048ae83f267f933829b68277d35e1113ae1108","assignee":null,"assignees":[],"requested_reviewers":[{"login":"abhishekmendhekar","id":3779349,"node_id":"MDQ6VXNlcjM3NzkzNDk=","avatar_url":"https://avatars3.githubusercontent.com/u/3779349?v=4","gravatar_id":"","url":"https://api.github.com/users/abhishekmendhekar","html_url":"https://github.com/abhishekmendhekar","followers_url":"https://api.github.com/users/abhishekmendhekar/followers","following_url":"https://api.github.com/users/abhishekmendhekar/following{/other_user}","gists_url":"https://api.github.com/users/abhishekmendhekar/gists{/gist_id}","starred_url":"https://api.github.com/users/abhishekmendhekar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhishekmendhekar/subscriptions","organizations_url":"https://api.github.com/users/abhishekmendhekar/orgs","repos_url":"https://api.github.com/users/abhishekmendhekar/repos","events_url":"https://api.github.com/users/abhishekmendhekar/events{/privacy}","received_events_url":"https://api.github.com/users/abhishekmendhekar/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/linkedin/cruise-control/pulls/305/commits","review_comments_url":"https://api.github.com/repos/linkedin/cruise-control/pulls/305/comments","review_comment_url":"https://api.github.com/repos/linkedin/cruise-control/pulls/comments{/number}","comments_url":"https://api.github.com/repos/linkedin/cruise-control/issues/305/comments","statuses_url":"https://api.github.com/repos/linkedin/cruise-control/statuses/c1e21eb9f98ad885e49d0f152c095bb057dcb58d","head":{"label":"kidkun:feat/hardgoals","ref":"feat/hardgoals","sha":"c1e21eb9f98ad885e49d0f152c095bb057dcb58d","user":{"login":"kidkun","id":24600518,"node_id":"MDQ6VXNlcjI0NjAwNTE4","avatar_url":"https://avatars1.githubusercontent.com/u/24600518?v=4","gravatar_id":"","url":"https://api.github.com/users/kidkun","html_url":"https://github.com/kidkun","followers_url":"https://api.github.com/users/kidkun/followers","following_url":"https://api.github.com/users/kidkun/following{/other_user}","gists_url":"https://api.github.com/users/kidkun/gists{/gist_id}","starred_url":"https://api.github.com/users/kidkun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kidkun/subscriptions","organizations_url":"https://api.github.com/users/kidkun/orgs","repos_url":"https://api.github.com/users/kidkun/repos","events_url":"https://api.github.com/users/kidkun/events{/privacy}","received_events_url":"https://api.github.com/users/kidkun/received_events","type":"User","site_admin":false},"repo":{"id":133583023,"node_id":"MDEwOlJlcG9zaXRvcnkxMzM1ODMwMjM=","name":"cruise-control","full_name":"kidkun/cruise-control","owner":{"login":"kidkun","id":24600518,"node_id":"MDQ6VXNlcjI0NjAwNTE4","avatar_url":"https://avatars1.githubusercontent.com/u/24600518?v=4","gravatar_id":"","url":"https://api.github.com/users/kidkun","html_url":"https://github.com/kidkun","followers_url":"https://api.github.com/users/kidkun/followers","following_url":"https://api.github.com/users/kidkun/following{/other_user}","gists_url":"https://api.github.com/users/kidkun/gists{/gist_id}","starred_url":"https://api.github.com/users/kidkun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kidkun/subscriptions","organizations_url":"https://api.github.com/users/kidkun/orgs","repos_url":"https://api.github.com/users/kidkun/repos","events_url":"https://api.github.com/users/kidkun/events{/privacy}","received_events_url":"https://api.github.com/users/kidkun/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kidkun/cruise-control","description":"Cruise-control is the first of its kind to fully automate the dynamic workload rebalance and self-healing of a kafka cluster. It provides great value to Kafka users by simplifying the operation of Kafka clusters.","fork":true,"url":"https://api.github.com/repos/kidkun/cruise-control","forks_url":"https://api.github.com/repos/kidkun/cruise-control/forks","keys_url":"https://api.github.com/repos/kidkun/cruise-control/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kidkun/cruise-control/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kidkun/cruise-control/teams","hooks_url":"https://api.github.com/repos/kidkun/cruise-control/hooks","issue_events_url":"https://api.github.com/repos/kidkun/cruise-control/issues/events{/number}","events_url":"https://api.github.com/repos/kidkun/cruise-control/events","assignees_url":"https://api.github.com/repos/kidkun/cruise-control/assignees{/user}","branches_url":"https://api.github.com/repos/kidkun/cruise-control/branches{/branch}","tags_url":"https://api.github.com/repos/kidkun/cruise-control/tags","blobs_url":"https://api.github.com/repos/kidkun/cruise-control/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kidkun/cruise-control/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kidkun/cruise-control/git/refs{/sha}","trees_url":"https://api.github.com/repos/kidkun/cruise-control/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kidkun/cruise-control/statuses/{sha}","languages_url":"https://api.github.com/repos/kidkun/cruise-control/languages","stargazers_url":"https://api.github.com/repos/kidkun/cruise-control/stargazers","contributors_url":"https://api.github.com/repos/kidkun/cruise-control/contributors","subscribers_url":"https://api.github.com/repos/kidkun/cruise-control/subscribers","subscription_url":"https://api.github.com/repos/kidkun/cruise-control/subscription","commits_url":"https://api.github.com/repos/kidkun/cruise-control/commits{/sha}","git_commits_url":"https://api.github.com/repos/kidkun/cruise-control/git/commits{/sha}","comments_url":"https://api.github.com/repos/kidkun/cruise-control/comments{/number}","issue_comment_url":"https://api.github.com/repos/kidkun/cruise-control/issues/comments{/number}","contents_url":"https://api.github.com/repos/kidkun/cruise-control/contents/{+path}","compare_url":"https://api.github.com/repos/kidkun/cruise-control/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kidkun/cruise-control/merges","archive_url":"https://api.github.com/repos/kidkun/cruise-control/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kidkun/cruise-control/downloads","issues_url":"https://api.github.com/repos/kidkun/cruise-control/issues{/number}","pulls_url":"https://api.github.com/repos/kidkun/cruise-control/pulls{/number}","milestones_url":"https://api.github.com/repos/kidkun/cruise-control/milestones{/number}","notifications_url":"https://api.github.com/repos/kidkun/cruise-control/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kidkun/cruise-control/labels{/name}","releases_url":"https://api.github.com/repos/kidkun/cruise-control/releases{/id}","deployments_url":"https://api.github.com/repos/kidkun/cruise-control/deployments","created_at":"2018-05-15T23:13:24Z","updated_at":"2018-08-28T00:24:15Z","pushed_at":"2018-09-03T01:31:59Z","git_url":"git://github.com/kidkun/cruise-control.git","ssh_url":"git@github.com:kidkun/cruise-control.git","clone_url":"https://github.com/kidkun/cruise-control.git","svn_url":"https://github.com/kidkun/cruise-control","homepage":"","size":1833,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"bsd-2-clause","name":"BSD 2-Clause \"Simplified\" License","spdx_id":"BSD-2-Clause","url":"https://api.github.com/licenses/bsd-2-clause","node_id":"MDc6TGljZW5zZTQ="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"linkedin:master","ref":"master","sha":"1fa461961d7c40c9dadef2c986fe7fee8750732f","user":{"login":"linkedin","id":357098,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM1NzA5OA==","avatar_url":"https://avatars3.githubusercontent.com/u/357098?v=4","gravatar_id":"","url":"https://api.github.com/users/linkedin","html_url":"https://github.com/linkedin","followers_url":"https://api.github.com/users/linkedin/followers","following_url":"https://api.github.com/users/linkedin/following{/other_user}","gists_url":"https://api.github.com/users/linkedin/gists{/gist_id}","starred_url":"https://api.github.com/users/linkedin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linkedin/subscriptions","organizations_url":"https://api.github.com/users/linkedin/orgs","repos_url":"https://api.github.com/users/linkedin/repos","events_url":"https://api.github.com/users/linkedin/events{/privacy}","received_events_url":"https://api.github.com/users/linkedin/received_events","type":"Organization","site_admin":false},"repo":{"id":100402355,"node_id":"MDEwOlJlcG9zaXRvcnkxMDA0MDIzNTU=","name":"cruise-control","full_name":"linkedin/cruise-control","owner":{"login":"linkedin","id":357098,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM1NzA5OA==","avatar_url":"https://avatars3.githubusercontent.com/u/357098?v=4","gravatar_id":"","url":"https://api.github.com/users/linkedin","html_url":"https://github.com/linkedin","followers_url":"https://api.github.com/users/linkedin/followers","following_url":"https://api.github.com/users/linkedin/following{/other_user}","gists_url":"https://api.github.com/users/linkedin/gists{/gist_id}","starred_url":"https://api.github.com/users/linkedin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linkedin/subscriptions","organizations_url":"https://api.github.com/users/linkedin/orgs","repos_url":"https://api.github.com/users/linkedin/repos","events_url":"https://api.github.com/users/linkedin/events{/privacy}","received_events_url":"https://api.github.com/users/linkedin/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/linkedin/cruise-control","description":"Cruise-control is the first of its kind to fully automate the dynamic workload rebalance and self-healing of a kafka cluster. It provides great value to Kafka users by simplifying the operation of Kafka clusters.","fork":false,"url":"https://api.github.com/repos/linkedin/cruise-control","forks_url":"https://api.github.com/repos/linkedin/cruise-control/forks","keys_url":"https://api.github.com/repos/linkedin/cruise-control/keys{/key_id}","collaborators_url":"https://api.github.com/repos/linkedin/cruise-control/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/linkedin/cruise-control/teams","hooks_url":"https://api.github.com/repos/linkedin/cruise-control/hooks","issue_events_url":"https://api.github.com/repos/linkedin/cruise-control/issues/events{/number}","events_url":"https://api.github.com/repos/linkedin/cruise-control/events","assignees_url":"https://api.github.com/repos/linkedin/cruise-control/assignees{/user}","branches_url":"https://api.github.com/repos/linkedin/cruise-control/branches{/branch}","tags_url":"https://api.github.com/repos/linkedin/cruise-control/tags","blobs_url":"https://api.github.com/repos/linkedin/cruise-control/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/linkedin/cruise-control/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/linkedin/cruise-control/git/refs{/sha}","trees_url":"https://api.github.com/repos/linkedin/cruise-control/git/trees{/sha}","statuses_url":"https://api.github.com/repos/linkedin/cruise-control/statuses/{sha}","languages_url":"https://api.github.com/repos/linkedin/cruise-control/languages","stargazers_url":"https://api.github.com/repos/linkedin/cruise-control/stargazers","contributors_url":"https://api.github.com/repos/linkedin/cruise-control/contributors","subscribers_url":"https://api.github.com/repos/linkedin/cruise-control/subscribers","subscription_url":"https://api.github.com/repos/linkedin/cruise-control/subscription","commits_url":"https://api.github.com/repos/linkedin/cruise-control/commits{/sha}","git_commits_url":"https://api.github.com/repos/linkedin/cruise-control/git/commits{/sha}","comments_url":"https://api.github.com/repos/linkedin/cruise-control/comments{/number}","issue_comment_url":"https://api.github.com/repos/linkedin/cruise-control/issues/comments{/number}","contents_url":"https://api.github.com/repos/linkedin/cruise-control/contents/{+path}","compare_url":"https://api.github.com/repos/linkedin/cruise-control/compare/{base}...{head}","merges_url":"https://api.github.com/repos/linkedin/cruise-control/merges","archive_url":"https://api.github.com/repos/linkedin/cruise-control/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/linkedin/cruise-control/downloads","issues_url":"https://api.github.com/repos/linkedin/cruise-control/issues{/number}","pulls_url":"https://api.github.com/repos/linkedin/cruise-control/pulls{/number}","milestones_url":"https://api.github.com/repos/linkedin/cruise-control/milestones{/number}","notifications_url":"https://api.github.com/repos/linkedin/cruise-control/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/linkedin/cruise-control/labels{/name}","releases_url":"https://api.github.com/repos/linkedin/cruise-control/releases{/id}","deployments_url":"https://api.github.com/repos/linkedin/cruise-control/deployments","created_at":"2017-08-15T17:32:10Z","updated_at":"2018-09-05T16:37:07Z","pushed_at":"2018-09-05T16:38:27Z","git_url":"git://github.com/linkedin/cruise-control.git","ssh_url":"git@github.com:linkedin/cruise-control.git","clone_url":"https://github.com/linkedin/cruise-control.git","svn_url":"https://github.com/linkedin/cruise-control","homepage":"","size":1816,"stargazers_count":817,"watchers_count":817,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":164,"mirror_url":null,"archived":false,"open_issues_count":52,"license":{"key":"bsd-2-clause","name":"BSD 2-Clause \"Simplified\" License","spdx_id":"BSD-2-Clause","url":"https://api.github.com/licenses/bsd-2-clause","node_id":"MDc6TGljZW5zZTQ="},"forks":164,"open_issues":52,"watchers":817,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/linkedin/cruise-control/pulls/305"},"html":{"href":"https://github.com/linkedin/cruise-control/pull/305"},"issue":{"href":"https://api.github.com/repos/linkedin/cruise-control/issues/305"},"comments":{"href":"https://api.github.com/repos/linkedin/cruise-control/issues/305/comments"},"review_comments":{"href":"https://api.github.com/repos/linkedin/cruise-control/pulls/305/comments"},"review_comment":{"href":"https://api.github.com/repos/linkedin/cruise-control/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/linkedin/cruise-control/pulls/305/commits"},"statuses":{"href":"https://api.github.com/repos/linkedin/cruise-control/statuses/c1e21eb9f98ad885e49d0f152c095bb057dcb58d"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"efeg"}}