{"action":"created","comment":{"url":"https://api.github.com/repos/azkaban/azkaban/pulls/comments/135077577","pull_request_review_id":58449138,"id":135077577,"diff_hunk":"@@ -30,11 +37,49 @@\n  */\n public class AzkabanExecServerModule extends AbstractModule {\n \n+  private static final Logger logger = Logger.getLogger(AzkabanExecServerModule.class);\n+  private static final String EVENT_REPORTER_CLASS_PARAM = \"event.reporter.class\";\n+  private static final String EVENT_REPORTER_ENABLED = \"event.reporter.enabled\";","path":"azkaban-exec-server/src/main/java/azkaban/execapp/AzkabanExecServerModule.java","position":24,"original_position":24,"commit_id":"1483deb99745a379fb6773c02f279fd74fa34a3a","original_commit_id":"1483deb99745a379fb6773c02f279fd74fa34a3a","user":{"login":"HappyRay","id":6646529,"avatar_url":"https://avatars1.githubusercontent.com/u/6646529?v=4","gravatar_id":"","url":"https://api.github.com/users/HappyRay","html_url":"https://github.com/HappyRay","followers_url":"https://api.github.com/users/HappyRay/followers","following_url":"https://api.github.com/users/HappyRay/following{/other_user}","gists_url":"https://api.github.com/users/HappyRay/gists{/gist_id}","starred_url":"https://api.github.com/users/HappyRay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HappyRay/subscriptions","organizations_url":"https://api.github.com/users/HappyRay/orgs","repos_url":"https://api.github.com/users/HappyRay/repos","events_url":"https://api.github.com/users/HappyRay/events{/privacy}","received_events_url":"https://api.github.com/users/HappyRay/received_events","type":"User","site_admin":false},"body":"Why isn't it prefixed with event.reporting like other configs?","created_at":"2017-08-24T17:22:43Z","updated_at":"2017-08-24T17:22:47Z","html_url":"https://github.com/azkaban/azkaban/pull/1332#discussion_r135077577","pull_request_url":"https://api.github.com/repos/azkaban/azkaban/pulls/1332","_links":{"self":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/comments/135077577"},"html":{"href":"https://github.com/azkaban/azkaban/pull/1332#discussion_r135077577"},"pull_request":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/1332"}}},"pull_request":{"url":"https://api.github.com/repos/azkaban/azkaban/pulls/1332","id":135448858,"html_url":"https://github.com/azkaban/azkaban/pull/1332","diff_url":"https://github.com/azkaban/azkaban/pull/1332.diff","patch_url":"https://github.com/azkaban/azkaban/pull/1332.patch","issue_url":"https://api.github.com/repos/azkaban/azkaban/issues/1332","number":1332,"state":"open","locked":false,"title":"Event reporting for azkaban events.","user":{"login":"rajagopr","id":11494855,"avatar_url":"https://avatars0.githubusercontent.com/u/11494855?v=4","gravatar_id":"","url":"https://api.github.com/users/rajagopr","html_url":"https://github.com/rajagopr","followers_url":"https://api.github.com/users/rajagopr/followers","following_url":"https://api.github.com/users/rajagopr/following{/other_user}","gists_url":"https://api.github.com/users/rajagopr/gists{/gist_id}","starred_url":"https://api.github.com/users/rajagopr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rajagopr/subscriptions","organizations_url":"https://api.github.com/users/rajagopr/orgs","repos_url":"https://api.github.com/users/rajagopr/repos","events_url":"https://api.github.com/users/rajagopr/events{/privacy}","received_events_url":"https://api.github.com/users/rajagopr/received_events","type":"User","site_admin":false},"body":"Summary:\r\nWith this change, support for reporting events of interest from azkaban has been provided.\r\nThe default implementation uses a kafka event reporter. Users can provide alternate\r\nimplementations of the reporter. To begin with, the following events are reported.\r\n\r\n 1. FLOW_STARTED\r\n 2. FLOW_FINISHED\r\n 3. JOB_STARTED\r\n 4. JOB_FINISHED\r\n\r\nIn future, this can be easily extended to report other events. The default event reporter\r\nimplementation uses gobblin-metrics, which provides conevenient methods for event creation\r\nand submission. Gobblin-metrics also provides a schema for the events. The default\r\nimplementation uses the kafka async producer.\r\n\r\nConfiguration changes:\r\nNote: All changes must be applied to the executor server or the solo-server if in solo mode.\r\n\r\n// Property is used to enable/disable event reporting with the default being false.\r\nevent.reporter.enabled=false\r\n\r\n// Alternate implementations of the reporter can be specified using this property.\r\nevent.reporter.class=com.foo.EventReporterImpl\r\n\r\n// Kafka topic name for the default implementation.\r\nevent.reporting.kafka.topic=TestTopicName\r\n\r\n// Kafka broker list for the default implementation.\r\nevent.reporting.kafka.brokers=hostname.com:port_num\r\n\r\n// Schema registry server for the default kafka implementation.\r\nevent.reporting.kafka.schema.registry.url=schemaRegistryUrl.com:port/schema","created_at":"2017-08-12T05:51:32Z","updated_at":"2017-08-24T17:22:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0e4c4c38440b61567422b48a757e9b0a0c48d403","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/azkaban/azkaban/pulls/1332/commits","review_comments_url":"https://api.github.com/repos/azkaban/azkaban/pulls/1332/comments","review_comment_url":"https://api.github.com/repos/azkaban/azkaban/pulls/comments{/number}","comments_url":"https://api.github.com/repos/azkaban/azkaban/issues/1332/comments","statuses_url":"https://api.github.com/repos/azkaban/azkaban/statuses/1483deb99745a379fb6773c02f279fd74fa34a3a","head":{"label":"rajagopr:kafka_events","ref":"kafka_events","sha":"1483deb99745a379fb6773c02f279fd74fa34a3a","user":{"login":"rajagopr","id":11494855,"avatar_url":"https://avatars0.githubusercontent.com/u/11494855?v=4","gravatar_id":"","url":"https://api.github.com/users/rajagopr","html_url":"https://github.com/rajagopr","followers_url":"https://api.github.com/users/rajagopr/followers","following_url":"https://api.github.com/users/rajagopr/following{/other_user}","gists_url":"https://api.github.com/users/rajagopr/gists{/gist_id}","starred_url":"https://api.github.com/users/rajagopr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rajagopr/subscriptions","organizations_url":"https://api.github.com/users/rajagopr/orgs","repos_url":"https://api.github.com/users/rajagopr/repos","events_url":"https://api.github.com/users/rajagopr/events{/privacy}","received_events_url":"https://api.github.com/users/rajagopr/received_events","type":"User","site_admin":false},"repo":{"id":59719641,"name":"azkaban","full_name":"rajagopr/azkaban","owner":{"login":"rajagopr","id":11494855,"avatar_url":"https://avatars0.githubusercontent.com/u/11494855?v=4","gravatar_id":"","url":"https://api.github.com/users/rajagopr","html_url":"https://github.com/rajagopr","followers_url":"https://api.github.com/users/rajagopr/followers","following_url":"https://api.github.com/users/rajagopr/following{/other_user}","gists_url":"https://api.github.com/users/rajagopr/gists{/gist_id}","starred_url":"https://api.github.com/users/rajagopr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rajagopr/subscriptions","organizations_url":"https://api.github.com/users/rajagopr/orgs","repos_url":"https://api.github.com/users/rajagopr/repos","events_url":"https://api.github.com/users/rajagopr/events{/privacy}","received_events_url":"https://api.github.com/users/rajagopr/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rajagopr/azkaban","description":"Azkaban workflow manager.","fork":true,"url":"https://api.github.com/repos/rajagopr/azkaban","forks_url":"https://api.github.com/repos/rajagopr/azkaban/forks","keys_url":"https://api.github.com/repos/rajagopr/azkaban/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rajagopr/azkaban/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rajagopr/azkaban/teams","hooks_url":"https://api.github.com/repos/rajagopr/azkaban/hooks","issue_events_url":"https://api.github.com/repos/rajagopr/azkaban/issues/events{/number}","events_url":"https://api.github.com/repos/rajagopr/azkaban/events","assignees_url":"https://api.github.com/repos/rajagopr/azkaban/assignees{/user}","branches_url":"https://api.github.com/repos/rajagopr/azkaban/branches{/branch}","tags_url":"https://api.github.com/repos/rajagopr/azkaban/tags","blobs_url":"https://api.github.com/repos/rajagopr/azkaban/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rajagopr/azkaban/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rajagopr/azkaban/git/refs{/sha}","trees_url":"https://api.github.com/repos/rajagopr/azkaban/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rajagopr/azkaban/statuses/{sha}","languages_url":"https://api.github.com/repos/rajagopr/azkaban/languages","stargazers_url":"https://api.github.com/repos/rajagopr/azkaban/stargazers","contributors_url":"https://api.github.com/repos/rajagopr/azkaban/contributors","subscribers_url":"https://api.github.com/repos/rajagopr/azkaban/subscribers","subscription_url":"https://api.github.com/repos/rajagopr/azkaban/subscription","commits_url":"https://api.github.com/repos/rajagopr/azkaban/commits{/sha}","git_commits_url":"https://api.github.com/repos/rajagopr/azkaban/git/commits{/sha}","comments_url":"https://api.github.com/repos/rajagopr/azkaban/comments{/number}","issue_comment_url":"https://api.github.com/repos/rajagopr/azkaban/issues/comments{/number}","contents_url":"https://api.github.com/repos/rajagopr/azkaban/contents/{+path}","compare_url":"https://api.github.com/repos/rajagopr/azkaban/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rajagopr/azkaban/merges","archive_url":"https://api.github.com/repos/rajagopr/azkaban/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rajagopr/azkaban/downloads","issues_url":"https://api.github.com/repos/rajagopr/azkaban/issues{/number}","pulls_url":"https://api.github.com/repos/rajagopr/azkaban/pulls{/number}","milestones_url":"https://api.github.com/repos/rajagopr/azkaban/milestones{/number}","notifications_url":"https://api.github.com/repos/rajagopr/azkaban/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rajagopr/azkaban/labels{/name}","releases_url":"https://api.github.com/repos/rajagopr/azkaban/releases{/id}","deployments_url":"https://api.github.com/repos/rajagopr/azkaban/deployments","created_at":"2016-05-26T04:24:53Z","updated_at":"2016-05-26T04:24:57Z","pushed_at":"2017-08-12T17:44:16Z","git_url":"git://github.com/rajagopr/azkaban.git","ssh_url":"git@github.com:rajagopr/azkaban.git","clone_url":"https://github.com/rajagopr/azkaban.git","svn_url":"https://github.com/rajagopr/azkaban","homepage":"https://azkaban.github.io","size":34641,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"azkaban:master","ref":"master","sha":"a0aba2002c2e7dfeb0e972555b736828dbfe6551","user":{"login":"azkaban","id":213618,"avatar_url":"https://avatars0.githubusercontent.com/u/213618?v=4","gravatar_id":"","url":"https://api.github.com/users/azkaban","html_url":"https://github.com/azkaban","followers_url":"https://api.github.com/users/azkaban/followers","following_url":"https://api.github.com/users/azkaban/following{/other_user}","gists_url":"https://api.github.com/users/azkaban/gists{/gist_id}","starred_url":"https://api.github.com/users/azkaban/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azkaban/subscriptions","organizations_url":"https://api.github.com/users/azkaban/orgs","repos_url":"https://api.github.com/users/azkaban/repos","events_url":"https://api.github.com/users/azkaban/events{/privacy}","received_events_url":"https://api.github.com/users/azkaban/received_events","type":"Organization","site_admin":false},"repo":{"id":6271421,"name":"azkaban","full_name":"azkaban/azkaban","owner":{"login":"azkaban","id":213618,"avatar_url":"https://avatars0.githubusercontent.com/u/213618?v=4","gravatar_id":"","url":"https://api.github.com/users/azkaban","html_url":"https://github.com/azkaban","followers_url":"https://api.github.com/users/azkaban/followers","following_url":"https://api.github.com/users/azkaban/following{/other_user}","gists_url":"https://api.github.com/users/azkaban/gists{/gist_id}","starred_url":"https://api.github.com/users/azkaban/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azkaban/subscriptions","organizations_url":"https://api.github.com/users/azkaban/orgs","repos_url":"https://api.github.com/users/azkaban/repos","events_url":"https://api.github.com/users/azkaban/events{/privacy}","received_events_url":"https://api.github.com/users/azkaban/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/azkaban/azkaban","description":"Azkaban workflow manager.","fork":false,"url":"https://api.github.com/repos/azkaban/azkaban","forks_url":"https://api.github.com/repos/azkaban/azkaban/forks","keys_url":"https://api.github.com/repos/azkaban/azkaban/keys{/key_id}","collaborators_url":"https://api.github.com/repos/azkaban/azkaban/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/azkaban/azkaban/teams","hooks_url":"https://api.github.com/repos/azkaban/azkaban/hooks","issue_events_url":"https://api.github.com/repos/azkaban/azkaban/issues/events{/number}","events_url":"https://api.github.com/repos/azkaban/azkaban/events","assignees_url":"https://api.github.com/repos/azkaban/azkaban/assignees{/user}","branches_url":"https://api.github.com/repos/azkaban/azkaban/branches{/branch}","tags_url":"https://api.github.com/repos/azkaban/azkaban/tags","blobs_url":"https://api.github.com/repos/azkaban/azkaban/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/azkaban/azkaban/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/azkaban/azkaban/git/refs{/sha}","trees_url":"https://api.github.com/repos/azkaban/azkaban/git/trees{/sha}","statuses_url":"https://api.github.com/repos/azkaban/azkaban/statuses/{sha}","languages_url":"https://api.github.com/repos/azkaban/azkaban/languages","stargazers_url":"https://api.github.com/repos/azkaban/azkaban/stargazers","contributors_url":"https://api.github.com/repos/azkaban/azkaban/contributors","subscribers_url":"https://api.github.com/repos/azkaban/azkaban/subscribers","subscription_url":"https://api.github.com/repos/azkaban/azkaban/subscription","commits_url":"https://api.github.com/repos/azkaban/azkaban/commits{/sha}","git_commits_url":"https://api.github.com/repos/azkaban/azkaban/git/commits{/sha}","comments_url":"https://api.github.com/repos/azkaban/azkaban/comments{/number}","issue_comment_url":"https://api.github.com/repos/azkaban/azkaban/issues/comments{/number}","contents_url":"https://api.github.com/repos/azkaban/azkaban/contents/{+path}","compare_url":"https://api.github.com/repos/azkaban/azkaban/compare/{base}...{head}","merges_url":"https://api.github.com/repos/azkaban/azkaban/merges","archive_url":"https://api.github.com/repos/azkaban/azkaban/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/azkaban/azkaban/downloads","issues_url":"https://api.github.com/repos/azkaban/azkaban/issues{/number}","pulls_url":"https://api.github.com/repos/azkaban/azkaban/pulls{/number}","milestones_url":"https://api.github.com/repos/azkaban/azkaban/milestones{/number}","notifications_url":"https://api.github.com/repos/azkaban/azkaban/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/azkaban/azkaban/labels{/name}","releases_url":"https://api.github.com/repos/azkaban/azkaban/releases{/id}","deployments_url":"https://api.github.com/repos/azkaban/azkaban/deployments","created_at":"2012-10-18T01:34:53Z","updated_at":"2017-08-24T11:55:46Z","pushed_at":"2017-08-24T16:57:29Z","git_url":"git://github.com/azkaban/azkaban.git","ssh_url":"git@github.com:azkaban/azkaban.git","clone_url":"https://github.com/azkaban/azkaban.git","svn_url":"https://github.com/azkaban/azkaban","homepage":"https://azkaban.github.io","size":34774,"stargazers_count":1347,"watchers_count":1347,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":658,"mirror_url":null,"open_issues_count":365,"forks":658,"open_issues":365,"watchers":1347,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/1332"},"html":{"href":"https://github.com/azkaban/azkaban/pull/1332"},"issue":{"href":"https://api.github.com/repos/azkaban/azkaban/issues/1332"},"comments":{"href":"https://api.github.com/repos/azkaban/azkaban/issues/1332/comments"},"review_comments":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/1332/comments"},"review_comment":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/1332/commits"},"statuses":{"href":"https://api.github.com/repos/azkaban/azkaban/statuses/1483deb99745a379fb6773c02f279fd74fa34a3a"}}}}
{"actor":{"display_login":"HappyRay"}}