{"action":"created","issue":{"url":"https://api.github.com/repos/hazelcast/hazelcast/issues/9119","repository_url":"https://api.github.com/repos/hazelcast/hazelcast","labels_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/9119/labels{/name}","comments_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/9119/comments","events_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/9119/events","html_url":"https://github.com/hazelcast/hazelcast/pull/9119","id":183382929,"number":9119,"title":"[DONT MERGE] Diagnostcs Store Latency plugin","user":{"login":"pveentjer","id":105243,"avatar_url":"https://avatars.githubusercontent.com/u/105243?v=3","gravatar_id":"","url":"https://api.github.com/users/pveentjer","html_url":"https://github.com/pveentjer","followers_url":"https://api.github.com/users/pveentjer/followers","following_url":"https://api.github.com/users/pveentjer/following{/other_user}","gists_url":"https://api.github.com/users/pveentjer/gists{/gist_id}","starred_url":"https://api.github.com/users/pveentjer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pveentjer/subscriptions","organizations_url":"https://api.github.com/users/pveentjer/orgs","repos_url":"https://api.github.com/users/pveentjer/repos","events_url":"https://api.github.com/users/pveentjer/events{/privacy}","received_events_url":"https://api.github.com/users/pveentjer/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/hazelcast/hazelcast/labels/Team:%20Core","name":"Team: Core","color":"109def"},{"url":"https://api.github.com/repos/hazelcast/hazelcast/labels/Team:%20QuSP","name":"Team: QuSP","color":"bfe5bf"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/hazelcast/hazelcast/milestones/76","html_url":"https://github.com/hazelcast/hazelcast/milestones/3.8","labels_url":"https://api.github.com/repos/hazelcast/hazelcast/milestones/76/labels","id":1774122,"number":76,"title":"3.8","description":"","creator":{"login":"degerhz","id":8373100,"avatar_url":"https://avatars.githubusercontent.com/u/8373100?v=3","gravatar_id":"","url":"https://api.github.com/users/degerhz","html_url":"https://github.com/degerhz","followers_url":"https://api.github.com/users/degerhz/followers","following_url":"https://api.github.com/users/degerhz/following{/other_user}","gists_url":"https://api.github.com/users/degerhz/gists{/gist_id}","starred_url":"https://api.github.com/users/degerhz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/degerhz/subscriptions","organizations_url":"https://api.github.com/users/degerhz/orgs","repos_url":"https://api.github.com/users/degerhz/repos","events_url":"https://api.github.com/users/degerhz/events{/privacy}","received_events_url":"https://api.github.com/users/degerhz/received_events","type":"User","site_admin":false},"open_issues":176,"closed_issues":226,"state":"open","created_at":"2016-05-18T14:13:56Z","updated_at":"2016-10-19T08:48:00Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2016-10-17T10:43:57Z","updated_at":"2016-10-19T09:16:55Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/hazelcast/hazelcast/pulls/9119","html_url":"https://github.com/hazelcast/hazelcast/pull/9119","diff_url":"https://github.com/hazelcast/hazelcast/pull/9119.diff","patch_url":"https://github.com/hazelcast/hazelcast/pull/9119.patch"},"body":"Added a plugin for the the different store like MapStore to provide information about latencies. All kinds of different statistics are available like count, max, avg, and latency distribution.\r\n\r\nExample output:\r\n\r\n```\r\n17-9-2016 13:12:34 MapStoreLatency[\r\n                          map[\r\n                                  loadAllKeys[\r\n                                          count=1\r\n                                          totalTime(us)=8\r\n                                          avg(us)=8\r\n                                          max(us)=8\r\n                                          latency-distribution[\r\n                                                  0..99us=1]]\r\n                                  load[\r\n                                          count=100\r\n                                          totalTime(us)=4,632,190\r\n                                          avg(us)=46,321\r\n                                          max(us)=99,178\r\n                                          latency-distribution[\r\n                                                  0..99us=1\r\n                                                  1600..3199us=3\r\n                                                  3200..6399us=3\r\n                                                  6400..12799us=7\r\n                                                  12800..25599us=13\r\n                                                  25600..51199us=32\r\n                                                  51200..102399us=41]]]]\r\n17-9-2016 13:12:34 RingbufferStoreLatency[\r\n                          ring[\r\n                                  load[\r\n                                          count=47\r\n                                          totalTime(us)=2,366,188\r\n                                          avg(us)=50,344\r\n                                          max(us)=96,176\r\n                                          latency-distribution[\r\n                                                  1600..3199us=1\r\n                                                  6400..12799us=7\r\n                                                  12800..25599us=3\r\n                                                  25600..51199us=12\r\n                                                  51200..102399us=24]]\r\n                                  getLargestSequenceProbe[\r\n                                          count=1\r\n                                          totalTime(us)=38,186\r\n                                          avg(us)=38,186\r\n                                          max(us)=38,186\r\n                                          latency-distribution[\r\n                                                  25600..51199us=1]]]]\r\n\r\n```\r\n\r\nThe approach used is decorate the Store/Loader with a Latency tracking decorator. This proxy is dynamically wrapped around the original Store/Loader. If the LatencyStorePlugin is disabled, the decorator is not added; and therefor there is no performance penalty.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/hazelcast/hazelcast/issues/comments/254759118","html_url":"https://github.com/hazelcast/hazelcast/pull/9119#issuecomment-254759118","issue_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/9119","id":254759118,"user":{"login":"devOpsHazelcast","id":7523732,"avatar_url":"https://avatars.githubusercontent.com/u/7523732?v=3","gravatar_id":"","url":"https://api.github.com/users/devOpsHazelcast","html_url":"https://github.com/devOpsHazelcast","followers_url":"https://api.github.com/users/devOpsHazelcast/followers","following_url":"https://api.github.com/users/devOpsHazelcast/following{/other_user}","gists_url":"https://api.github.com/users/devOpsHazelcast/gists{/gist_id}","starred_url":"https://api.github.com/users/devOpsHazelcast/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/devOpsHazelcast/subscriptions","organizations_url":"https://api.github.com/users/devOpsHazelcast/orgs","repos_url":"https://api.github.com/users/devOpsHazelcast/repos","events_url":"https://api.github.com/users/devOpsHazelcast/events{/privacy}","received_events_url":"https://api.github.com/users/devOpsHazelcast/received_events","type":"User","site_admin":false},"created_at":"2016-10-19T09:16:55Z","updated_at":"2016-10-19T09:16:55Z","body":"Test `FAIL`ed.\nhttps://hazelcast-l337.ci.cloudbees.com/job/new-lab-fast-pr/5267/\n"}}
{"actor":{"display_login":"devOpsHazelcast"}}