{"action":"created","comment":{"url":"https://api.github.com/repos/projectcalico/calico/pulls/comments/38649706","id":38649706,"diff_hunk":"@@ -232,11 +249,28 @@ def _step(self):\n                 except BaseException as e:\n                     _log.exception(\"Exception processing %s\", msg)\n                     results.append(ResultOrExc(None, e))\n+                    message_exception = e.__class__.__name__ +\\\n+                                                      ': ' + str(e)\n                     _stats.increment(\"Messages executed with exception\")\n                 else:\n+                    message_exception = None\n                     results.append(ResultOrExc(result, None))\n                     _stats.increment(\"Messages executed OK\")\n                 finally:\n+                    batch_uuids.add(msg.uuid)\n+                    # Log the message info\n+                    # Strings are enclosed in quotes. Numbers aren't.\n+                    _message_log.info('\"{uuid}\": {data}'.format(\n+                        uuid=msg.uuid,\n+                        data=json.dumps({\n+                            \"received-time\": int(time.time() * 1000),","path":"calico/felix/actor.py","position":77,"original_position":77,"commit_id":"a05f79ec599397e3a5ad6c01488b3a85e8e83e9f","original_commit_id":"a05f79ec599397e3a5ad6c01488b3a85e8e83e9f","user":{"login":"fasaxc","id":469264,"avatar_url":"https://avatars.githubusercontent.com/u/469264?v=3","gravatar_id":"","url":"https://api.github.com/users/fasaxc","html_url":"https://github.com/fasaxc","followers_url":"https://api.github.com/users/fasaxc/followers","following_url":"https://api.github.com/users/fasaxc/following{/other_user}","gists_url":"https://api.github.com/users/fasaxc/gists{/gist_id}","starred_url":"https://api.github.com/users/fasaxc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fasaxc/subscriptions","organizations_url":"https://api.github.com/users/fasaxc/orgs","repos_url":"https://api.github.com/users/fasaxc/repos","events_url":"https://api.github.com/users/fasaxc/events{/privacy}","received_events_url":"https://api.github.com/users/fasaxc/received_events","type":"User","site_admin":false},"body":"\"received-time\" isn't a good name for a JSON field because \"-\" isn't a valid identifier character in most languages.  You should use an underscore.","created_at":"2015-09-03T14:13:18Z","updated_at":"2015-09-03T14:13:18Z","html_url":"https://github.com/projectcalico/calico/pull/748#discussion_r38649706","pull_request_url":"https://api.github.com/repos/projectcalico/calico/pulls/748","_links":{"self":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/comments/38649706"},"html":{"href":"https://github.com/projectcalico/calico/pull/748#discussion_r38649706"},"pull_request":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/748"}}},"pull_request":{"url":"https://api.github.com/repos/projectcalico/calico/pulls/748","id":41136128,"html_url":"https://github.com/projectcalico/calico/pull/748","diff_url":"https://github.com/projectcalico/calico/pull/748.diff","patch_url":"https://github.com/projectcalico/calico/pull/748.patch","issue_url":"https://api.github.com/repos/projectcalico/calico/issues/748","number":748,"state":"open","locked":false,"title":"Add message tracking to Felix","user":{"login":"PatrickKidger","id":13137682,"avatar_url":"https://avatars.githubusercontent.com/u/13137682?v=3","gravatar_id":"","url":"https://api.github.com/users/PatrickKidger","html_url":"https://github.com/PatrickKidger","followers_url":"https://api.github.com/users/PatrickKidger/followers","following_url":"https://api.github.com/users/PatrickKidger/following{/other_user}","gists_url":"https://api.github.com/users/PatrickKidger/gists{/gist_id}","starred_url":"https://api.github.com/users/PatrickKidger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PatrickKidger/subscriptions","organizations_url":"https://api.github.com/users/PatrickKidger/orgs","repos_url":"https://api.github.com/users/PatrickKidger/repos","events_url":"https://api.github.com/users/PatrickKidger/events{/privacy}","received_events_url":"https://api.github.com/users/PatrickKidger/received_events","type":"User","site_admin":false},"body":"Not looking to merge before 1.0.\r\n\r\nAdds additional message logging options, which can be read by an external program to generate an IPS trace. This is toggled with an additional config option MessageTracking (defaults to False, i.e. off), and the location of the log set with an additional config option MessageTrackingLogFilePath (defaults to /var/log/calico/calico-message-tracker.log)\r\n\r\nAlso updates some actor names for increased specificity.\r\n\r\n@joe-marshall @fasaxc","created_at":"2015-07-29T15:24:31Z","updated_at":"2015-09-03T14:13:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bc025da59ee2f4e7136412f8427e154968979830","assignee":{"login":"fasaxc","id":469264,"avatar_url":"https://avatars.githubusercontent.com/u/469264?v=3","gravatar_id":"","url":"https://api.github.com/users/fasaxc","html_url":"https://github.com/fasaxc","followers_url":"https://api.github.com/users/fasaxc/followers","following_url":"https://api.github.com/users/fasaxc/following{/other_user}","gists_url":"https://api.github.com/users/fasaxc/gists{/gist_id}","starred_url":"https://api.github.com/users/fasaxc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fasaxc/subscriptions","organizations_url":"https://api.github.com/users/fasaxc/orgs","repos_url":"https://api.github.com/users/fasaxc/repos","events_url":"https://api.github.com/users/fasaxc/events{/privacy}","received_events_url":"https://api.github.com/users/fasaxc/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/projectcalico/calico/milestones/9","html_url":"https://github.com/projectcalico/calico/milestones/Future%20ideas","labels_url":"https://api.github.com/repos/projectcalico/calico/milestones/9/labels","id":1121780,"number":9,"title":"Future ideas","description":"","creator":{"login":"fasaxc","id":469264,"avatar_url":"https://avatars.githubusercontent.com/u/469264?v=3","gravatar_id":"","url":"https://api.github.com/users/fasaxc","html_url":"https://github.com/fasaxc","followers_url":"https://api.github.com/users/fasaxc/followers","following_url":"https://api.github.com/users/fasaxc/following{/other_user}","gists_url":"https://api.github.com/users/fasaxc/gists{/gist_id}","starred_url":"https://api.github.com/users/fasaxc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fasaxc/subscriptions","organizations_url":"https://api.github.com/users/fasaxc/orgs","repos_url":"https://api.github.com/users/fasaxc/repos","events_url":"https://api.github.com/users/fasaxc/events{/privacy}","received_events_url":"https://api.github.com/users/fasaxc/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":20,"state":"open","created_at":"2015-05-20T18:32:15Z","updated_at":"2015-09-03T10:16:15Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/projectcalico/calico/pulls/748/commits","review_comments_url":"https://api.github.com/repos/projectcalico/calico/pulls/748/comments","review_comment_url":"https://api.github.com/repos/projectcalico/calico/pulls/comments{/number}","comments_url":"https://api.github.com/repos/projectcalico/calico/issues/748/comments","statuses_url":"https://api.github.com/repos/projectcalico/calico/statuses/a05f79ec599397e3a5ad6c01488b3a85e8e83e9f","head":{"label":"projectcalico:PAK-message-tracker","ref":"PAK-message-tracker","sha":"a05f79ec599397e3a5ad6c01488b3a85e8e83e9f","user":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars.githubusercontent.com/u/12304728?v=3","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"repo":{"id":21242831,"name":"calico","full_name":"projectcalico/calico","owner":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars.githubusercontent.com/u/12304728?v=3","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/projectcalico/calico","description":"Project Calico core repository.","fork":false,"url":"https://api.github.com/repos/projectcalico/calico","forks_url":"https://api.github.com/repos/projectcalico/calico/forks","keys_url":"https://api.github.com/repos/projectcalico/calico/keys{/key_id}","collaborators_url":"https://api.github.com/repos/projectcalico/calico/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/projectcalico/calico/teams","hooks_url":"https://api.github.com/repos/projectcalico/calico/hooks","issue_events_url":"https://api.github.com/repos/projectcalico/calico/issues/events{/number}","events_url":"https://api.github.com/repos/projectcalico/calico/events","assignees_url":"https://api.github.com/repos/projectcalico/calico/assignees{/user}","branches_url":"https://api.github.com/repos/projectcalico/calico/branches{/branch}","tags_url":"https://api.github.com/repos/projectcalico/calico/tags","blobs_url":"https://api.github.com/repos/projectcalico/calico/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/projectcalico/calico/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/projectcalico/calico/git/refs{/sha}","trees_url":"https://api.github.com/repos/projectcalico/calico/git/trees{/sha}","statuses_url":"https://api.github.com/repos/projectcalico/calico/statuses/{sha}","languages_url":"https://api.github.com/repos/projectcalico/calico/languages","stargazers_url":"https://api.github.com/repos/projectcalico/calico/stargazers","contributors_url":"https://api.github.com/repos/projectcalico/calico/contributors","subscribers_url":"https://api.github.com/repos/projectcalico/calico/subscribers","subscription_url":"https://api.github.com/repos/projectcalico/calico/subscription","commits_url":"https://api.github.com/repos/projectcalico/calico/commits{/sha}","git_commits_url":"https://api.github.com/repos/projectcalico/calico/git/commits{/sha}","comments_url":"https://api.github.com/repos/projectcalico/calico/comments{/number}","issue_comment_url":"https://api.github.com/repos/projectcalico/calico/issues/comments{/number}","contents_url":"https://api.github.com/repos/projectcalico/calico/contents/{+path}","compare_url":"https://api.github.com/repos/projectcalico/calico/compare/{base}...{head}","merges_url":"https://api.github.com/repos/projectcalico/calico/merges","archive_url":"https://api.github.com/repos/projectcalico/calico/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/projectcalico/calico/downloads","issues_url":"https://api.github.com/repos/projectcalico/calico/issues{/number}","pulls_url":"https://api.github.com/repos/projectcalico/calico/pulls{/number}","milestones_url":"https://api.github.com/repos/projectcalico/calico/milestones{/number}","notifications_url":"https://api.github.com/repos/projectcalico/calico/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/projectcalico/calico/labels{/name}","releases_url":"https://api.github.com/repos/projectcalico/calico/releases{/id}","created_at":"2014-06-26T14:08:43Z","updated_at":"2015-09-03T07:00:13Z","pushed_at":"2015-09-03T13:53:54Z","git_url":"git://github.com/projectcalico/calico.git","ssh_url":"git@github.com:projectcalico/calico.git","clone_url":"https://github.com/projectcalico/calico.git","svn_url":"https://github.com/projectcalico/calico","homepage":"http://projectcalico.org/","size":10475,"stargazers_count":178,"watchers_count":178,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":31,"mirror_url":null,"open_issues_count":43,"forks":31,"open_issues":43,"watchers":178,"default_branch":"master"}},"base":{"label":"projectcalico:master","ref":"master","sha":"7a68d97829054ec0afd2a976a8562c777379bed6","user":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars.githubusercontent.com/u/12304728?v=3","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"repo":{"id":21242831,"name":"calico","full_name":"projectcalico/calico","owner":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars.githubusercontent.com/u/12304728?v=3","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/projectcalico/calico","description":"Project Calico core repository.","fork":false,"url":"https://api.github.com/repos/projectcalico/calico","forks_url":"https://api.github.com/repos/projectcalico/calico/forks","keys_url":"https://api.github.com/repos/projectcalico/calico/keys{/key_id}","collaborators_url":"https://api.github.com/repos/projectcalico/calico/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/projectcalico/calico/teams","hooks_url":"https://api.github.com/repos/projectcalico/calico/hooks","issue_events_url":"https://api.github.com/repos/projectcalico/calico/issues/events{/number}","events_url":"https://api.github.com/repos/projectcalico/calico/events","assignees_url":"https://api.github.com/repos/projectcalico/calico/assignees{/user}","branches_url":"https://api.github.com/repos/projectcalico/calico/branches{/branch}","tags_url":"https://api.github.com/repos/projectcalico/calico/tags","blobs_url":"https://api.github.com/repos/projectcalico/calico/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/projectcalico/calico/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/projectcalico/calico/git/refs{/sha}","trees_url":"https://api.github.com/repos/projectcalico/calico/git/trees{/sha}","statuses_url":"https://api.github.com/repos/projectcalico/calico/statuses/{sha}","languages_url":"https://api.github.com/repos/projectcalico/calico/languages","stargazers_url":"https://api.github.com/repos/projectcalico/calico/stargazers","contributors_url":"https://api.github.com/repos/projectcalico/calico/contributors","subscribers_url":"https://api.github.com/repos/projectcalico/calico/subscribers","subscription_url":"https://api.github.com/repos/projectcalico/calico/subscription","commits_url":"https://api.github.com/repos/projectcalico/calico/commits{/sha}","git_commits_url":"https://api.github.com/repos/projectcalico/calico/git/commits{/sha}","comments_url":"https://api.github.com/repos/projectcalico/calico/comments{/number}","issue_comment_url":"https://api.github.com/repos/projectcalico/calico/issues/comments{/number}","contents_url":"https://api.github.com/repos/projectcalico/calico/contents/{+path}","compare_url":"https://api.github.com/repos/projectcalico/calico/compare/{base}...{head}","merges_url":"https://api.github.com/repos/projectcalico/calico/merges","archive_url":"https://api.github.com/repos/projectcalico/calico/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/projectcalico/calico/downloads","issues_url":"https://api.github.com/repos/projectcalico/calico/issues{/number}","pulls_url":"https://api.github.com/repos/projectcalico/calico/pulls{/number}","milestones_url":"https://api.github.com/repos/projectcalico/calico/milestones{/number}","notifications_url":"https://api.github.com/repos/projectcalico/calico/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/projectcalico/calico/labels{/name}","releases_url":"https://api.github.com/repos/projectcalico/calico/releases{/id}","created_at":"2014-06-26T14:08:43Z","updated_at":"2015-09-03T07:00:13Z","pushed_at":"2015-09-03T13:53:54Z","git_url":"git://github.com/projectcalico/calico.git","ssh_url":"git@github.com:projectcalico/calico.git","clone_url":"https://github.com/projectcalico/calico.git","svn_url":"https://github.com/projectcalico/calico","homepage":"http://projectcalico.org/","size":10475,"stargazers_count":178,"watchers_count":178,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":31,"mirror_url":null,"open_issues_count":43,"forks":31,"open_issues":43,"watchers":178,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/748"},"html":{"href":"https://github.com/projectcalico/calico/pull/748"},"issue":{"href":"https://api.github.com/repos/projectcalico/calico/issues/748"},"comments":{"href":"https://api.github.com/repos/projectcalico/calico/issues/748/comments"},"review_comments":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/748/comments"},"review_comment":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/748/commits"},"statuses":{"href":"https://api.github.com/repos/projectcalico/calico/statuses/a05f79ec599397e3a5ad6c01488b3a85e8e83e9f"}}}}